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.

281 lines
7.9 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_amlOCrpt] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_amlOCrpt]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_amlOCrpt] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. CREATE proc [dbo].[proc_amlOCrpt]
  12. @flag VARCHAR(10)
  13. ,@user VARCHAR(30)
  14. -------------------------------------------
  15. ,@sCountry VARCHAR(50) = NULL
  16. ,@rCountry VARCHAR(50) = NULL
  17. ,@sAgent VARCHAR(50) = NULL
  18. ,@rAgent VARCHAR(50) = NULL
  19. ,@rMode VARCHAR(50) = NULL
  20. ,@dateType VARCHAR(50) = NULL
  21. ,@frmDate VARCHAR(50) = NULL
  22. ,@toDate VARCHAR(50) = NULL
  23. -------------------------------------------
  24. ,@rptBy VARCHAR(50) = NULL
  25. ,@rptFor VARCHAR(50) = NULL
  26. ,@tcNo VARCHAR(50) = NULL
  27. -------------------------------------------
  28. ,@ocType VARCHAR(50) = NULL
  29. ,@ocRptType VARCHAR(50) = NULL
  30. -------------------------------------------
  31. ,@recName VARCHAR(100) = NULL
  32. ,@date VARCHAR(10) = NULL
  33. ,@sCustomer VARCHAR(10) = NULL
  34. -------------------------------------------
  35. ,@pageNumber INT = 1
  36. ,@pageSize INT = 50
  37. ,@isExportFull VARCHAR(1) = NULL
  38. AS
  39. SET NOCOUNT ON
  40. BEGIN TRY
  41. DECLARE @table VARCHAR(MAX)
  42. DECLARE @sql VARCHAR(MAX)
  43. DECLARE @globalFilter VARCHAR(MAX) = ''
  44. DECLARE @branchFilter VARCHAR(MAX) = ''
  45. DECLARE @URL VARCHAR(MAX) = ''
  46. DECLARE @reportHead VARCHAR(100) = ''
  47. SET @recName = REPLACE(@recName,'__',' ')
  48. SET @rMode = REPLACE(@rMode,'__',' ')
  49. DECLARE @FilterList TABLE(head VARCHAR(50), value VARCHAR(5000))
  50. SET @pageNumber = ISNULL(@pageNumber, 1)
  51. SET @pageSize = ISNULL(@pageSize, 100)
  52. SET @globalFilter = ' AND rt.tranStatus <> ''Cancel'''
  53. IF @sCountry is not null
  54. BEGIN
  55. INSERT @FilterList
  56. SELECT 'Sender Country', @sCountry
  57. SET @globalFilter = @globalFilter + ' AND rt.sCountry = ''' + @sCountry + ''''
  58. END
  59. IF @rCountry is not null
  60. BEGIN
  61. INSERT @FilterList
  62. SELECT 'Receiver Country', @rCountry
  63. SET @globalFilter = @globalFilter + ' AND rt.pCountry = ''' + @rCountry + ''''
  64. END
  65. IF @sAgent IS NOT NULL
  66. BEGIN
  67. INSERT @FilterList
  68. SELECT 'Sender Agent', am.agentName
  69. FROM agentMaster am WITH(NOLOCK) WHERE agentId = @sAgent
  70. SET @globalFilter = @globalFilter + ' AND rt.sAgent = ''' + @sAgent + ''''
  71. END
  72. IF @rAgent IS NOT NULL
  73. BEGIN
  74. INSERT @FilterList
  75. SELECT 'Receiver Agent', am.agentName
  76. FROM agentMaster am WITH(NOLOCK) WHERE agentId = @rAgent
  77. SET @globalFilter = @globalFilter + ' AND rt.pAgent = ''' + @rAgent + ''''
  78. END
  79. IF @rMode IS NOT NULL
  80. BEGIN
  81. INSERT @FilterList
  82. SELECT 'Receiving Mode', @rMode
  83. SET @globalFilter = @globalFilter + ' AND rt.paymentMethod = ''' + @rMode + ''''
  84. END
  85. INSERT @FilterList
  86. SELECT 'Date Type',
  87. case when @dateType = 'txnDate' then 'TXN Date'
  88. when @dateType = 'confirmDate' then 'Confirm Date'
  89. when @dateType = 'paidDate' then 'Paid Date' end
  90. IF @dateType = 'txnDate'
  91. BEGIN
  92. INSERT @FilterList
  93. SELECT 'From Date', @frmDate
  94. SET @globalFilter = @globalFilter + ' AND rt.createdDate BETWEEN ''' + @frmDate + ''' AND ''' + @toDate + ' 23:59:59'''
  95. INSERT @FilterList
  96. SELECT 'To Date', @toDate
  97. END
  98. IF @dateType = 'confirmDate'
  99. BEGIN
  100. INSERT @FilterList
  101. SELECT 'From Date', @frmDate
  102. SET @globalFilter = @globalFilter + ' AND rt.approvedDate BETWEEN ''' + @frmDate + ''' AND ''' + @toDate + ' 23:59:59'''
  103. INSERT @FilterList
  104. SELECT 'To Date', @toDate
  105. END
  106. IF @dateType = 'paidDate'
  107. BEGIN
  108. INSERT @FilterList
  109. SELECT 'From Date', @frmDate
  110. SET @globalFilter = @globalFilter + ' AND rt.paidDate BETWEEN ''' + @frmDate + ''' AND ''' + @toDate + ' 23:59:59'''
  111. INSERT @FilterList
  112. SELECT 'To Date', @toDate
  113. END
  114. IF @flag = 'oc'
  115. BEGIN
  116. DECLARE @JOIN_TABLE AS VARCHAR(100)
  117. IF @ocRptType ='3'
  118. SET @JOIN_TABLE = ' INNER JOIN remitTranCompliance OFAC WITH (NOLOCK) ON rt.holdTranId = OFAC.tranId'
  119. ELSE
  120. SET @JOIN_TABLE = ' INNER JOIN remitTranOfac OFAC WITH (NOLOCK) ON rt.holdTranId = OFAC.tranId'
  121. SET @table = '
  122. SELECT
  123. [TXN Date] = rt.createdDate
  124. ,[TXN No.] = CAST(rt.holdTranId AS VARCHAR)
  125. ,[Number of TXN] = 1
  126. ,[Sender Name] = rt.senderName
  127. ,[Receiver Name] = rt.receiverName
  128. ,[Sending_Country] = rt.sCountry
  129. ,[Sending_Agent] = rt.sAgentName
  130. ,[Sending_Branch] = rt.sBranchName
  131. ,[Sending_User] = rt.createdBy
  132. ,[Collection_Currency] = rt.collCurr
  133. ,[Collection_Amount] = rt.cAmt
  134. ,[Payout_USD AMT] = ISNULL(rt.tAmt / NULLIF(rt.sCurrCostRate, 0), 0)
  135. ,[Payout_Currency] = rt.payoutCurr
  136. ,[Payout_Amount] = rt.pAmt
  137. ,[Payout_Country] = rt.pCountry
  138. ,[Approved By] = rt.approvedBy
  139. ,[Approved On] = rt.approvedDate
  140. ,[Hold Reason] = OFAC.reason
  141. ,[Released By] = OFAC.approvedBy
  142. ,[Released Date] = OFAC.approvedDate
  143. ,[Released Remarks] = OFAC.approvedRemarks
  144. ,[Reason] = OFAC.reason
  145. FROM vwremitTran rt WITH(NOLOCK)
  146. '
  147. +@JOIN_TABLE+
  148. '
  149. WHERE 1=1 and rt.tranStatus <>''cancel'' '+
  150. CASE @ocType
  151. WHEN '2' THEN REPLACE(@globalFilter, 'rt.createdDate', 'OFAC.approvedDate')
  152. ELSE @globalFilter
  153. END
  154. if @ocRptType ='1'
  155. SET @table = @table + ' AND isnull(OFAC.flag,'''') IN (''A'',''O'','''')'
  156. if @ocRptType ='2'
  157. SET @table = @table + ' AND OFAC.flag IN (''A'',''M'')'
  158. INSERT @FilterList
  159. SELECT 'OFAC Date Type ',CASE WHEN @ocType = '1' THEN 'TXN Date' ELSE 'Approved Date' END
  160. INSERT @FilterList
  161. SELECT 'Report Type',
  162. CASE @ocRptType
  163. WHEN '1' THEN 'OFAC'
  164. WHEN '2' THEN 'Black List'
  165. WHEN '3' THEN 'Compliance'
  166. END
  167. IF @isExportFull = 'Y'
  168. BEGIN
  169. SET @sql = '
  170. SELECT
  171. [Sno.] = [S.N]
  172. ,[TXN Date]
  173. ,[TXN No.] = ''<span class = "link" onclick ="ViewTranDetail('' + CAST([TXN No.] AS VARCHAR(50)) + '');">'' + CAST([TXN No.] AS VARCHAR(50)) + ''</span>''
  174. ,[Sender Name]
  175. ,[Receiver Name]
  176. ,[Sending_Country]
  177. ,[Sending_Agent]
  178. ,[Sending_Branch]
  179. ,[Sending_User]
  180. ,[Collection_Currency]
  181. ,[Collection_Amount]
  182. ,[Payout_USD AMT]
  183. ,[Payout_Currency]
  184. ,[Payout_Amount]
  185. ,[Payout_Country]
  186. ,[Approved By]
  187. ,[Approved On]
  188. ,[Hold Reason]
  189. ,[Released By]
  190. ,[Released Date]
  191. ,[Released Remarks]
  192. FROM (
  193. SELECT
  194. ROW_NUMBER() OVER (ORDER BY [Number of TXN]) AS [S.N],*
  195. FROM (' + @table + ') x
  196. ) AS tmp'
  197. PRINT @sql
  198. EXEC (@sql)
  199. END
  200. ELSE
  201. BEGIN
  202. SET @sql = 'SELECT
  203. COUNT(*) AS TXNCOUNT
  204. ,' + CAST(@pageSize AS VARCHAR) + ' PAGESIZE
  205. ,' + CAST(@pageNumber AS VARCHAR) + ' PAGENUMBER
  206. FROM (' + @table + ') x'
  207. EXEC (@sql)
  208. SET @sql = '
  209. SELECT
  210. [Sno.] = [S.N]
  211. ,[TXN Date]
  212. ,[TXN No.] = ''<span class = "link" onclick ="ViewTranDetail('' + CAST([TXN No.] AS VARCHAR(50)) + '');">'' + CAST([TXN No.] AS VARCHAR(50)) + ''</span>''
  213. ,[Sender Name]
  214. ,[Receiver Name]
  215. ,[Sending_Country]
  216. ,[Sending_Agent]
  217. ,[Sending_Branch]
  218. ,[Sending_User]
  219. ,[Collection_Currency]
  220. ,[Collection_Amount]
  221. ,[Payout_USD AMT]
  222. ,[Payout_Currency]
  223. ,[Payout_Amount]
  224. ,[Payout_Country]
  225. ,[Approved By]
  226. ,[Approved On]
  227. ,[Hold Reason]
  228. ,[Released By]
  229. ,[Released Date]
  230. ,[Released Remarks]
  231. FROM (
  232. SELECT
  233. ROW_NUMBER() OVER (ORDER BY [Number of TXN]) AS [S.N],*
  234. FROM (' + @table + ') x
  235. ) AS tmp WHERE tmp.[S.N] BETWEEN ' + CAST(((@pageNumber - 1) * @pageSize + 1) AS VARCHAR) + ' AND ' + CAST(@pageNumber * @pageSize AS VARCHAR)
  236. PRINT @sql
  237. EXEC (@sql)
  238. END
  239. END
  240. EXEC proc_errorHandler '0', 'Report has been prepared successfully.', NULL
  241. SELECT * FROM @FilterList
  242. SELECT 'AML Reports : '+@reportHead title
  243. END TRY
  244. BEGIN CATCH
  245. IF @@TRANCOUNT > 0
  246. ROLLBACK TRANSACTION
  247. DECLARE @errorMessage VARCHAR(MAX)
  248. SET @errorMessage = ERROR_MESSAGE()
  249. EXEC proc_errorHandler 1, @errorMessage ,NULL
  250. END CATCH
  251. GO