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.

256 lines
16 KiB

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