You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

238 lines
18 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_customerBonusRpt] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE procEDURE [dbo].[proc_customerBonusRpt]
  9. (
  10. @flag VARCHAR(10)=NULL
  11. ,@user VARCHAR(30)=NULL
  12. ,@fromDate VARCHAR(30)=NULL
  13. ,@toDate VARCHAR(30)=NULL
  14. ,@sZone VARCHAR(30)=NULL
  15. ,@sAgent VARCHAR(10)=NULL
  16. ,@memberShipId VARCHAR(50)=NULL
  17. ,@slab VARCHAR(10)=NULL
  18. )AS
  19. BEGIN
  20. DECLARE @FilterList TABLE(head VARCHAR(50), value VARCHAR(100))
  21. DECLARE
  22. @table VARCHAR(MAX) = NULL
  23. ,@url VARCHAR(max) = NULL
  24. ,@gobalFilter VARCHAR(MAX) = ' WHERE rt.bonusPoint is not null and rt.isBonusUpdated =''Y'' and cm.approvedDate is not null '
  25. IF @fromDate IS NOT NULL AND @toDate IS NOT NULL
  26. BEGIN
  27. INSERT INTO @FilterList
  28. SELECT 'From Date',@fromDate
  29. INSERT INTO @FilterList
  30. SELECT 'To Date',@toDate
  31. SET @gobalFilter=@gobalFilter+' AND rt.paidDate BETWEEN '''+@fromDate+''' AND '''+@toDate+' 23:59:59'''
  32. END
  33. IF @sZone IS NOT NULL
  34. BEGIN
  35. INSERT INTO @FilterList
  36. SELECT 'Sending Zone',@sZone
  37. SET @gobalFilter=@gobalFilter+' AND ts.state ='''+@sZone+''''
  38. END
  39. IF @sAgent IS NOT NULL
  40. BEGIN
  41. INSERT INTO @FilterList
  42. SELECT 'Sending Agent',agentName FROM agentMaster WITH(NOLOCK) WHERE agentId=@sAgent
  43. SET @gobalFilter=@gobalFilter+' AND rt.sAgent ='''+@sAgent+''''
  44. END
  45. IF @memberShipId IS NOT NULL
  46. BEGIN
  47. INSERT INTO @FilterList
  48. SELECT 'Membership Id',@memberShipId
  49. SET @gobalFilter=@gobalFilter+' AND cast(cm.memberShipId as varchar) ='''+@memberShipId+''''
  50. END
  51. IF @flag='sz'
  52. BEGIN
  53. SET @gobalFilter=@gobalFilter+' group by ts.state order by ts.state ASC'
  54. SET @table='SELECT
  55. [S.N.] = row_number()over(order by ts.state)
  56. ,[Zone] = ''<a href = "#" onclick=OpenInNewWindow("Reports.aspx?reportName=20822100_bonus&searchBy=sa&fromDate='+ISNULL(@fromDate,'')+'&toDate='+ISNULL(@toDate,'')+'&sZone=''+ts.state+''")>''+ts.state+''</a>''
  57. ,[Total Txn] = CAST(count(*) AS VARCHAR(10))
  58. FROM remitTran rt WITH(NOLOCK)
  59. INNER JOIN transenders ts WITH(NOLOCK) ON rt.id=ts.tranId
  60. INNER JOIN customerMaster cm WITH(NOLOCK)ON ts.membershipId=cm.membershipId' +@gobalFilter
  61. PRINT @table
  62. EXEC(@table)
  63. END
  64. IF @flag='sa'
  65. BEGIN
  66. SET @gobalFilter=@gobalFilter+' group by ts.state,rt.sAgentName,rt.sAgent order by ts.state ASC'
  67. SET @table='SELECT
  68. [S.N.] = row_number()over(order by ts.state)
  69. ,[Zone] = ts.state
  70. ,[Agent] = ''<a href = "#" onclick=OpenInNewWindow("Reports.aspx?reportName=20822100_bonus&searchBy=c&fromDate='+ISNULL(@fromDate,'')+'&toDate='+ISNULL(@toDate,'')+'&sZone=''+ts.state+''&sAgent=''+cast(rt.sAgent as varchar)+''")>''+rt.sAgentName +''</a>''
  71. ,[Total Txn] = CAST(count(*) AS VARCHAR(10))
  72. FROM remitTran rt WITH(NOLOCK)
  73. INNER JOIN transenders ts WITH(NOLOCK) ON rt.id=ts.tranId
  74. INNER JOIN customerMaster cm WITH(NOLOCK)ON ts.membershipId=cm.membershipId' +@gobalFilter
  75. PRINT @table
  76. EXEC(@table)
  77. END
  78. IF @flag='c' AND @slab IS NULL
  79. BEGIN
  80. SET @gobalFilter = @gobalFilter+' GROUP BY cm.membershipId ORDER BY cm.membershipId ASC'
  81. SET @table='
  82. SELECT
  83. [S.N.] = row_number() over(order by cm.membershipId)
  84. ,[Card No] = ''<a href = "#" onclick=OpenInNewWindow("Reports.aspx?reportName=20822100_bonus&searchBy=detail&fromDate='+ISNULL(@fromDate,'')+'&toDate='+isnull(@toDate,'')+'&sZone='+ISNULL(@sZone,'')+'&membershipId=''+cm.membershipId+''&sAgent='+ISNULL(@sAgent,'')+'")>''+cm.membershipId+''</a>''
  85. ,[Total Txn] = CAST(count(*) AS VARCHAR(10))
  86. ,[Total Amount] = sum(rt.pAmt)
  87. ,[Total Bonus Point]= SUM(rt.bonusPoint)
  88. FROM remitTran rt WITH(NOLOCK)
  89. INNER JOIN transenders ts WITH(NOLOCK) ON rt.id=ts.tranId
  90. INNER JOIN customerMaster cm WITH(NOLOCK)ON ts.membershipId=cm.membershipId '+@gobalFilter
  91. PRINT @table
  92. EXEC(@table)
  93. END
  94. IF @flag='detail'
  95. BEGIN
  96. SET @url = DBO.FNAGetURL()+'Remit/Administration/CustomerSetup/Display.aspx'
  97. SET @table='SELECT
  98. [S.N.] = row_number() over(order by rt.sAgentName)
  99. ,[Agent Name] = rt.sAgentName
  100. ,[Control No] = ''<span class = "link" onclick ="ViewTranDetailByControlNo('''''' + dbo.fnadecryptstring(rt.controlNo) + '''''');">'' + dbo.fnadecryptstring(rt.controlNo) + ''</span>''
  101. ,[Total Amount] = rt.pAmt
  102. ,[Total bonus Point] = rt.bonusPoint
  103. ,[Membership Id] = ''<a href="#" onclick="OpenInNewWindow('''''+dbo.FNAGetURL()+'Remit/Administration/CustomerSetup/Display.aspx?membershipId='' + cm.membershipId + '''''')">'' + cm.membershipId + ''</a>''
  104. ,[Sender Name] = rt.senderName
  105. ,[Receiver Name] = rt.receiverName
  106. ,[Pay Status] = rt.payStatus
  107. ,[TXN Date] = rt.createdDateLocal
  108. FROM remitTran rt WITH(NOLOCK)
  109. INNER JOIN transenders ts WITH(NOLOCK) ON rt.id=ts.tranId
  110. INNER JOIN customerMaster cm WITH(NOLOCK)ON ts.membershipId=cm.membershipId '+@gobalFilter
  111. PRINT @Table
  112. EXEC(@Table)
  113. END
  114. IF @flag='b'
  115. BEGIN
  116. DECLARE @tempTable TABLE(SLAB varchar(10),BPOINT VARCHAR(50),TCUSTOMER varchar(10))
  117. INSERT INTO @tempTable(SLAB,BPOINT)
  118. SELECT 's1','0-50000' UNION ALL
  119. SELECT 's2','50001-300000' UNION ALL
  120. SELECT 's3','300001-500000' UNION ALL
  121. SELECT 's4','Above 500000'
  122. IF OBJECT_ID('tempdb..#TEMP') IS NOT NULL
  123. DROP TABLE #TEMP
  124. SELECT s1 = sum(s1),s2 = sum(s2),s3 =sum(s3),s4 = sum(s4)
  125. INTO #TEMP
  126. FROM
  127. (
  128. select
  129. CASE WHEN bonusPoint between 0 and 50000 then count('x') else 0 end 's1',
  130. CASE WHEN bonusPoint between 50001 and 300000 then count('x') else 0 end 's2',
  131. CASE WHEN bonusPoint between 300001 and 500000 then count('x') else 0 end 's3',
  132. CASE WHEN bonusPoint > 500000 then count('x') else 0 end 's4'
  133. from
  134. (
  135. SELECT membershipId = CM.MEMBERSHIPID,
  136. bonusPoint = sum(rt.bonusPoint)
  137. FROM remitTran rt WITH(NOLOCK)
  138. INNER JOIN transenders ts WITH(NOLOCK) ON rt.id=ts.tranId
  139. INNER JOIN customerMaster cm WITH(NOLOCK)ON ts.membershipId=cm.membershipId
  140. WHERE rt.paidDate BETWEEN @fromDate AND @toDate+' 23:59:59'
  141. AND rt.bonusPoint is not null
  142. AND rt.isBonusUpdated ='Y'
  143. AND cm.approvedDate is not null
  144. group by cm.membershipId
  145. )x group by bonusPoint
  146. )y
  147. UPDATE @tempTable SET TCUSTOMER = s1 FROM #TEMP WHERE SLAB = 's1'
  148. UPDATE @tempTable SET TCUSTOMER = s2 FROM #TEMP WHERE SLAB = 's2'
  149. UPDATE @tempTable SET TCUSTOMER = s3 FROM #TEMP WHERE SLAB = 's3'
  150. UPDATE @tempTable SET TCUSTOMER = s4 FROM #TEMP WHERE SLAB = 's4'
  151. SELECT
  152. [S.N.] = row_number() over(order by SLAB),
  153. [Bonus Point] = BPOINT,
  154. [Total Customer]='<a href = "#" onclick=OpenInNewWindow("Reports.aspx?reportName=20822100_bonus&searchBy=c&fromDate='+ISNULL(@fromDate,'')+'&toDate='+isnull(@toDate,'')+'&sZone='+ISNULL(@sZone,'')+'&sAgent='+ISNULL(@sAgent,'')+'&slab='+SLAB+'")>'+CAST(TCUSTOMER AS VARCHAR(10))+'</a>'
  155. FROM @tempTable
  156. END
  157. IF @flag='c' AND @slab IS NOT NULL
  158. BEGIN
  159. SET @gobalFilter = @gobalFilter+' GROUP BY cm.membershipId '
  160. SET @table='
  161. SELECT
  162. [S.N.] = row_number() over(order by membershipId)
  163. ,[Card No]
  164. ,[Total Txn]
  165. ,[Total Amount]
  166. ,[Total Bonus Point]
  167. FROM
  168. (
  169. SELECT
  170. membershipId = cm.membershipId
  171. ,[Card No] = ''<a href = "#" onclick=OpenInNewWindow("Reports.aspx?reportName=20822100_bonus&searchBy=detail&fromDate='+ISNULL(@fromDate,'')+'&toDate='+isnull(@toDate,'')+'&sZone='+ISNULL(@sZone,'')+'&membershipId=''+cm.membershipId+''&sAgent='+ISNULL(@sAgent,'')+'")>''+cm.membershipId+''</a>''
  172. ,[Total Txn] = CAST(count(*) AS VARCHAR(10))
  173. ,[Total Amount] = sum(rt.pAmt)
  174. ,[Total Bonus Point]= SUM(rt.bonusPoint)
  175. FROM remitTran rt WITH(NOLOCK)
  176. INNER JOIN transenders ts WITH(NOLOCK) ON rt.id=ts.tranId
  177. INNER JOIN customerMaster cm WITH(NOLOCK)ON ts.membershipId=cm.membershipId '+@gobalFilter+' )x '
  178. IF @slab IS NOT NULL
  179. BEGIN
  180. IF @slab ='s1'
  181. BEGIN
  182. INSERT INTO @FilterList
  183. SELECT 'SLAB-1',' 0-50000'
  184. SET @table=@table+' WHERE [Total Bonus Point] BETWEEN 0 AND 50000'
  185. END
  186. IF @slab ='s2'
  187. BEGIN
  188. INSERT INTO @FilterList
  189. SELECT 'SLAB-2','50001-300000'
  190. SET @table=@table+' WHERE [Total Bonus Point] BETWEEN 50001 AND 300000'
  191. END
  192. IF @slab ='s3'
  193. BEGIN
  194. INSERT INTO @FilterList
  195. SELECT 'SLAB-3','300001-500000'
  196. SET @table=@table+' WHERE [Total Bonus Point] BETWEEN 300001 AND 500000'
  197. END
  198. IF @slab ='s4'
  199. BEGIN
  200. INSERT INTO @FilterList
  201. SELECT 'SLAB-4','Above 500000'
  202. SET @table=@table+' WHERE [Total Bonus Point] > 500000'
  203. END
  204. END
  205. PRINT @table
  206. EXEC(@table)
  207. END
  208. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  209. SELECT * FROM @FilterList
  210. SELECT 'CUSTOMER BONUS REPORT' title
  211. END
  212. GO