USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[proc_approveOFACCompliance] Script Date: 12/27/2023 3:37:01 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[proc_approveOFACCompliance] @flag VARCHAR(50) = NULL ,@user VARCHAR(200) = NULL ,@trnId VARCHAR(30) = NULL ,@controlNo VARCHAR(100) = NULL ,@sCountry VARCHAR(50) = NULL ,@sAgentName VARCHAR(50) = NULL ,@branchName VARCHAR(50) = NULL ,@createdBy VARCHAR(50) = NULL ,@createdDate VARCHAR(20) = NULL ,@type VARCHAR(10) = NULL ,@sortBy VARCHAR(50) = NULL ,@sortOrder VARCHAR(5) = NULL ,@pageSize INT = NULL ,@pageNumber INT = NULL ,@Msg VARCHAR(20) = NULL ,@tranType CHAR(1) = NULL ,@email VARCHAR(50) = NULL ,@kycStatus VARCHAR(100) = NULL AS ------------------------------------------------------------------------ -- #101 - Mobile Changes , #418 - Add email filter -- #18970 change in @flag='s' to hide document upload panel -- #18970 chnage in @flag='s' to split txn on the basis of kyc status -- change in @flag = 's' to show registration type and kyc status -- change in @flaf = 's' to order the txn by created Date ------------------------------------------------------------------------- SET NOCOUNT ON; SET XACT_ABORT ON; DECLARE @controlNoEncrypted VARCHAR(20) SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo) BEGIN TRY CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT) DECLARE @sql VARCHAR(MAX) ,@oldValue VARCHAR(MAX) ,@newValue VARCHAR(MAX) ,@module VARCHAR(10) ,@tableAlias VARCHAR(100) ,@logIdentifier VARCHAR(50) ,@logParamMod VARCHAR(100) ,@logParamMain VARCHAR(100) ,@table VARCHAR(MAX) ,@select_field_list VARCHAR(MAX) ,@extra_field_list VARCHAR(MAX) ,@sql_filter VARCHAR(MAX) ,@id VARCHAR(10) ,@modType VARCHAR(6) ,@ApprovedFunctionId INT ,@tranAmount MONEY SELECT @ApprovedFunctionId = 20123030 ,@logIdentifier = 'trnId' ,@logParamMain = 'remitTranCompliance' ,@logParamMod = 'remitTranOfac' ,@module = '20' ,@tableAlias = 'Approve OFAC Compliance' IF @flag='s' BEGIN SET @table = '( select tranId=ISNULL(b.holdTranId,b.id) ,controlNo=dbo.FNADecryptString(b.controlNo) ,b.sCountry ,b.sAgentName ,branchName=CASE b.TranType WHEN ''I'' THEN ''CR Panel'' ELSE CASE b.isonlineTxn WHEN ''M'' THEN ''Mobile'' ELSE ''WEB Online'' END END ,b.createdBy ,b.createdDate ,b.cAmt ,type = ISNULL((SELECT dbo.FNAGetOfacComplianceReason(ISNULL(b.holdTranId, b.id))),''Cash Limit Hold'') ,receiverName = rec.fullname ,senderName = b.senderName , hasChanged = '' '' --,cm.email as email ,complianceRemarks = cl.complianceReason ,[RegistrationType] = CASE WHEN cm.LawsonCardNo IS NULL THEN '''' ELSE cm.LawsonCardNo END --,ISNULL(cm.verificationCode,''NOT_COMPLETED'') verificationCode ,verificationCode = cm.verificationCode from vwRemitTran b with(nolock) INNER JOIN VWTRANRECEIVERS REC (NOLOCK) ON REC.TRANID = B.ID LEFT JOIN complianceLog cl (NOLOCK) ON cl.tranId = B.ID LEFT JOIN CustomerMaster cm(nolock) ON cm.customerId = REC.customerId 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'') ' IF ISNULL(@tranType, '') <> '' BEGIN SET @table += 'AND B.TRANTYPE = ISNULL('''+@tranType+''', B.TRANTYPE)'; END IF ISNULL(@kycstatus, '') <> '' BEGIN SET @table += 'AND cm.LawsonCardNo = ISNULL(''' + @kycstatus + ''', cm.LawsonCardNo)'; END SET @table += ')'; IF @sortBy IS NULL SET @sortBy = 'createdDate' IF @sortOrder IS NULL SET @sortOrder = 'DESC' --print @table --return; SET @table = '( SELECT tranId, --,controlNo= '''' + main.controlNo + '''' controlNo = '''' + main.controlNo + '''', branchName, type, receiverName, senderName, hasChanged, sCountry, sAgentName, createdBy, createdDate, cAmt, complianceRemarks, RegistrationType, verificationCode FROM ' + @table + ' main ) x' SET @sql_filter = '' IF @controlNo IS NOT NULL SET @sql_filter = @sql_filter + ' AND controlNo LIKE ''%' + @controlNo + '%''' IF @email IS NOT NULL SET @sql_filter = @sql_filter + ' AND createdBy LIKE ''%' + @email + '%''' IF @sCountry IS NOT NULL SET @sql_filter = @sql_filter + ' AND sCountry = ''' + @sCountry + '''' IF @sAgentName IS NOT NULL SET @sql_filter = @sql_filter + ' AND sAgentName = ''' + @sAgentName + '''' IF @branchName IS NOT NULL SET @sql_filter = @sql_filter + ' AND senderName = ''' + @branchName + '''' IF @createdBy IS NOT NULL SET @sql_filter = @sql_filter + ' AND createdBy = ''' + @createdBy + '''' IF @createdDate IS NOT NULL SET @sql_filter = @sql_filter + ' AND CAST(createdDate AS DATE) = ''' + @createdDate + '''' IF @type IS NOT NULL SET @sql_filter = @sql_filter + ' AND type LIKE ''' + @type + '%''' SET @select_field_list =' tranId ,controlNo ,branchName ,type ,receiverName ,senderName ,hasChanged ,sCountry ,sAgentName ,createdBy ,createdDate ,cAmt ,complianceRemarks ,RegistrationType ,verificationCode ' EXEC dbo.proc_paging @table ,@sql_filter ,@select_field_list ,@extra_field_list ,@sortBy ,@sortOrder ,@pageSize ,@pageNumber END /* ELSE IF @flag = 'c' -- ## search transaction for Errorneously Pay BEGIN IF NOT EXISTS(SELECT 'X' FROM remitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted and tranStatus = 'Paid' ) BEGIN EXEC proc_errorHandler 1, 'Paid Transaction Not Found', @controlNoEncrypted RETURN END IF EXISTS(SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE controlNo = (select controlNo from errPaidTran where controlNo=@controlNo and tranStatus='Paid')) BEGIN EXEC proc_errorHandler 1, 'Transaction Already Errorneously Paid!', @controlNoEncrypted RETURN END IF EXISTS(SELECT 'X' FROM errPaidTran WITH(NOLOCK) WHERE controlNo = (select controlNo from errPaidTran where controlNo=@controlNo and tranStatus is null and ISNULL(isDeleted,'N')<>'Y')) BEGIN EXEC proc_errorHandler 1, 'Transaction Already Requested For Errorneously Pay!', @controlNoEncrypted RETURN END DECLARE @agentId INT SELECT @agentId = agentId FROM applicationUsers WHERE userName = @user IF @agentId = 1 BEGIN EXEC proc_errorHandler 0, 'Transaction Found', @controlNoEncrypted RETURN END IF NOT EXISTS(SELECT 'X' FROM remitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted AND (pBranch = (SELECT agentId FROM applicationUsers WITH(NOLOCK) WHERE userName = @user)) ) BEGIN EXEC proc_errorHandler 1, 'You are not authorized to view this transaction', @controlNoEncrypted RETURN END EXEC proc_errorHandler 0, 'Transaction Found', @controlNo END */ END TRY BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION DECLARE @errorMessage VARCHAR(MAX) SET @errorMessage = ERROR_MESSAGE() EXEC proc_errorHandler 1, @errorMessage, @trnId END CATCH