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.

234 lines
9.4 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_AgentBalance_Report1] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_AgentBalance_Report1]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_AgentBalance_Report1] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. ALTER PROCEDURE [dbo].[proc_AgentBalance_Report1]
  12. @fromDate DATETIME
  13. ,@toDate DATETIME
  14. ,@agentId INT =NULL
  15. ,@pageSize INT = NULL
  16. ,@pageNumber INT = NULL
  17. ,@user VARCHAR(50)
  18. AS
  19. SET NOCOUNT ON;
  20. SET @TODATE = @TODATE + ' 23:59:59'
  21. DECLARE
  22. @NUM INT
  23. ,@ROWNUM INT
  24. ,@CLOSEAMT MONEY
  25. ,@REPORTHEAD VARCHAR(40)
  26. ,@maxReportViewDays INT
  27. SET @NUM=0
  28. SET @pageSize = ISNULL(@pageSize,500)
  29. SET @pageNumber = ISNULL(@pageNumber,1)
  30. SELECT @maxReportViewDays=ISNULL(maxReportViewDays,60) FROM applicationUsers WHERE userName = @user
  31. IF CAST(DATEDIFF(DD,@fromDate,@toDate) AS INT)>@maxReportViewDays
  32. BEGIN
  33. SELECT 'Agent Balance Report' title
  34. EXEC proc_errorHandler '1', 'Report viewing range exceeded.', @agentId
  35. RETURN
  36. END
  37. SELECT
  38. Y.agent_id
  39. ,[OPENING] = SUM(ISNULL(OPENING,0))
  40. ,[SPRINC] = SUM(ISNULL(SPRINC,0))
  41. ,[SCOMM] = SUM(ISNULL(SCOMM,0))
  42. ,[STRN] = SUM(ISNULL(STRN,0))
  43. ,[PPRINC] = SUM(ISNULL(PPRINC,0))
  44. ,[PCOMM] = SUM(ISNULL(PCOMM,0))
  45. ,[PTRN] = SUM(ISNULL(PTRN,0))
  46. ,[CPRINC] = SUM(ISNULL(CPRINC,0))
  47. ,[CCOMM] = SUM(ISNULL(CCOMM,0))
  48. ,[CTRN] = SUM(ISNULL(CTRN,0))
  49. ,[TRANSFER_AMT] = SUM(ISNULL(TRANSFER_AMT,0))
  50. ,[TRANSFER_TRN] = SUM(ISNULL(TRANSFER_TRN,0))
  51. ,[RECEIVED_AMT] = SUM(ISNULL(RECEIVED_AMT,0))
  52. ,[RECEIVED_TRN] = SUM(ISNULL(RECEIVED_TRN,0))
  53. ,[TOTAL] = CAST(0 AS MONEY)
  54. ,[CLOSING] = CAST(0 AS MONEY)
  55. ,[DR/CR] = NULL
  56. INTO #TEMPAGENTBALANCE
  57. FROM (
  58. SELECT
  59. X.agent_id
  60. ,[OPENING] = CASE WHEN REMARKS='OPENING' THEN SUM(ISNULL(AMT,0)) END
  61. ,[SPRINC] = CASE WHEN REMARKS='SEND' THEN SUM(ISNULL(AMT,0)) END
  62. ,[SCOMM] = CASE WHEN REMARKS='SEND' THEN SUM(ISNULL(COMMISSION,0)) END
  63. ,[STRN] = CASE WHEN REMARKS='SEND' THEN SUM(ISNULL(TRN,0)) END
  64. ,[PPRINC] = CASE WHEN REMARKS='PAID' THEN SUM(ISNULL(AMT,0)) END
  65. ,[PCOMM] = CASE WHEN REMARKS='PAID' THEN SUM(ISNULL(COMMISSION,0)) END
  66. ,[PTRN] = CASE WHEN REMARKS='PAID' THEN SUM(ISNULL(TRN,0)) END
  67. ,[CPRINC] = CASE WHEN REMARKS='CANCEL' THEN SUM(ISNULL(AMT,0)) END
  68. ,[CCOMM] = CASE WHEN REMARKS='CANCEL' THEN SUM(ISNULL(COMMISSION,0)) END
  69. ,[CTRN] = CASE WHEN REMARKS='CANCEL' THEN SUM(ISNULL(TRN,0)) END
  70. ,[TRANSFER_AMT] = CASE WHEN REMARKS='Fund Transfered' THEN SUM(ISNULL(AMT,0)) END
  71. ,[TRANSFER_TRN] = CASE WHEN REMARKS='Fund Transfered' THEN SUM(ISNULL(TRN,0)) END
  72. ,[RECEIVED_AMT] = CASE WHEN REMARKS='Fund Received' THEN SUM(ISNULL(AMT,0)) END
  73. ,[RECEIVED_TRN] = CASE WHEN REMARKS='Fund Received' THEN SUM(ISNULL(TRN,0)) END
  74. FROM (
  75. SELECT
  76. A.REMARKS
  77. ,A.agent_id agent_id
  78. ,SUM(ISNULL(A.dr_principal,0))[AMT]
  79. ,0 [COMMISSION]
  80. ,0 [TRN] FROM (
  81. SELECT
  82. A.agent_id
  83. ,'OPENING' [REMARKS]
  84. ,[dr_principal] = ISNULL(SUM(CASE WHEN T.part_tran_type='DR' THEN T.tran_amt ELSE -T.tran_amt END),0)
  85. FROM FastMoneyPro_Account.dbo.tran_master T WITH(NOLOCK)
  86. INNER JOIN FastMoneyPro_Account.dbo.ac_master A WITH(NOLOCK) ON T.acc_num=A.acct_num
  87. WHERE tran_date<@fromdate AND A.agent_id=ISNULL(@agentId,A.agent_id) and A.acct_rpt_code = '22'
  88. AND T.rpt_code IS NULL
  89. GROUP BY A.agent_id
  90. UNION ALL
  91. SELECT
  92. sAgent
  93. ,[Particulars] = 'Opening'
  94. ,[dr_principal] = SUM(CASE WHEN CAST(approvedDate AS DATE) = CAST(cancelApprovedDate AS DATE) THEN ISNULL(CAmt,0)-ISNULL(cAmt,0)
  95. ELSE ISNULL(CAmt,0) END)
  96. FROM remitTran T WITH(NOLOCK)
  97. WHERE approvedDate < @fromdate AND ISNULL(sAgent,0) = ISNULL(@agentid,ISNULL(sAgent,0))
  98. GROUP BY sAgent
  99. ) A GROUP BY A.REMARKS,A.agent_id
  100. UNION ALL
  101. SELECT
  102. 'SEND'
  103. ,sAgent
  104. ,SUM(ISNULL(tAmt,0))
  105. ,SUM(ISNULL(cAmt,0)-ISNULL(tAmt,0))
  106. ,COUNT('A')
  107. FROM remitTran T
  108. WHERE approvedDate BETWEEN @FROMDATE AND @TODATE AND ISNULL(sAgent,0) =ISNULL(@agentId,ISNULL(sAgent,0))
  109. GROUP BY sAgent
  110. UNION ALL
  111. SELECT 'CANCEL',sAgent,SUM(ISNULL(tAmt,0)),SUM(ISNULL(cAmt,0)-ISNULL(tAmt,0)),COUNT('A')
  112. FROM remitTran T
  113. WHERE cancelApprovedDate BETWEEN @FROMDATE AND @TODATE AND ISNULL(sAgent,0) =ISNULL(@agentId,ISNULL(sAgent,0))
  114. GROUP BY sAgent
  115. UNION ALL
  116. SELECT 'PAID'
  117. ,PAgent
  118. ,SUM(ISNULL(pAmt,0))
  119. ,SUM(ISNULL(pAgentComm,0))
  120. ,COUNT('A')
  121. FROM remitTran T
  122. WHERE paidDate BETWEEN @FROMDATE AND @TODATE AND ISNULL(pAgent,0) =ISNULL(@agentId,ISNULL(pAgent,0))
  123. GROUP BY pAgent
  124. UNION ALL
  125. SELECT 'Fund Transfered'[REMARKS],A.agent_id
  126. ,SUM(T.tran_amt ) [cr_principal],0 [cr_comm],COUNT('A') TXN
  127. FROM FastMoneyPro_Account.dbo.ac_master A WITH(NOLOCK)
  128. INNER JOIN FastMoneyPro_Account.dbo.tran_master T WITH(NOLOCK) ON T.acc_num=A.acct_num
  129. INNER JOIN tran_masterDetail TD WITH(NOLOCK) ON T.ref_num =TD.ref_num
  130. WHERE tran_date BETWEEN @fromdate AND @TODATE AND A.agent_id=ISNULL(@agentId,A.agent_id) and A.acct_rpt_code='22'
  131. AND T.RPT_CODE IS NULL AND T.part_tran_type='CR'
  132. GROUP BY A.agent_id
  133. UNION ALL
  134. SELECT 'Fund Received'[REMARKS],A.agent_id
  135. ,SUM(T.tran_amt ) [cr_principal],0 [cr_comm],COUNT('A') TXN
  136. FROM FastMoneyPro_Account.dbo.ac_master A WITH(NOLOCK)
  137. INNER JOIN FastMoneyPro_Account.dbo.tran_master T WITH(NOLOCK) ON T.acc_num=A.acct_num
  138. INNER JOIN FastMoneyPro_Account.dbo.tran_masterDetail TD WITH(NOLOCK) ON T.ref_num =TD.ref_num
  139. WHERE tran_date BETWEEN @fromdate AND @TODATE AND A.agent_id=ISNULL(@agentId,A.agent_id) and A.acct_rpt_code='22'
  140. AND T.RPT_CODE IS NULL AND T.part_tran_type='DR'
  141. GROUP BY A.agent_id
  142. ) X
  143. GROUP BY X.agent_id,X.REMARKS
  144. )Y
  145. GROUP BY Y.agent_id
  146. UPDATE #TEMPAGENTBALANCE SET TOTAL = OPENING+SPRINC+SCOMM-PPRINC-PCOMM-CPRINC-CCOMM-TRANSFER_AMT+RECEIVED_AMT
  147. ALTER TABLE #TEMPAGENTBALANCE
  148. ADD ROWID INT IDENTITY(1,1)
  149. SELECT @ROWNUM=COUNT(*) FROM #TEMPAGENTBALANCE
  150. WHILE @NUM<=@ROWNUM
  151. BEGIN
  152. SELECT @CLOSEAMT = CLOSING FROM #TEMPAGENTBALANCE WHERE ROWID =@NUM-1
  153. IF @NUM = 1
  154. BEGIN
  155. SELECT @CLOSEAMT = TOTAL FROM #TEMPAGENTBALANCE WHERE ROWID =@NUM
  156. UPDATE #TEMPAGENTBALANCE SET CLOSING = @CLOSEAMT,
  157. [DR/CR] =CASE WHEN @CLOSEAMT>0 THEN 0 ELSE 1 END
  158. WHERE ROWID = 1
  159. SET @NUM = @NUM +1
  160. END
  161. UPDATE #TEMPAGENTBALANCE SET CLOSING = @CLOSEAMT+TOTAL
  162. ,[DR/CR] = CASE WHEN CAST(@CLOSEAMT+TOTAL AS MONEY)>0 THEN 0 ELSE 1 END
  163. WHERE ROWID = @NUM
  164. SET @NUM = @NUM +1
  165. END
  166. --SELECT * FROM #TEMPAGENTBALANCE
  167. SELECT TXNCOUNT = COUNT('A'),
  168. PAGESIZE = @pageSize ,
  169. PAGENUMBER = @pageNumber
  170. FROM #TEMPAGENTBALANCE
  171. SELECT
  172. [AGENT NAME] = A.agentName
  173. ,[OPENING_AMOUNT] = CASE WHEN T.OPENING >= 0 THEN T.OPENING ELSE T.OPENING*-1 END
  174. ,[OPENING_TRN] = CASE WHEN T.OPENING >= 0 THEN 'DR' ELSE 'CR' END
  175. ,[SEND_AMOUNT] = T.SPRINC
  176. ,[SEND_COMMISSION] = T.SCOMM
  177. ,[SEND_TXN] = '<a href = "#" onclick="OpenInNewWindow('''+DBO.FNAGetURL()+'SwiftSystem/Reports/Reports.aspx?reportName=soadrilldown&agentId='+CAST(T.AGENT_ID AS VARCHAR)+'&fromDate='+CONVERT(VARCHAR,@FROMDATE,101)+'&reportType=d&toDate='+CONVERT(VARCHAR,@TODATE,101)+'&voucherType=s'')">'+CAST(T.STRN AS VARCHAR)+'</a>'
  178. ,[PAID_AMOUNT] = T.PPRINC
  179. ,[PAID_COMMISSION] = T.PCOMM
  180. ,[PAID_TXN] = '<a href = "#" onclick="OpenInNewWindow('''+DBO.FNAGetURL()+'SwiftSystem/Reports/Reports.aspx?reportName=soadrilldown&agentId='+CAST(T.AGENT_ID AS VARCHAR)+'&fromDate='+CONVERT(VARCHAR,@FROMDATE,101)+'&reportType=d&toDate='+CONVERT(VARCHAR,@TODATE,101)+'&voucherType=p'')">'+CAST(T.PTRN AS VARCHAR)+'</a>'
  181. ,[CANCEL_AMOUNT] = T.CPRINC
  182. ,[CANCEL_COMMISSION]= T.CCOMM
  183. ,[CANCEL_TXN] = '<a href = "#" onclick="OpenInNewWindow('''+DBO.FNAGetURL()+'SwiftSystem/Reports/Reports.aspx?reportName=soadrilldown&agentId='+CAST(T.AGENT_ID AS VARCHAR)+'&fromDate='+CONVERT(VARCHAR,@FROMDATE,101)+'&reportType=d&toDate='+CONVERT(VARCHAR,@TODATE,101)+'&voucherType=c'')">'+CAST(T.CTRN AS VARCHAR)+'</a>'
  184. ,[TRANSFERED_AMOUNT]= T.TRANSFER_AMT
  185. ,[TRANSFERED_TXN] = '<a href = "#" onclick="OpenInNewWindow('''+DBO.FNAGetURL()+'SwiftSystem/Reports/Reports.aspx?reportName=soadrilldown&agentId='+CAST(T.AGENT_ID AS VARCHAR)+'&fromDate='+CONVERT(VARCHAR,@FROMDATE,101)+'&reportType=d&toDate='+CONVERT(VARCHAR,@TODATE,101)+'&voucherType=cr'')">'+CAST(T.TRANSFER_TRN AS VARCHAR)+'</a>'
  186. ,[RECEIVED_AMOUNT] = T.RECEIVED_AMT
  187. ,[RECEIVED_TXN] = '<a href = "#" onclick="OpenInNewWindow('''+DBO.FNAGetURL()+'SwiftSystem/Reports/Reports.aspx?reportName=soadrilldown&agentId='+CAST(T.AGENT_ID AS VARCHAR)+'&fromDate='+CONVERT(VARCHAR,@FROMDATE,101)+'&reportType=d&toDate='+CONVERT(VARCHAR,@TODATE,101)+'&voucherType=dr'')">'+CAST(T.RECEIVED_TRN AS VARCHAR)+'</a>'
  188. ,[CLOSING_AMOUNT] = T.CLOSING
  189. ,[CLOSING_TRN] = CASE WHEN T.[DR/CR] = 0 THEN 'DR' ELSE 'CR' END
  190. FROM #TEMPAGENTBALANCE T
  191. LEFT JOIN agentMaster A WITH (NOLOCK) ON T.AGENT_ID = A.agentId
  192. WHERE T.ROWID BETWEEN ((@pageNumber-1)*@pageSize +1) AND (@pageNumber * @pageSize)
  193. DROP TABLE #TEMPAGENTBALANCE
  194. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', @agentId
  195. SELECT 'Agent' head, ISNULL((SELECT agentName FROM agentMaster WHERE agentId = @agentId),'All') value
  196. UNION ALL
  197. SELECT 'From Date' head, CONVERT(VARCHAR, @fromDate, 101) value
  198. UNION ALL
  199. SELECT 'To Date' head, CONVERT(VARCHAR, @toDate, 101) value
  200. SELECT 'Agent Balance Report' title