|
|
USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[proc_payTransactionDetail] Script Date: 7/4/2019 11:35:48 AM ******/ DROP PROCEDURE [dbo].[proc_payTransactionDetail] GO /****** Object: StoredProcedure [dbo].[proc_payTransactionDetail] Script Date: 7/4/2019 11:35:48 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[proc_payTransactionDetail]( @flag VARCHAR(1) ,@user VARCHAR(50) ,@rowId BIGINT = NULL ,@securityNo VARCHAR(50) = NULL ,@transactionDate DATETIME = NULL ,@sendingCountry VARCHAR(50) = NULL ,@senderName VARCHAR(50) = NULL ,@senderAddress VARCHAR(50) = NULL ,@senderContactNo VARCHAR(50) = NULL ,@senderCountry VARCHAR(50) = NULL ,@senderIdNo VARCHAR(50) = NULl ,@senderIdType VARCHAR(50) = NULl ,@recName VARCHAR(50) = NULl ,@recAddress VARCHAR(50) = NULl ,@recContactNo VARCHAR(50) = NULl ,@recIdType VARCHAR(50) = NULl ,@recIdNo VARCHAR(50) = NULl ,@pAmount VARCHAR(50) = NULl ,@relationType VARCHAR(50) = NULl ,@relativeName VARCHAR(50) = NULl ,@rIdPlaceOfIssue VARCHAR(50) = NULl ,@partnerId VARCHAR(30) = NULL ,@pBranchId VARCHAR(50) = NULL ,@branchName VARCHAR(200) = NULL ) AS
IF @Flag='s' BEGIN DECLARE @agentGrp INT,@cotrolNo VARCHAR(50),@subPartnerId int
IF @pBranchId IS NOT NULL SELECT @branchName = agentName, @agentGrp = agentGrp FROM agentMaster am WITH(NOLOCK) WHERE agentId = @pBranchId DECLARE @mapCodeDom VARCHAR(50) ,@tranStatus VARCHAR(50) ,@tranId INT
,@payStatus VARCHAR(50) ,@controlNoEncrypted VARCHAR(50) ,@agentType VARCHAR(50) ,@pTxnLocation VARCHAR(50) ,@pAgentLocation VARCHAR(50) ,@pAgent VARCHAR(50) ,@controlNo VARCHAR(50) ,@paymentMethod VARCHAR(50) ,@sBranchId VARCHAR(50) ,@mapCodeInt VARCHAR(50) ,@lockStatus VARCHAR(50) ,@payTokenId VARCHAR(50) IF (@partnerId='IME-D') /***** IME DOMESTIC*****/ BEGIN IF @pBranchId IS NULL BEGIN EXEC proc_errorHandler 1, 'Please Choose Paying Agent', NULL RETURN END SELECT @mapCodeDom = mapCodeDom, @agentType = agentType, @pAgentLocation = agentLocation, @branchName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBranchId IF (@mapCodeDom IS NULL OR @mapCodeDom = '' OR @mapCodeDom = 0) BEGIN EXEC proc_errorHandler 1, 'Invalid Map Code', NULL RETURN END SELECT @tranStatus = tranStatus, @tranId = id, @payStatus = payStatus , @controlNoEncrypted = controlNo, @paymentMethod = paymentMethod, @sBranchId = sBranch, @pTxnLocation = pLocation FROM remitTran WITH(NOLOCK) WHERE id = LTRIM(RTRIM(@rowId)) IF @tranStatus IS NULL BEGIN EXEC proc_errorHandler 1000, 'Transaction not found', NULL RETURN END
IF @agentType = 2903 BEGIN SET @pAgent = @pBranchId END INSERT INTO tranViewHistory(controlNumber,tranViewType,agentId,createdBy,createdDate,tranId ) SELECT @controlNoEncrypted,'PAY',@pBranchId,@user,GETDATE(),@tranId IF @paymentMethod = 'Bank Deposit' BEGIN EXEC proc_errorHandler 1, 'Cannot process payment for Payment Type Bank Deposit', NULL RETURN END IF @sBranchId = @pBranchId BEGIN EXEC proc_errorHandler 1, 'Cannot process payment for same POS', @tranId RETURN END IF (@tranStatus = 'CancelRequest') BEGIN EXEC proc_errorHandler 1, 'Transaction has been requested for cancel', @controlNoEncrypted RETURN END IF (@tranStatus = 'Lock' ) BEGIN EXEC proc_errorHandler 1, 'Transaction is locked', @controlNoEncrypted RETURN END IF (@tranStatus = 'Block') BEGIN EXEC proc_errorHandler 1, 'Transaction is blocked. Please Contact HO', @controlNoEncrypted RETURN END IF (@tranStatus = 'Paid') BEGIN EXEC proc_errorHandler 1, 'Transaction has already been paid', @controlNoEncrypted RETURN END IF (@payStatus = 'Paid') BEGIN EXEC proc_errorHandler 1, 'Transaction has already been paid', @controlNoEncrypted RETURN END IF (@tranStatus = 'Hold') BEGIN EXEC proc_errorHandler 1, 'Transaction is hold', @controlNoEncrypted RETURN END IF (@tranStatus = 'Cancel') BEGIN EXEC proc_errorHandler 1, 'Transaction is cancelled', @controlNoEncrypted RETURN END
DECLARE @tranDistrictId INT, @payAgentDistrictId INT
SELECT @payAgentDistrictId = districtId FROM apiLocationMapping WHERE apiDistrictCode = @pAgentLocation SELECT @tranDistrictId = districtId FROM apiLocationMapping WHERE apiDistrictCode = @pTxnLocation IF @payAgentDistrictId IS NULL BEGIN EXEC proc_errorHandler 1, 'Location not found. Please Contact HO', @controlNo RETURN END IF @tranDistrictId IS NULL BEGIN EXEC proc_errorHandler 1, 'Location not found. Please Contact HO', @controlNo RETURN END IF(@tranDistrictId <> @payAgentDistrictId) BEGIN EXEC proc_errorHandler 1, 'You are not allowed to pay this TXN. It is not within your district.', @controlNoEncrypted RETURN END EXEC proc_errorHandler 0, 'Transaction Verification Successful', @tranId SET @payTokenId = SCOPE_IDENTITY() SELECT TOP 1 rowId =trn.id ,securityNo =dbo.FNADecryptString(trn.controlNo) ,transactionDate =trn.createdDateLocal ,senderName =sen.firstName + ISNULL( ' ' + sen.middleName, '') + ISNULL( ' ' + sen.lastName1, '') + ISNULL( ' ' + sen.lastName2, '') ,senderAddress =sen.address ,senderCity =sen.city ,senderMobile =sen.mobile ,senderTel =sen.homephone ,senderIdType =sen.idType ,senderIdNo =sen.idNumber ,recName =rec.firstName + ISNULL( ' ' + rec.middleName, '') + ISNULL( ' ' + rec.lastName1, '') + ISNULL( ' ' + rec.lastName2, '') ,recAddress =rec.address ,recMobile =rec.mobile ,recTelePhone =rec.homephone ,recIdType =rec.idType ,recIdNo =rec.idNumber ,recCity =rec.city ,recCountry =rec.country ,pAmount =isnull(trn.pAmt,0) ,rCurrency =trn.collCurr ,pCurrency =trn.payoutCurr ,remarks =pMessage ,paymentMethod =trn.paymentMethod ,tokenId =trn.payTokenId ,amt =tAmt ,pBranch =trn.pBranch ,sendingCountry =trn.sCountry ,sendingAgent =trn.sAgentName ,branchName =@branchName ,providerName ='BRN Domestic' ,orderNo = '' ,agentGrp = @agentGrp ,subPartnerId = 0 FROM remitTran trn WITH(NOLOCK) INNER JOIN tranSenders sen WITH(NOLOCK) ON trn.id = sen.tranId INNER JOIN tranReceivers rec WITH(NOLOCK) ON trn.id = rec.tranId WHERE trn.id = LTRIM(RTRIM(@rowId))
-- ## Lock Transaction
UPDATE remitTran SET
payTokenId = @payTokenId ,tranStatus = 'Lock' ,lockedBy = @user ,lockedDate = GETDATE() ,lockedDateLocal = GETDATE() WHERE id = LTRIM(RTRIM(@rowId))
-- ## Log Details
SELECT [message] ,trn.createdBy ,trn.createdDate FROM tranModifyLog trn WITH(NOLOCK) WHERE trn.tranId = LTRIM(RTRIM(@tranId)) OR ISNULL(trn.controlNo,'') = ISNULL(LTRIM(RTRIM(@controlNoEncrypted)), '') ORDER BY trn.createdDate DESC
-- ## Compliance pay details Details
SELECT tranId ,controlNo ,pBranch ,receiverName ,rMemId ,dob = CONVERT(VARCHAR(10),dob,101) ,rIdType ,rIdNumber ,rPlaceOfIssue ,rContactNo ,rRelationType ,rRelativeName ,relWithSender ,purposeOfRemit = ISNULL(sd.detailTitle,purposeOfRemit) ,purposeOfRemitId = purposeOfRemit ,reason ,bankName ,branchName ,chequeNo ,accountNo ,alternateMobileNo FROM tranPayCompliance tc WITH(NOLOCK) LEFT JOIN staticDataValue sd WITH(NOLOCK) ON tc.purposeOfRemit=sd.valueId WHERE tc.tranId = LTRIM(RTRIM(@tranId)) OR ISNULL(tc.controlNo,'') = ISNULL(LTRIM(RTRIM(@controlNoEncrypted)), '')
END IF (@partnerId='IME-I') /***** IME INTERNATIONAL *****/ BEGIN IF @pBranchId IS NULL BEGIN EXEC proc_errorHandler 1, 'Please Choose Agent', NULL RETURN END
SELECT @mapCodeInt = mapCodeInt ,@agentType = agentType ,@pAgentLocation = agentLocation FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBranchId
IF (@mapCodeInt IS NULL OR @mapCodeInt = '' OR @mapCodeInt = 0) BEGIN EXEC proc_errorHandler 1, 'Invalid Map Code', NULL RETURN END SELECT @tranStatus = tranStatus , @tranId = id , @lockStatus = lockStatus , @payStatus = payStatus , @sBranchId = sBranch , @paymentMethod = paymentMethod , @controlNoEncrypted = controlNo FROM remitTran WITH(NOLOCK) WHERE id = LTRIM(RTRIM(@rowId)) IF @tranStatus IS NULL BEGIN EXEC proc_errorHandler 1000, 'Transaction not found', NULL RETURN END
IF @agentType = 2903 BEGIN SET @pAgent = @pBranchId END
INSERT INTO tranViewHistory( controlNumber ,tranViewType ,agentId ,createdBy ,createdDate ,tranId ) SELECT @controlNoEncrypted ,'PAY' ,@pBranchId ,@user ,GETDATE() ,@tranId IF @paymentMethod = 'Bank Deposit' BEGIN EXEC proc_errorHandler 1, 'Cannot process payment for Payment Type Bank Deposit', NULL RETURN END IF @sBranchId = @pBranchId BEGIN EXEC proc_errorHandler 1, 'Cannot process payment for same POS', @tranId RETURN END IF (@tranStatus = 'CancelRequest') BEGIN EXEC proc_errorHandler 1, 'Transaction has been requested for cancel', @controlNoEncrypted RETURN END IF (@lockStatus = 'Lock' ) BEGIN EXEC proc_errorHandler 1, 'Transaction is locked', @controlNoEncrypted RETURN END IF (@tranStatus = 'Lock' ) BEGIN EXEC proc_errorHandler 1, 'Transaction is locked', @controlNoEncrypted RETURN END IF (@tranStatus = 'Block') BEGIN EXEC proc_errorHandler 1, 'Transaction is blocked. Please Contact HO', @controlNoEncrypted RETURN END IF (@tranStatus = 'Paid') BEGIN EXEC proc_errorHandler 1, 'Transaction has already been paid', @controlNoEncrypted RETURN END IF (@payStatus = 'Paid') BEGIN EXEC proc_errorHandler 1, 'Transaction has already been paid', @controlNoEncrypted RETURN END IF (@tranStatus = 'Hold') BEGIN EXEC proc_errorHandler 1, 'Transaction is hold', @controlNoEncrypted RETURN END IF (@tranStatus = 'Cancel') BEGIN EXEC proc_errorHandler 1, 'Transaction is cancelled', @controlNoEncrypted RETURN END EXEC proc_errorHandler 0, 'Transaction Verification Successful', @tranId SET @payTokenId = SCOPE_IDENTITY() SELECT TOP 1 rowId =trn.id ,securityNo =dbo.FNADecryptString(trn.controlNo) ,transactionDate =trn.createdDateLocal ,senderName =sen.firstName + ISNULL( ' ' + sen.middleName, '') + ISNULL( ' ' + sen.lastName1, '') + ISNULL( ' ' + sen.lastName2, '') ,senderAddress =sen.address ,senderCity =sen.city ,senderMobile =sen.mobile ,senderTel =sen.homephone ,senderIdType =sen.idType ,senderIdNo =sen.idNumber ,recName =rec.firstName + ISNULL( ' ' + rec.middleName, '') + ISNULL( ' ' + rec.lastName1, '') + ISNULL( ' ' + rec.lastName2, '') ,recAddress =rec.address ,recMobile =rec.mobile ,recTelePhone =rec.homephone ,recIdType =rec.idType ,recIdNo =rec.idNumber ,recCity =rec.city ,recCountry =rec.country ,pAmount =isnull(trn.pAmt,0) ,rCurrency =trn.collCurr ,pCurrency =trn.payoutCurr ,remarks =pMessage ,paymentMethod =trn.paymentMethod ,tokenId =trn.payTokenId ,amt =trn.pAmt ,pBranch =trn.pBranch ,sendingCountry =trn.sCountry ,sendingAgent =trn.sAgentName ,branchName =dbo.GetAgentNameFromId(@pBranchId) ,providerName ='BRN International' ,orderNo = '' ,agentGrp = @agentGrp ,subPartnerId = 0 FROM remitTran trn WITH(NOLOCK) INNER JOIN tranSenders sen WITH(NOLOCK) ON trn.id = sen.tranId INNER JOIN tranReceivers rec WITH(NOLOCK) ON trn.id = rec.tranId WHERE trn.id = LTRIM(RTRIM(@rowId)) -- ## Lock Transaction
UPDATE remitTran SET
payTokenId = @payTokenId ,lockStatus = 'locked' ,lockedBy = @user ,lockedDate = GETDATE() ,lockedDateLocal = GETDATE() WHERE id = LTRIM(RTRIM(@rowId))
-- ## Log Details
SELECT [message] ,trn.createdBy ,trn.createdDate FROM tranModifyLog trn WITH(NOLOCK) WHERE trn.tranId = LTRIM(RTRIM(@tranId)) OR ISNULL(trn.controlNo,'') = LTRIM(RTRIM(@controlNoEncrypted)) ORDER BY trn.createdDate DESC
-- ## Compliance pay details Details
SELECT tranId ,controlNo ,pBranch ,receiverName ,rMemId ,dob = CONVERT(VARCHAR(10),dob,101) ,rIdType ,rIdNumber ,rPlaceOfIssue ,rContactNo ,rRelationType ,rRelativeName ,relWithSender ,purposeOfRemit = ISNULL(sd.detailTitle,purposeOfRemit) ,purposeOfRemitId = purposeOfRemit ,reason ,bankName ,branchName ,chequeNo ,accountNo ,alternateMobileNo FROM tranPayCompliance tc WITH(NOLOCK) LEFT JOIN staticDataValue sd WITH(NOLOCK) ON tc.purposeOfRemit=sd.valueId WHERE tc.tranId = LTRIM(RTRIM(@tranId)) OR ISNULL(tc.controlNo,'') = ISNULL(LTRIM(RTRIM(@controlNoEncrypted)), '') END END
GO
|