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.

337 lines
10 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[Proc_StatementOfACDrilldown] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[Proc_StatementOfACDrilldown]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[Proc_StatementOfACDrilldown] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. --EXEC Proc_StatementOfACDrilldown @REPORTTYPE = 's', @FROMDATE = '05/27/2012', @TODATE = '05/27/2012', @agentId = '9', @VOUCHERTYPE = 's'
  12. CREATE procEDURE [dbo].[Proc_StatementOfACDrilldown]
  13. @REPORTTYPE CHAR(10),
  14. @FROMDATE VARCHAR(20),
  15. @TODATE VARCHAR(30),
  16. @AGENTID INT = NULL,
  17. @VOUCHERTYPE VARCHAR(10),
  18. @pageSize INT = NULL,
  19. @pageNumber INT = NULL
  20. AS
  21. SET NOCOUNT ON;
  22. SET ANSI_NULLS ON;
  23. DECLARE @NUM INT
  24. ,@ROWNUM INT
  25. ,@CLOSEAMT MONEY
  26. ,@REPORTHEAD VARCHAR(40)
  27. ,@SQL VARCHAR(1000)
  28. ,@EXESQL VARCHAR(MAX)
  29. ,@AGENTNAME VARCHAR(200)
  30. ,@COMM_RATE MONEY
  31. SET @pageSize = ISNULL(@pageSize,500)
  32. SET @pageNumber = ISNULL(@pageNumber,1)
  33. SELECT @COMM_RATE=commRate FROM enrollCommSetup WHERE agentId is null
  34. IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[#TEMPSOADETAIL]') AND type in (N'U'))
  35. DROP TABLE [dbo].[#TEMPSOADETAIL]
  36. CREATE TABLE #TEMPSOADETAIL (
  37. ROWID int identity(1,1), TRAN_TYPE CHAR(2),id INT,TXNID VARCHAR(30), txndate DATETIME,remarks VARCHAR(200)
  38. ,dr_principal MONEY,dr_comm MONEY,cr_principal MONEY,cr_comm MONEY
  39. ,TOTAL money, CLOSING money , [DR/CR] CHAR(3)
  40. )
  41. --# SEND TRANSACTION
  42. IF @VOUCHERTYPE ='S'
  43. BEGIN
  44. SET @SQL = '
  45. SELECT
  46. [TRAN_TYPE] = NULL
  47. ,id
  48. ,dbo.FNADecryptString(controlNo) controlNo
  49. ,CAST(approvedDate AS DATE) approvedDate
  50. ,[remarks] = ''SEND''
  51. ,[dr_principal] = ISNULL(tAmt,0)
  52. ,[dr_comm] = ISNULL(CAMT,0) - ISNULL(tAmt,0)
  53. ,[cr_principal] = 0
  54. ,[cr_comm] = 0
  55. FROM remitTran T WITH(NOLOCK)
  56. WHERE CAST(approvedDate AS DATE) BETWEEN ''' + @FROMDATE + ''' AND ''' + @TODATE + '''
  57. AND ISNULL(sAgent,0) =ISNULL('''+CAST(@AGENTID AS VARCHAR)+''' ,ISNULL(sAgent,0))'
  58. SET @REPORTHEAD = 'Sending Detail Report'
  59. END
  60. --# CANCEL TRANSACTION
  61. IF @VOUCHERTYPE ='C'
  62. BEGIN
  63. SET @SQL = 'SELECT
  64. NULL [TRAN_TYPE]
  65. ,id
  66. ,dbo.FNADecryptString(controlNo) controlNo
  67. ,CAST(cancelApprovedDate AS DATE) cancelApprovedDate
  68. ,''CANCEL'' [Particulars]
  69. ,0 [dr_principal],0 [dr_comm]
  70. ,ISNULL(tAmt,0) [cr_principal]
  71. ,CASE WHEN CAST(approvedDate AS DATE)= CAST(cancelApprovedDate AS DATE) THEN ISNULL(CAMT,0)-ISNULL(tAmt,0) ELSE 0 END[cr_comm]
  72. FROM remitTran T WITH(NOLOCK)
  73. WHERE CAST(cancelApprovedDate AS DATE) BETWEEN '''+@FROMDATE+''' AND '''+@TODATE+'''
  74. AND ISNULL(sAgent,0) =ISNULL('''+CAST(@AGENTID AS VARCHAR)+''' ,ISNULL(sAgent,0))'
  75. SET @REPORTHEAD = 'Cancel Detail Report'
  76. END
  77. --# DOMESTIC PAID TRANSACTION
  78. IF @VOUCHERTYPE ='DP'
  79. BEGIN
  80. SET @SQL = 'SELECT
  81. NULL [TRAN_TYPE]
  82. ,id,dbo.FNADecryptString(controlNo) controlNo
  83. ,CAST(paidDate AS DATE) paidDate
  84. ,''DOMESTIC PAID'' [Particulars]
  85. ,0 [dr_principal]
  86. ,0 [dr_comm]
  87. ,ISNULL(pAmt,0)[cr_principal]
  88. ,ISNULL(pAgentComm,0) [cr_comm]
  89. FROM remitTran T WITH(NOLOCK)
  90. WHERE CAST(paidDate AS DATE) BETWEEN '''+@FROMDATE+''' AND '''+@TODATE+''' AND ISNULL(pAgent,0) =ISNULL('''+CAST(@AGENTID AS VARCHAR)+''' ,ISNULL(sAgent,0))
  91. AND sCountry = ''NEPAL'''
  92. SET @REPORTHEAD = 'Domestic Paid Detail Report'
  93. END
  94. --# INTERNATIONAL PAID TRANSACTION
  95. IF @VOUCHERTYPE ='IP'
  96. BEGIN
  97. SET @SQL = 'SELECT
  98. NULL [TRAN_TYPE]
  99. ,id
  100. ,dbo.FNADecryptString(controlNo) controlNo
  101. ,CAST(paidDate AS DATE) paidDate
  102. ,''INTERNATIONAL PAID'' [Particulars]
  103. ,0 [dr_principal]
  104. ,0 [dr_comm]
  105. ,ISNULL(pAmt,0)[cr_principal]
  106. ,ISNULL(pAgentComm,0) [cr_comm]
  107. FROM remitTran T WITH(NOLOCK)
  108. WHERE CAST(paidDate AS DATE) BETWEEN '''+@FROMDATE+''' AND '''+@TODATE+''' AND ISNULL(pAgent,0) =ISNULL('''+CAST(@AGENTID AS VARCHAR)+''' ,ISNULL(sAgent,0))
  109. AND sCountry <> ''NEPAL'''
  110. SET @REPORTHEAD = 'International Paid Detail Report'
  111. END
  112. --# PAID ORDER TRANSACTION
  113. IF @VOUCHERTYPE ='PO'
  114. BEGIN
  115. SET @SQL = '
  116. SELECT
  117. NULL [TRAN_TYPE]
  118. ,RT.id
  119. ,dbo.FNADecryptString(RT.controlNo) controlNo
  120. ,CAST(T.createdDate AS DATE) createdDate
  121. ,''PAY ORDER'' [Particulars]
  122. ,0 [dr_principal]
  123. ,0 [dr_comm]
  124. ,ISNULL(T.tranAmount,0) [cr_principal]
  125. ,ISNULL(T.pAgentComm,0) [cr_comm]
  126. FROM errPaidTran T WITH(NOLOCK)
  127. INNER JOIN remitTran RT WITH (NOLOCK) ON T.controlNo = RT.controlNo
  128. WHERE CAST(T.createdDate AS DATE) BETWEEN '''+@FROMDATE+''' AND '''+@TODATE+''' AND ISNULL(T.newPAgentId,0) =ISNULL('''+CAST(@AGENTID AS VARCHAR)+''' ,ISNULL(T.newPAgentId,0))'
  129. SET @REPORTHEAD = 'Pay Order Detail Report'
  130. END
  131. --# ERRONEOUSLY PAID TRANSACTION
  132. IF @VOUCHERTYPE ='EP'
  133. BEGIN
  134. SET @SQL = '
  135. SELECT
  136. NULL [TRAN_TYPE]
  137. ,RT.id
  138. ,dbo.FNADecryptString(RT.controlNo) controlNo
  139. ,CAST(T.createdDate AS DATE) createdDate
  140. ,''ERRONEOUSLY PAID'' [Particulars]
  141. ,ISNULL(T.tranAmount,0) [dr_principal]
  142. ,ISNULL(T.pAgentComm,0) [dr_comm]
  143. ,0 [cr_principal]
  144. ,0 [cr_comm]
  145. FROM errPaidTran T WITH(NOLOCK)
  146. INNER JOIN remitTran RT WITH (NOLOCK) ON T.controlNo = RT.controlNo
  147. WHERE CAST(T.createdDate AS DATE) BETWEEN '''+@FROMDATE+''' AND '''+@TODATE+''' AND ISNULL(T.oldPAgentId,0) =ISNULL('''+CAST(@AGENTID AS VARCHAR)+''' ,ISNULL(T.oldPAgentId,0))'
  148. SET @REPORTHEAD = 'Erroneously Paid Detail Report'
  149. END
  150. IF @VOUCHERTYPE ='CR'
  151. BEGIN
  152. SET @SQL = 'SELECT
  153. T.tran_type
  154. ,T.ref_num [ID]
  155. ,T.ref_num
  156. ,CAST(T.tran_date AS DATE) tran_date
  157. ,TD.tran_particular [REMARKS]
  158. ,0 [dr_principal]
  159. ,0 [dr_comm]
  160. ,T.tran_amt [cr_principal]
  161. ,0 [cr_comm]
  162. FROM ac_master A WITH(NOLOCK)
  163. INNER JOIN tran_master T WITH(NOLOCK) ON T.acc_num=A.acct_num
  164. INNER JOIN tran_masterDetail TD WITH(NOLOCK) ON T.ref_num =TD.ref_num
  165. WHERE CAST(tran_date AS DATE) BETWEEN '''+@FROMDATE+''' AND '''+@TODATE+''' AND A.agent_id=ISNULL('''+CAST(@AGENTID AS VARCHAR)+''' ,ISNULL(A.agent_id,0)) and A.acct_rpt_code=''22''
  166. AND (T.RPT_CODE IS NULL OR T.RPT_CODE=''FUND DEPOSIT'') AND T.part_tran_type=''CR'''
  167. END
  168. IF @VOUCHERTYPE ='DR'
  169. BEGIN
  170. SET @SQL = 'SELECT
  171. T.tran_type
  172. ,T.ref_num [ID]
  173. ,T.ref_num
  174. ,CAST(T.tran_date AS DATE) tran_date
  175. ,TD.tran_particular [REMARKS]
  176. ,0 [dr_principal]
  177. ,0 [dr_comm]
  178. ,T.tran_amt [cr_principal]
  179. ,0 [cr_comm]
  180. FROM ac_master A WITH(NOLOCK)
  181. INNER JOIN tran_master T WITH(NOLOCK) ON T.acc_num=A.acct_num
  182. INNER JOIN tran_masterDetail TD WITH(NOLOCK) ON T.ref_num =TD.ref_num
  183. WHERE CAST(tran_date AS DATE) BETWEEN '''+@FROMDATE+''' AND '''+@TODATE+''' AND A.agent_id=ISNULL('''+CAST(@AGENTID AS VARCHAR)+''' ,ISNULL(A.agent_id,0)) and A.acct_rpt_code=''22''
  184. AND T.RPT_CODE IS NULL AND T.part_tran_type=''DR'''
  185. END
  186. --IF @VOUCHERTYPE = 'ME'
  187. --BEGIN
  188. -- SET @SQL =' SELECT
  189. -- [TRAN_TYPE] = NULL
  190. -- ,[ID] = A.customerId
  191. -- , A.customerId
  192. -- ,CAST(A.createdDate AS DATE) [TRANDATE]
  193. -- ,[Particulars] = ''MEMBERSHIP ENROLLMENT''
  194. -- ,[dr_principal] = 0
  195. -- ,[dr_comm] = 0
  196. -- ,[cr_principal] = SUM(ISNULL(D.commRate,ISNULL(@COMM_RATE,0)))
  197. -- ,[cr_comm] = 0
  198. -- FROM customers A WITH(NOLOCK)
  199. -- INNER JOIN applicationUsers b WITH(NOLOCK) ON a.createdBy=b.userName
  200. -- INNER JOIN agentMaster c WITH(NOLOCK) ON c.agentId=b.agentId
  201. -- LEFT JOIN enrollCommSetup d WITH(NOLOCK) ON d.agentId=c.agentId
  202. -- WHERE A.createdDate BETWEEN @fromDate AND @toDate AND ISNULL(C.agentId,0) = ISNULL(@agentId,ISNULL(C.agentId,0))
  203. -- AND ISNULL(C.isDeleted,'''')<>''Y'' '
  204. --END
  205. --# PAID TRANSACTION
  206. IF @VOUCHERTYPE ='P'
  207. BEGIN
  208. SET @SQL = 'SELECT
  209. NULL [TRAN_TYPE]
  210. ,id,dbo.FNADecryptString(controlNo) controlNo
  211. ,CAST(paidDate AS DATE) paidDate
  212. ,''PAID'' [Particulars]
  213. ,0 [dr_principal]
  214. ,0 [dr_comm]
  215. ,ISNULL(pAmt,0)[cr_principal]
  216. ,ISNULL(pAgentComm,0) [cr_comm]
  217. FROM remitTran T WITH(NOLOCK)
  218. WHERE CAST(paidDate AS DATE) BETWEEN '''+@FROMDATE+''' AND '''+@TODATE+''' AND ISNULL(pAgent,0) =ISNULL('''+CAST(@AGENTID AS VARCHAR)+''' ,ISNULL(sAgent,0))
  219. '
  220. SET @REPORTHEAD = 'Paid Detail Report'
  221. END
  222. BEGIN
  223. SET @EXESQL = 'SELECT
  224. Y.*
  225. ,ISNULL(Y.dr_principal,0)+ISNULL(Y.dr_comm,0)-ISNULL(Y.cr_principal,0)-ISNULL(Y.cr_comm,0)[TOTAL],0 [CLOSING]
  226. , NULL[DR/CR]
  227. FROM (
  228. '+@SQL+'
  229. ) Y'
  230. --PRINT @EXESQL
  231. INSERT INTO #TEMPSOADETAIL
  232. EXEC(@EXESQL)
  233. SET @NUM =1
  234. --ALTER TABLE #TEMPSOADETAIL
  235. --ADD ROWID INT IDENTITY(1,1)
  236. SELECT @ROWNUM=COUNT(*) FROM #TEMPSOADETAIL
  237. WHILE @NUM<=@ROWNUM
  238. BEGIN
  239. SELECT @CLOSEAMT = CLOSING FROM #TEMPSOADETAIL WHERE ROWID =@NUM-1
  240. IF @NUM = 1
  241. BEGIN
  242. SELECT @CLOSEAMT = TOTAL FROM #TEMPSOADETAIL WHERE ROWID =@NUM
  243. UPDATE #TEMPSOADETAIL SET CLOSING = @CLOSEAMT,
  244. [DR/CR] =CASE WHEN @CLOSEAMT>0 THEN 0 ELSE 1 END
  245. WHERE ROWID = 1
  246. SET @NUM = @NUM +1
  247. END
  248. UPDATE #TEMPSOADETAIL SET CLOSING = @CLOSEAMT+TOTAL
  249. ,[DR/CR] = CASE WHEN CAST(@CLOSEAMT+TOTAL AS MONEY)>0 THEN 0 ELSE 1 END
  250. WHERE ROWID = @NUM
  251. SET @NUM = @NUM +1
  252. END
  253. --SELECT * FROM #TEMPSOADETAIL
  254. SELECT TXNCOUNT = COUNT('A'),
  255. PAGESIZE = @pageSize,
  256. PAGENUMBER = @pageNumber
  257. FROM #TEMPSOADETAIL
  258. SELECT
  259. [Txn Date] = CONVERT(VARCHAR, txnDate, 101)
  260. ,[Txn No] = '<a href = "#" onclick="OpenInNewWindow('''+dbo.FNAGetURL()+'Remit/Transaction/Reports/SearchTransaction.aspx?commentFlag=N&showBankDetail=Y&tranId='+CAST(id AS VARCHAR)+''')">'+ (TXNID) +'</a>'
  261. ,[Particulars] = remarks
  262. , DR_Principal
  263. ,[DR_Commission]= DR_Comm
  264. ,CR_Principal
  265. ,[CR_Commission]= CR_Comm
  266. ,[Closing] = CASE WHEN Closing >0 THEN Closing ELSE Closing *-1 END
  267. ,CASE WHEN [DR/CR] =0 THEN 'DR' ELSE 'CR' END as ' '
  268. FROM #TEMPSOADETAIL
  269. WHERE ROWID BETWEEN ((@PageNumber - 1) * @PageSize + 1) AND @pageSize * @pageNumber
  270. --SET @REPORTHEAD = 'Sending Detail Report'
  271. DROP TABLE #TEMPSOADETAIL
  272. END
  273. SELECT @AGENTNAME=agentName FROM agentMaster WHERE agentId = @AGENTID
  274. print @SQL
  275. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', @agentId
  276. SELECT 'Agent Name' head, @AGENTNAME value
  277. UNION ALL
  278. SELECT 'From Date' head, CONVERT(VARCHAR, CAST(@fromDate AS DATE), 101) value
  279. UNION ALL
  280. SELECT 'To Date' head, CONVERT(VARCHAR, CAST(@toDate AS DATE), 101) value
  281. SELECT 'Statement Of Account '+@REPORTHEAD title
  282. GO