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.

314 lines
22 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_acDepositPaidReport] 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 proc [dbo].[proc_acDepositPaidReport]
  9. @flag VARCHAR(50)
  10. ,@bankId VARCHAR(50) = NULL
  11. ,@fromDate VARCHAR(50) = NULL
  12. ,@toDate VARCHAR(50) = NULL
  13. ,@dateType VARCHAR(50) = NULL
  14. ,@tranType VARCHAR(10) = NULL
  15. ,@chkSender VARCHAR(10) = NULL
  16. ,@chkBankComm VARCHAR(10) = NULL
  17. ,@chkGenerator VARCHAR(10) = NULL
  18. ,@chkIMERef VARCHAR(10) = NULL
  19. ,@sendingAgent VARCHAR(50) = NULL
  20. ,@beneficiaryCountry VARCHAR(50) = NULL
  21. ,@fromTime VARCHAR(20) = NULL
  22. ,@toTime VARCHAR(20) = NULL
  23. ,@sortBy VARCHAR(50) = NULL
  24. ,@sortOrder VARCHAR(50) = NULL
  25. ,@pageSize VARCHAR(50) = NULL
  26. ,@pageNumber VARCHAR(50) = NULL
  27. ,@user VARCHAR(50) = NULL
  28. ,@redownload VARCHAR(10) = NULL
  29. ,@paidUser VARCHAR(50) = NULL
  30. AS
  31. SET NOCOUNT ON;
  32. DECLARE
  33. @code VARCHAR(50)
  34. ,@userName VARCHAR(50)
  35. ,@password VARCHAR(50)
  36. ,@logId INT
  37. DECLARE @controlNoEncrypted VARCHAR(30), @FIELDS AS VARCHAR(MAX),@SQL1 AS VARCHAR(MAX),@SQL VARCHAR(MAX)
  38. ,@fromDateOld VARCHAR(20),@toDateOld VARCHAR(20)
  39. IF @flag='report'
  40. BEGIN
  41. SET @fromDateOld = @fromDate
  42. SET @toDateOld = @toDate
  43. IF @fromTime IS NOT NULL
  44. SET @fromDate=@fromDate+' '+@fromTime
  45. ELSE
  46. SET @fromDate=@fromDate+' 23:59:59'
  47. IF @toDate IS NOT NULL
  48. SET @toDate= @toDate+' '+@toTime
  49. ELSE
  50. SET @toDate= @toDate+' 23:59:59'
  51. SET @FIELDS='[RECEIVER NAME],[ACCOUNT NUMBER],[BRANCH NAME],[PAYOUT AMOUNT]'
  52. IF @chkSender='true'
  53. SET @FIELDS=@FIELDS+',[SENDER NAME]'
  54. IF @chkBankComm='true'
  55. SET @FIELDS=@FIELDS+',[BANK COMM]'
  56. IF @chkGenerator='true'
  57. SET @FIELDS=@FIELDS+',[PAID BY]'
  58. IF @chkIMERef='true'
  59. SET @FIELDS=@FIELDS+',[IME REF. NO.]'
  60. declare @dateField as varchar(100),@payStatus varchar(50)
  61. IF @dateType ='paidDate'
  62. begin
  63. set @dateField = 'paidDate'
  64. set @payStatus = 'Paid'
  65. end
  66. IF @dateType ='postedDate'
  67. begin
  68. set @dateField = 'postedDate'
  69. set @payStatus = 'Post'
  70. end
  71. SET @SQL='
  72. (SELECT
  73. [RECEIVER NAME] = case when b.accountName is not null then b.accountName else B.firstName + ISNULL( '' '' + B.middleName, '''') + ISNULL( '' '' + B.lastName1, '''') + ISNULL( '' '' + B.lastName2, '''') end
  74. ,[ACCOUNT NUMBER] = ''A/C NO:'' + A.accountNo
  75. ,[BRANCH NAME] = isnull(pBankBranchName,pBranchName)
  76. ,[PAYOUT AMOUNT] = dbo.ShowDecimalExceptComma(ISNULL(pAmt,0))
  77. ,[SENDER NAME] = c.firstName + ISNULL( '' '' + c.middleName, '''') + ISNULL( '' '' + c.lastName1, '''') + ISNULL( '' '' + c.lastName2, '''')
  78. ,[BANK COMM] = isnull(A.pAgentComm,0)
  79. ,[PAID BY] = A.paidBy
  80. ,[IME REF. NO.] = dbo.FNADecryptString(A.controlNo)
  81. FROM remitTran A WITH(NOLOCK)
  82. INNER JOIN tranReceivers B WITH(NOLOCK) ON A.id=B.tranId
  83. INNER JOIN tranSenders C with(nolock) on a.id=c.tranId
  84. WHERE paymentMethod = ''Bank Deposit''
  85. AND (pBank = '''+@bankId+''' OR isnull(pAgent,'''') = '''+@bankId+''')
  86. AND '+@dateField+' BETWEEN '''+ @FROMDATE +''' AND '''+ @TODATE +''' and payStatus = '''+@payStatus+''''
  87. IF @tranType IS NOT NULL
  88. SET @SQL = @SQL + ' AND tranType = ''' + @tranType + ''''
  89. SET @SQL = @SQL + ')x'
  90. SET @SQL1=
  91. 'SELECT '+@FIELDS+' FROM '+@SQL+''
  92. --SELECT @SQL1
  93. --RETURN;
  94. EXEC(@SQL1)
  95. END
  96. /*
  97. UPDATE dbo.remitTran SET downloadedBy = NULL,downloadedDate=NULL,downloadLogId=NULL WHERE downloadedBy IS NOT null
  98. SELECT * FROM acDepositdownloadLog
  99. */
  100. IF OBJECT_ID('tempdb..##temp_table') IS NOT NULL
  101. DROP TABLE ##temp_table
  102. SET @fromDateOld = @fromDate
  103. SET @toDateOld = @toDate
  104. SET @fromDate=@fromDate+' '+@fromTime
  105. SET @toDate= @toDate+' '+@toTime
  106. DECLARE @FilterList TABLE(head VARCHAR(50), value VARCHAR(5000))
  107. INSERT INTO @FilterList
  108. SELECT 'REPORT TYPE' ,CASE WHEN @flag ='summary' THEN 'SUMMARY' ELSE 'DETAIL' END
  109. UNION ALL
  110. SELECT 'DOWNLOAD NATURE', CASE WHEN @redownload ='true' THEN 'RE-DOWNLOAD' ELSE 'DOWNLOAD' END
  111. DECLARE @globalFilter VARCHAR(MAX) = '',@dateField1 varchar(100),@dateFieldColumn varchar(100)
  112. IF @redownload ='false'
  113. SET @globalFilter = @globalFilter+' AND tm.downloadedDate is NULL'
  114. set @dateField1 = 'paidDate'
  115. set @dateFieldColumn = '[DOT/Paid Date]'
  116. IF @dateType ='paidDate' AND @redownload ='true'
  117. BEGIN
  118. SET @globalFilter = @globalFilter+' AND paidDate BETWEEN '''+ @FROMDATE +''' AND '''+ @TODATE +''' and payStatus = ''Paid'''
  119. INSERT @FilterList
  120. SELECT 'Date Type', @dateType
  121. UNION ALL
  122. SELECT 'From Date', @FROMDATE
  123. UNION ALL
  124. SELECT 'To Date', @TODATE
  125. END
  126. IF @dateType ='postDate' AND @redownload ='true'
  127. BEGIN
  128. SET @globalFilter = @globalFilter+' AND postedDate BETWEEN '''+ @FROMDATE +''' AND '''+ @TODATE +''' and payStatus = ''Post'''
  129. INSERT @FilterList
  130. SELECT 'Date Type', @dateType
  131. UNION ALL
  132. SELECT 'From Date', @FROMDATE
  133. UNION ALL
  134. SELECT 'To Date', @TODATE
  135. set @dateField1 = 'postedDate'
  136. set @dateFieldColumn = '[DOT/Post Date]'
  137. END
  138. IF @dateType ='confirmDate' AND @redownload ='true'
  139. BEGIN
  140. SET @globalFilter = @globalFilter+' AND approvedDateLocal BETWEEN '''+ @FROMDATE +''' AND '''+ @TODATE +''' and payStatus = ''Paid'''
  141. INSERT @FilterList
  142. SELECT 'Date Type', @dateType
  143. UNION ALL
  144. SELECT 'From Date', @FROMDATE
  145. UNION ALL
  146. SELECT 'To Date', @TODATE
  147. END
  148. IF @sendingAgent IS NOT NULL
  149. BEGIN
  150. SET @globalFilter = @globalFilter+' AND sAgent='''+@sendingAgent+''''
  151. INSERT @FilterList
  152. SELECT 'Sending Agent', (SELECT agentName FROM agentMaster am WITH(NOLOCK) WHERE agentId = @sendingAgent)
  153. END
  154. IF @bankId IS NOT NULL
  155. BEGIN
  156. SET @globalFilter = @globalFilter+' AND (pBank='''+@bankId+''' OR pAgent = '''+@bankId+''')'
  157. INSERT @FilterList
  158. SELECT 'Bank Name', (SELECT agentName FROM agentMaster am WITH(NOLOCK) WHERE agentId = @bankId)
  159. END
  160. IF @tranType IS NOT NULL
  161. BEGIN
  162. SET @globalFilter = @globalFilter+' AND tranType = '''+@tranType+''''
  163. INSERT @FilterList
  164. SELECT 'Tran Type' head,ISNULL(@tranType,'All') value
  165. END
  166. IF @paidUser IS NOT NULL AND @dateType = 'confirmDate'
  167. BEGIN
  168. SET @globalFilter = @globalFilter+' AND tm.ApprovedBy = '''+@paidUser+''''
  169. INSERT @FilterList
  170. SELECT 'Paid User' head,ISNULL(@paidUser,'All') value
  171. END
  172. IF @paidUser IS NOT NULL AND @dateType = 'postDate'
  173. BEGIN
  174. SET @globalFilter = @globalFilter+' AND tm.postedBy = '''+@paidUser+''''
  175. INSERT @FilterList
  176. SELECT 'Paid User' head,ISNULL(@paidUser,'All') value
  177. END
  178. IF @paidUser IS NOT NULL AND @dateType = 'paidDate'
  179. BEGIN
  180. SET @globalFilter = @globalFilter+' AND tm.paidBy = '''+@paidUser+''''
  181. INSERT @FilterList
  182. SELECT 'Paid User' head,ISNULL(@paidUser,'All') value
  183. END
  184. IF @flag='detail'
  185. BEGIN
  186. CREATE TABLE #TEMP_TABLE
  187. (
  188. tranId BIGINT,
  189. creditBank VARCHAR(500),
  190. receiverName VARCHAR(500),
  191. senderName VARCHAR(500),
  192. accountNo VARCHAR(100),
  193. imeRefNo VARCHAR(50),
  194. approvedDate DATETIME,
  195. paidDate DATETIME,
  196. amt MONEY,
  197. generatedFrom VARCHAR(200)
  198. )
  199. SET @SQL='
  200. SELECT
  201. [tranId] = tm.id
  202. ,[Credit Bank] = isnull(pAgentName,pBankName)+'' (''+ replace(replace(isnull(pBankBranchName,pBranchName),isnull(pAgentName,pBankName),''''),''-'','''') +'')''
  203. ,[Receiver Name] = tr.firstName + ISNULL( '' '' + tr.middleName, '''') + ISNULL('' '' + tr.lastName1, '''') + ISNULL('' '' + tr.lastName2, '''')
  204. ,[Sender Name] = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL('' '' + sen.lastName1, '''') + ISNULL('' '' + sen.lastName2, '''')
  205. ,[Account No.] = tm.accountNo
  206. ,[IME Ref] = dbo.FNADecryptString(controlNo)
  207. ,[approvedDate] = tm.approvedDate
  208. ,[paidDate] = tm.'+@dateField1+'
  209. ,[Credit Amount] = ISNULL(tm.pAmt,0)
  210. ,[Generate From] = tm.sAgentName
  211. FROM remitTran tm WITH(NOLOCK)
  212. INNER JOIN tranReceivers tr WITH(NOLOCK) ON tm.id = tr.tranId
  213. INNER JOIN tranSenders sen WITH(NOLOCK) ON tm.id = sen.tranId
  214. WHERE paymentMethod = ''BANK DEPOSIT'' '+@globalFilter
  215. --PRINT(@SQL)
  216. INSERT INTO #TEMP_TABLE(tranId,creditBank,receiverName,senderName,accountNo,imeRefNo,approvedDate,paidDate,amt,generatedFrom)
  217. EXEC(@SQL)
  218. IF @redownload ='false'
  219. BEGIN
  220. IF EXISTS(SELECT 'X' FROM #TEMP_TABLE)
  221. BEGIN
  222. INSERT INTO acDepositdownloadLog(createdDate,createdBy)
  223. SELECT dbo.FNAGetDateInNepalTZ(),@user
  224. SET @logId = SCOPE_IDENTITY()
  225. UPDATE remitTran SET downloadedBy = @user,downloadedDate=dbo.FNAGetDateInNepalTZ(),downloadLogId = @logId
  226. FROM remitTran a,
  227. (
  228. SELECT tranId FROM #TEMP_TABLE
  229. )b WHERE a.id = b.tranId
  230. END
  231. END
  232. SET @SQL1='
  233. SELECT COUNT(''a'') AS TXNCOUNT,'+@pageSize+' PAGESIZE,'+@pageNumber+' PAGENUMBER FROM (SELECT * FROM #TEMP_TABLE) AS tmp;
  234. SELECT * FROM
  235. (
  236. SELECT ROW_NUMBER() OVER (ORDER BY [Credit Bank]) AS [S.N],*
  237. FROM
  238. (
  239. SELECT
  240. [Credit Bank] = creditBank,
  241. [Receiver Name] = receiverName,
  242. [Sender Name] = senderName,
  243. [Account No.] = accountNo,
  244. [IME Ref] = ''<a href="' + dbo.FNAGetURL() + 'Remit/Transaction/Reports/SearchTransaction.aspx?controlNo='' + imeRefNo + ''" title="View Detail">'' + imeRefNo + ''</a>'',
  245. '+@dateFieldColumn+' = cast(approvedDate as varchar)+''</br>''+cast(paidDate as varchar) ,
  246. [Credit Amount] = amt,
  247. [Generate From] = generatedFrom
  248. FROM #TEMP_TABLE
  249. ) AS aa
  250. ) AS tmp WHERE 1 = 1 AND tmp.[S.N] BETWEEN (('+@pageNumber+' - 1) * '+@pageSize+' + 1) AND '+@pageNumber+' * '+@pageSize+''
  251. PRINT(@SQL1)
  252. EXEC(@SQL1)
  253. END
  254. IF @flag='summary'
  255. BEGIN
  256. SET @SQL='
  257. SELECT
  258. [S.N.] = row_number()over(order by ISNULL(pBankName,pAgentName)),
  259. [Credit Bank] = ''<a href="' + dbo.FNAGetUrl() + 'SwiftSystem/Reports/Reports.aspx?reportName=acdepositdetail&sendingAgent=' + ISNULL(@sendingAgent, '') + '&bankId='' + CAST(ISNULL(pBank,pAgent) AS VARCHAR) + ''&tranType=' + ISNULL(@tranType, '')
  260. + '&fromDate=' + ISNULL(@fromDateOld, '')+ '&redownload=' + ISNULL(@redownload, '') + '&toDate=' + ISNULL(@toDateOld, '') + '&dateType=' + ISNULL(@dateType, '') + '&fromTime=' + ISNULL(@fromTime, '') + '&toTime=' + ISNULL(@toTime, '') + '&paidUser='+ISNULL(@paidUser,'')+'" title="View Detail">'' + ISNULL(pBankName,pAgentName) +
  261. ''</a>''
  262. ,[Txn Count] = count(*)
  263. ,[Credit Amount] = sum(ISNULL(tm.pAmt,0))
  264. FROM remitTran tm WITH(NOLOCK)
  265. INNER JOIN tranReceivers tr WITH(NOLOCK) ON tm.id=tr.tranId
  266. WHERE paymentMethod=''BANK DEPOSIT''
  267. '+ @globalFilter
  268. SET @SQL = @SQL+' GROUP BY isnull(pBankName,pAgentName),ISNULL(pBank,pAgent)'
  269. EXEC(@SQL)
  270. END
  271. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  272. SELECT * FROM @FilterList
  273. SELECT 'ACCOUNT DEPOSIT PAID REPORT' title
  274. GO