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.

274 lines
18 KiB

9 months ago
10 months ago
9 months ago
10 months ago
9 months ago
10 months ago
10 months ago
9 months ago
10 months ago
10 months ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_approveOFACCompliance] Script Date: 12/22/2023 11:53:56 AM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER proc [dbo].[proc_approveOFACCompliance]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(200) = NULL
  11. ,@trnId VARCHAR(30) = NULL
  12. ,@controlNo VARCHAR(100) = NULL
  13. ,@sCountry VARCHAR(50) = NULL
  14. ,@sAgentName VARCHAR(50) = NULL
  15. ,@branchName VARCHAR(50) = NULL
  16. ,@createdBy VARCHAR(50) = NULL
  17. ,@createdDate VARCHAR(20) = NULL
  18. ,@type VARCHAR(10) = NULL
  19. ,@sortBy VARCHAR(50) = NULL
  20. ,@sortOrder VARCHAR(5) = NULL
  21. ,@pageSize INT = NULL
  22. ,@pageNumber INT = NULL
  23. ,@Msg VARCHAR(20) = NULL
  24. ,@tranType CHAR(1) = NULL
  25. ,@email VARCHAR(50) = NULL
  26. ,@kycStatus VARCHAR(100) = NULL
  27. AS
  28. ------------------------------------------------------------------------
  29. -- #101 - Mobile Changes , #418 - Add email filter
  30. -- #18970 change in @flag='s' to hide document upload panel
  31. -- #18970 chnage in @flag='s' to split txn on the basis of kyc status
  32. -- change in @flag = 's' to show registration type and kyc status
  33. -- change in @flaf = 's' to order the txn by created Date
  34. -- change for showing compliance hold txn only once even if mutiple rules are hit
  35. -------------------------------------------------------------------------
  36. SET NOCOUNT ON;
  37. SET XACT_ABORT ON;
  38. DECLARE @controlNoEncrypted VARCHAR(20)
  39. SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo)
  40. BEGIN TRY
  41. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  42. DECLARE
  43. @sql VARCHAR(MAX)
  44. ,@oldValue VARCHAR(MAX)
  45. ,@newValue VARCHAR(MAX)
  46. ,@module VARCHAR(10)
  47. ,@tableAlias VARCHAR(100)
  48. ,@logIdentifier VARCHAR(50)
  49. ,@logParamMod VARCHAR(100)
  50. ,@logParamMain VARCHAR(100)
  51. ,@table VARCHAR(MAX)
  52. ,@select_field_list VARCHAR(MAX)
  53. ,@extra_field_list VARCHAR(MAX)
  54. ,@sql_filter VARCHAR(MAX)
  55. ,@id VARCHAR(10)
  56. ,@modType VARCHAR(6)
  57. ,@ApprovedFunctionId INT
  58. ,@tranAmount MONEY
  59. SELECT
  60. @ApprovedFunctionId = 20123030
  61. ,@logIdentifier = 'trnId'
  62. ,@logParamMain = 'remitTranCompliance'
  63. ,@logParamMod = 'remitTranOfac'
  64. ,@module = '20'
  65. ,@tableAlias = 'Approve OFAC Compliance'
  66. IF @flag='s'
  67. BEGIN
  68. SET @table = '(
  69. select
  70. tranId=ISNULL(b.holdTranId,b.id)
  71. ,controlNo=dbo.FNADecryptString(b.controlNo)
  72. ,b.sCountry
  73. ,b.sAgentName
  74. ,branchName=CASE b.TranType WHEN ''I'' THEN ''CR Panel'' ELSE CASE b.isonlineTxn WHEN ''M'' THEN ''Mobile'' ELSE ''WEB Online'' END END
  75. ,b.createdBy
  76. ,b.createdDate
  77. ,b.cAmt
  78. ,type = ISNULL((SELECT dbo.FNAGetOfacComplianceReason(ISNULL(b.holdTranId, b.id))),''Cash Limit Hold'')
  79. ,receiverName = rec.fullname
  80. ,senderName = b.senderName
  81. , hasChanged = '' ''
  82. --,cm.email as email
  83. ,complianceRemarks = STRING_AGG(ISNULL(cl.complianceReason, ''''), ''| '')
  84. ,[RegistrationType] = CASE WHEN cm.LawsonCardNo IS NULL THEN '''' ELSE cm.LawsonCardNo END
  85. --,ISNULL(cm.verificationCode,''NOT_COMPLETED'') verificationCode
  86. ,verificationCode = cm.verificationCode
  87. from vwRemitTran b with(nolock)
  88. INNER JOIN VWTRANRECEIVERS REC (NOLOCK) ON REC.TRANID = B.ID
  89. LEFT JOIN complianceLog cl (NOLOCK) ON cl.tranId = B.ID
  90. LEFT JOIN CustomerMaster cm(nolock) ON cm.customerId = REC.customerId
  91. WHERE B.tranStatus IN (''Compliance Hold'', ''OFAC Hold'', ''OFAC/Compliance Hold'', ''Cash Limit Hold'', ''Cash Limit/OFAC/Compliance Hold'', ''Cash Limit/OFAC Hold'', ''Cash Limit/Compliance Hold'')
  92. '
  93. IF ISNULL(@tranType, '') <> ''
  94. BEGIN
  95. SET @table += 'AND B.TRANTYPE = ISNULL('''+@tranType+''', B.TRANTYPE)';
  96. END
  97. IF ISNULL(@kycstatus, '') <> ''
  98. BEGIN
  99. SET @table += 'AND cm.LawsonCardNo = ISNULL(''' + @kycstatus + ''', cm.LawsonCardNo)';
  100. END
  101. SET @table += ' GROUP BY
  102. ISNULL(b.holdTranId, b.id),
  103. dbo.FNADecryptString(b.controlNo),
  104. b.sCountry,
  105. b.sAgentName,
  106. CASE b.TranType
  107. WHEN ''I'' THEN ''CR Panel''
  108. ELSE CASE b.isonlineTxn
  109. WHEN ''M'' THEN ''Mobile''
  110. ELSE ''WEB Online''
  111. END
  112. END,
  113. b.createdBy,
  114. b.createdDate,
  115. b.cAmt,
  116. rec.fullname,
  117. b.senderName,
  118. CASE WHEN cm.LawsonCardNo IS NULL THEN '''' ELSE cm.LawsonCardNo END,
  119. verificationCode)';
  120. IF @sortBy IS NULL
  121. SET @sortBy = 'createdDate'
  122. IF @sortOrder IS NULL
  123. SET @sortOrder = 'DESC'
  124. --print @table
  125. --return;
  126. SET @table = '(
  127. SELECT
  128. tranId,
  129. --,controlNo= ''<a href="#" onclick="OpenInNewWindow('''''+dbo.FNAGetURL()+'Remit/Transaction/Reports/SearchTransaction.aspx?controlNo='' + main.controlNo + '''''')">'' + main.controlNo + ''</a>''
  130. controlNo = ''<a href="'+dbo.FNAGetURL()+'Remit/Compliance/ApproveOFACandComplaince/Manage.aspx?controlNo='' + main.controlNo + ''&showDocPanel=N">'' + main.controlNo + ''</a>'',
  131. branchName,
  132. type,
  133. receiverName,
  134. senderName,
  135. hasChanged,
  136. sCountry,
  137. sAgentName,
  138. createdBy,
  139. createdDate,
  140. cAmt,
  141. complianceRemarks,
  142. RegistrationType,
  143. verificationCode
  144. FROM ' + @table + ' main
  145. ) x'
  146. SET @sql_filter = ''
  147. IF @controlNo IS NOT NULL
  148. SET @sql_filter = @sql_filter + ' AND controlNo LIKE ''%' + @controlNo + '%'''
  149. IF @email IS NOT NULL
  150. SET @sql_filter = @sql_filter + ' AND createdBy LIKE ''%' + @email + '%'''
  151. IF @sCountry IS NOT NULL
  152. SET @sql_filter = @sql_filter + ' AND sCountry = ''' + @sCountry + ''''
  153. IF @sAgentName IS NOT NULL
  154. SET @sql_filter = @sql_filter + ' AND sAgentName = ''' + @sAgentName + ''''
  155. IF @branchName IS NOT NULL
  156. SET @sql_filter = @sql_filter + ' AND senderName = ''' + @branchName + ''''
  157. IF @createdBy IS NOT NULL
  158. SET @sql_filter = @sql_filter + ' AND createdBy = ''' + @createdBy + ''''
  159. IF @createdDate IS NOT NULL
  160. SET @sql_filter = @sql_filter + ' AND CAST(createdDate AS DATE) = ''' + @createdDate + ''''
  161. IF @type IS NOT NULL
  162. SET @sql_filter = @sql_filter + ' AND type LIKE ''' + @type + '%'''
  163. SET @select_field_list ='
  164. tranId
  165. ,controlNo
  166. ,branchName
  167. ,type
  168. ,receiverName
  169. ,senderName
  170. ,hasChanged
  171. ,sCountry
  172. ,sAgentName
  173. ,createdBy
  174. ,createdDate
  175. ,cAmt
  176. ,complianceRemarks
  177. ,RegistrationType
  178. ,verificationCode
  179. '
  180. EXEC dbo.proc_paging
  181. @table
  182. ,@sql_filter
  183. ,@select_field_list
  184. ,@extra_field_list
  185. ,@sortBy
  186. ,@sortOrder
  187. ,@pageSize
  188. ,@pageNumber
  189. END
  190. /*
  191. ELSE IF @flag = 'c' -- ## search transaction for Errorneously Pay
  192. BEGIN
  193. IF NOT EXISTS(SELECT 'X' FROM remitTran WITH(NOLOCK)
  194. WHERE controlNo = @controlNoEncrypted and tranStatus = 'Paid' )
  195. BEGIN
  196. EXEC proc_errorHandler 1, 'Paid Transaction Not Found', @controlNoEncrypted
  197. RETURN
  198. END
  199. IF EXISTS(SELECT 'X' FROM errPaidTran WITH(NOLOCK)
  200. WHERE controlNo = (select controlNo from errPaidTran where controlNo=@controlNo and tranStatus='Paid'))
  201. BEGIN
  202. EXEC proc_errorHandler 1, 'Transaction Already Errorneously Paid!', @controlNoEncrypted
  203. RETURN
  204. END
  205. IF EXISTS(SELECT 'X' FROM errPaidTran WITH(NOLOCK)
  206. WHERE controlNo = (select controlNo from errPaidTran where controlNo=@controlNo
  207. and tranStatus is null and ISNULL(isDeleted,'N')<>'Y'))
  208. BEGIN
  209. EXEC proc_errorHandler 1, 'Transaction Already Requested For Errorneously Pay!', @controlNoEncrypted
  210. RETURN
  211. END
  212. DECLARE @agentId INT
  213. SELECT @agentId = agentId FROM applicationUsers WHERE userName = @user
  214. IF @agentId = 1
  215. BEGIN
  216. EXEC proc_errorHandler 0, 'Transaction Found', @controlNoEncrypted
  217. RETURN
  218. END
  219. IF NOT EXISTS(SELECT 'X' FROM remitTran WITH(NOLOCK)
  220. WHERE controlNo = @controlNoEncrypted AND
  221. (pBranch = (SELECT agentId FROM applicationUsers WITH(NOLOCK) WHERE userName = @user))
  222. )
  223. BEGIN
  224. EXEC proc_errorHandler 1, 'You are not authorized to view this transaction', @controlNoEncrypted
  225. RETURN
  226. END
  227. EXEC proc_errorHandler 0, 'Transaction Found', @controlNo
  228. END
  229. */
  230. END TRY
  231. BEGIN CATCH
  232. IF @@TRANCOUNT > 0
  233. ROLLBACK TRANSACTION
  234. DECLARE @errorMessage VARCHAR(MAX)
  235. SET @errorMessage = ERROR_MESSAGE()
  236. EXEC proc_errorHandler 1, @errorMessage, @trnId
  237. END CATCH