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
17 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_acDepositPaidISOReport] 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_acDepositPaidISOReport]
  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. ,@logStatus 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
  38. @controlNoEncrypted VARCHAR(30),
  39. @FIELDS AS VARCHAR(MAX),
  40. @SQL1 AS VARCHAR(MAX),
  41. @SQL VARCHAR(MAX),
  42. @fromDateOld VARCHAR(20),
  43. @toDateOld VARCHAR(20)
  44. SET @fromDateOld = @fromDate
  45. SET @toDateOld = @toDate
  46. SET @fromDate=@fromDate+' '+@fromTime
  47. SET @toDate= @toDate+' '+@toTime
  48. DECLARE @FilterList TABLE(head VARCHAR(50), value VARCHAR(5000))
  49. INSERT INTO @FilterList
  50. SELECT 'REPORT TYPE' ,CASE WHEN @flag ='summary' THEN 'SUMMARY' ELSE 'DETAIL' END
  51. DECLARE @globalFilter VARCHAR(MAX) = '',@dateField1 varchar(100),@dateFieldColumn varchar(100)
  52. --SELECT * FROM acDepositQueueIso
  53. set @dateField1 = 'paidDate'
  54. set @dateFieldColumn = '[DOT/Paid Date]'
  55. IF @dateType ='paidDate'
  56. BEGIN
  57. SET @globalFilter = @globalFilter+' AND q.status=''Success'' AND tm.paidDate BETWEEN '''+ @FROMDATE +''' AND '''+ @TODATE +''' and payStatus = ''Paid'''
  58. INSERT @FilterList
  59. SELECT 'Date Type', @dateType
  60. UNION ALL
  61. SELECT 'From Date', @FROMDATE
  62. UNION ALL
  63. SELECT 'To Date', @TODATE
  64. END
  65. IF @dateType ='postDate'
  66. BEGIN
  67. SET @globalFilter = @globalFilter+' AND tm.postedDate BETWEEN '''+ @FROMDATE +''' AND '''+ @TODATE +''' and payStatus = ''Post'''
  68. INSERT @FilterList
  69. SELECT 'Date Type', @dateType
  70. UNION ALL
  71. SELECT 'From Date', @FROMDATE
  72. UNION ALL
  73. SELECT 'To Date', @TODATE
  74. set @dateField1 = 'postedDate'
  75. set @dateFieldColumn = '[DOT/Post Date]'
  76. END
  77. IF @dateType ='confirmDate'
  78. BEGIN
  79. SET @globalFilter = @globalFilter+' AND tm.approvedDateLocal BETWEEN '''+ @FROMDATE +''' AND '''+ @TODATE +''' and payStatus = ''Paid'''
  80. INSERT @FilterList
  81. SELECT 'Date Type', @dateType
  82. UNION ALL
  83. SELECT 'From Date', @FROMDATE
  84. UNION ALL
  85. SELECT 'To Date', @TODATE
  86. END
  87. IF @sendingAgent IS NOT NULL
  88. BEGIN
  89. SET @globalFilter = @globalFilter+' AND tm.sAgent='''+@sendingAgent+''''
  90. INSERT @FilterList
  91. SELECT 'Sending Agent', (SELECT agentName FROM agentMaster am WITH(NOLOCK) WHERE agentId = @sendingAgent)
  92. END
  93. IF @bankId IS NOT NULL
  94. BEGIN
  95. SET @globalFilter = @globalFilter+' AND (tm.pBank='''+@bankId+''' OR tm.pAgent = '''+@bankId+''')'
  96. INSERT @FilterList
  97. SELECT 'Bank Name', (SELECT agentName FROM agentMaster am WITH(NOLOCK) WHERE agentId = @bankId)
  98. END
  99. IF @tranType IS NOT NULL
  100. BEGIN
  101. SET @globalFilter = @globalFilter+' AND tm.tranType = '''+@tranType+''''
  102. INSERT @FilterList
  103. SELECT 'Tran Type' head,ISNULL(@tranType,'All') value
  104. END
  105. IF @paidUser IS NOT NULL
  106. BEGIN
  107. SET @globalFilter = @globalFilter+' AND tm.paidBy = '''+@paidUser+''''
  108. INSERT @FilterList
  109. SELECT 'Paid User' head,ISNULL(@paidUser,'All') value
  110. END
  111. IF @logStatus IS NOT NULL
  112. BEGIN
  113. IF @logStatus = 'Pending'
  114. SET @globalFilter = @globalFilter+' AND q.status IS NULL '
  115. ELSE IF @logStatus = 'Paid'
  116. SET @globalFilter = @globalFilter+' AND q.status = ''success'''
  117. ELSE
  118. SET @globalFilter = @globalFilter+' AND q.status = '''+@logStatus+''''
  119. INSERT @FilterList
  120. SELECT 'Log Status' head,ISNULL(UPPER(@logStatus),'All') value
  121. END
  122. IF @flag='detail'
  123. BEGIN
  124. CREATE TABLE #TEMP_TABLE
  125. (
  126. tranId BIGINT,
  127. creditBank VARCHAR(500),
  128. receiverName VARCHAR(500),
  129. senderName VARCHAR(500),
  130. accountNo VARCHAR(100),
  131. imeRefNo VARCHAR(50),
  132. approvedDate DATETIME,
  133. paidDate DATETIME,
  134. amt MONEY,
  135. generatedFrom VARCHAR(200),
  136. logStatus VARCHAR(50),
  137. processDate DATETIME,
  138. resMsg VARCHAR(MAX),
  139. referenceId VARCHAR(100)
  140. )
  141. --+'' (''+ replace(replace(isnull(tm.pBankBranchName,tm.pBranchName),isnull(tm.pAgentName,tm.pBankName),''''),''-'','''') +'')''
  142. SET @SQL='
  143. SELECT
  144. [tranId] = tm.id
  145. ,[Credit Bank] = ISNULL(tm.pAgentName, tm.pBankName)
  146. ,[Receiver Name] = tr.firstName + ISNULL( '' '' + tr.middleName, '''') + ISNULL('' '' + tr.lastName1, '''') + ISNULL('' '' + tr.lastName2, '''')
  147. ,[Sender Name] = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL('' '' + sen.lastName1, '''') + ISNULL('' '' + sen.lastName2, '''')
  148. ,[Account No.] = tm.accountNo
  149. ,[IME Ref] = dbo.FNADecryptString(tm.controlNo)
  150. ,[approvedDate] = tm.approvedDate
  151. ,[paidDate] = tm.'+@dateField1+'
  152. ,[Credit Amount] = ISNULL(tm.pAmt,0)
  153. ,[Generate From] = tm.sAgentName
  154. ,[ISO Logs_Status] = q.status
  155. ,[ISO Logs_Process Date] = q.processDate
  156. ,[ISO Logs_Response Msg] = q.resMsg
  157. ,[Refrence ID] = q.referenceId
  158. FROM remitTran tm WITH(NOLOCK)
  159. INNER JOIN tranReceivers tr WITH(NOLOCK) ON tm.id = tr.tranId
  160. INNER JOIN tranSenders sen WITH(NOLOCK) ON tm.id = sen.tranId
  161. INNER JOIN acDepositQueueIso q WITH(NOLOCK) ON q.tranId = tm.id
  162. WHERE tm.paymentMethod = ''BANK DEPOSIT'' and tm.expectedPayoutAgent =''iso'' '+@globalFilter
  163. PRINT(@SQL)
  164. INSERT INTO #TEMP_TABLE(tranId,creditBank,receiverName,senderName,accountNo,imeRefNo,approvedDate,paidDate,amt,generatedFrom,logStatus,processDate,resMsg,referenceId)
  165. EXEC(@SQL)
  166. SET @SQL1='
  167. SELECT COUNT(''a'') AS TXNCOUNT,'+@pageSize+' PAGESIZE,'+@pageNumber+' PAGENUMBER FROM (SELECT * FROM #TEMP_TABLE) AS tmp;
  168. SELECT * FROM
  169. (
  170. SELECT ROW_NUMBER() OVER (ORDER BY [Credit Bank]) AS [S.N],*
  171. FROM
  172. (
  173. SELECT
  174. [Credit Bank] = creditBank,
  175. [Receiver Name] = receiverName,
  176. [Sender Name] = senderName,
  177. [Account No.] = accountNo,
  178. [IME Ref] = ''<a href="' + dbo.FNAGetURL() + 'Remit/Transaction/Reports/SearchTransaction.aspx?controlNo='' + imeRefNo + ''" title="View Detail">'' + imeRefNo + ''</a>'',
  179. '+@dateFieldColumn+' = cast(approvedDate as varchar)+''</br>''+cast(paidDate as varchar) ,
  180. [Credit Amount] = amt,
  181. [Generate From] = generatedFrom,
  182. [ISO Logs_Status] = logStatus,
  183. [ISO Logs_Process date] = processDate,
  184. [ISO Logs_Response Msg] = resMsg,
  185. [Refrence ID] = referenceId
  186. FROM #TEMP_TABLE
  187. ) AS aa
  188. ) AS tmp WHERE 1 = 1 AND tmp.[S.N] BETWEEN (('+@pageNumber+' - 1) * '+@pageSize+' + 1) AND '+@pageNumber+' * '+@pageSize+''
  189. PRINT(@SQL1)
  190. EXEC(@SQL1)
  191. END
  192. IF @flag='summary'
  193. BEGIN
  194. SET @SQL='
  195. SELECT
  196. [S.N.] = row_number()over(order by ISNULL(tm.pBankName,tm.pAgentName)),
  197. [Credit Bank] = ''<a href="' + dbo.FNAGetUrl() + 'SwiftSystem/Reports/Reports.aspx?reportName=aclogIso&rptType=detail&sendingAgent=' + ISNULL(@sendingAgent, '') + '&bankId='' + CAST(ISNULL(tm.pBank,tm.pAgent) AS VARCHAR) + ''&tranType=' + ISNULL(@tranType, '')
  198. + '&fromDate=' + ISNULL(@fromDateOld, '')+ '&logStatus=' + ISNULL(@logStatus, '') + '&toDate=' + ISNULL(@toDateOld, '') + '&dateType=' + ISNULL(@dateType, '') + '&fromTime=' + ISNULL(@fromTime, '') + '&toTime=' + ISNULL(@toTime, '') + '" title="View Detail">'' + ISNULL(tm.pBankName,tm.pAgentName) +
  199. ''</a>''
  200. ,[Txn Count] = count(''x'')
  201. ,[Credit Amount] = sum(ISNULL(tm.pAmt,0))
  202. FROM remitTran tm WITH(NOLOCK)
  203. INNER JOIN tranReceivers tr WITH(NOLOCK) ON tm.id=tr.tranId
  204. INNER JOIN acDepositQueueIso q WITH(NOLOCK) ON q.tranId = tm.id
  205. WHERE paymentMethod=''BANK DEPOSIT'' and expectedPayoutAgent =''iso''
  206. '+ @globalFilter
  207. SET @SQL = @SQL+' GROUP BY isnull(tm.pBankName,tm.pAgentName),ISNULL(tm.pBank,tm.pAgent)'
  208. EXEC(@SQL)
  209. END
  210. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  211. SELECT * FROM @FilterList
  212. SELECT 'ACCOUNT DEPOSIT PAID REPORT- ISO' title
  213. GO