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.
 
 
 

253 lines
9.8 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_ApproveHoldedTXN_Sub] Script Date: 7/4/2019 11:35:48 AM ******/
DROP PROCEDURE [dbo].[proc_ApproveHoldedTXN_Sub]
GO
/****** Object: StoredProcedure [dbo].[proc_ApproveHoldedTXN_Sub] Script Date: 7/4/2019 11:35:48 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
EXEC proc_ApproveHoldedTXN_Sub @user='SYSTEM',@idList='<root><row id="10010026" /><row id="10010027" /></root>'
*/
CREATE proc [dbo].[proc_ApproveHoldedTXN_Sub]
@user VARCHAR(30)
,@idList XML
AS
BEGIN
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE
@cAmt MONEY
,@userId INT
,@tranId BIGINT
,@createdBy VARCHAR(50)
DECLARE @confirm_process_id VARCHAR(200), @controlNoEnc VARCHAR(50)
SET @confirm_process_id = NEWID()
DECLARE @PinList TABLE(id VARCHAR(50), pin VARCHAR(50),hasProcess CHAR(1),isOFAC CHAR(1),errorMsg VARCHAR(MAX),createdBy VARCHAR(50))
DECLARE @TempcompTable TABLE(errorCode INT,msg VARCHAR(MAX),id VARCHAR(50))
DECLARE @SendList TABLE(amt MONEY, userId INT)
INSERT @PinList(id)
SELECT
p.value('@id','VARCHAR(50)') id
FROM @idList.nodes('/root/row') as tmp(p)
UPDATE @PinList SET
pin = r.controlNo
FROM @PinList pl
INNER JOIN remitTranTemp r ON pl.id = r.id
--send email to customers
INSERT INTO tempTransactionMailQueue(controlNo, createdDate, [status])--tranType is used to know either mail is sent or not, we put 'N' for not sent
SELECT rt.controlNo, GETDATE(), 'N' FROM @PinList pl
INNER JOIN remitTranTemp rt ON rt.id = pl.id
BEGIN TRANSACTION
UPDATE r SET
tranStatus = CASE WHEN tranStatus = 'Hold' THEN 'Payment'
WHEN tranStatus = 'Compliance Hold' THEN 'Compliance'
WHEN tranStatus = 'OFAC Hold' THEN 'OFAC'
WHEN tranStatus = 'OFAC/Compliance Hold' THEN 'OFAC/Compliance'
ELSE 'Payment' END
,approvedBy = @user
,approvedDate = DBO.FNADateFormatTZ(GETDATE(), @user)
,approvedDateLocal = GETDATE()
,controlNo2 = r.controlNo
FROM remitTranTemp r WITH(NOLOCK)
INNER JOIN @PinList p ON r.id = p.id
INSERT INTO remitTran(
[holdTranId]
,[controlNo]
,[sCurrCostRate],[sCurrHoMargin],[sCurrSuperAgentMargin],[sCurrAgentMargin]
,[pCurrCostRate],[pCurrHoMargin],[pCurrSuperAgentMargin],[pCurrAgentMargin]
,[agentCrossSettRate],[customerRate],[sAgentSettRate],[pDateCostRate],[agentFxGain]
,[treasuryTolerance],[customerPremium],[schemePremium],[sharingValue],[sharingType]
,[serviceCharge],[handlingFee]
,[sAgentComm],[sAgentCommCurrency],[sSuperAgentComm],[sSuperAgentCommCurrency]
,[pAgentComm],[pAgentCommCurrency],[pSuperAgentComm],[pSuperAgentCommCurrency]
,[promotionCode],[promotionType],[pMessage]
,[sCountry],[sSuperAgent],[sSuperAgentName],[sAgent],[sAgentName],[sBranch],[sBranchName]
,[pCountry],[pSuperAgent],[pSuperAgentName],[pAgent],[pAgentName],[pBranch],[pBranchName]
,[paymentMethod]
,[pBank],[pBankName],[pBankBranch],[pBankBranchName],[accountNo],[externalBankCode]
,[collMode]
,[collCurr],[tAmt],[cAmt],[pAmt],[payoutCurr]
,[relWithSender],[purposeOfRemit],[sourceOfFund]
,[tranStatus],[payStatus]
,[createdDate],[createdDateLocal],[createdBy]
,[modifiedDate],[modifiedDateLocal],[modifiedBy]
,[approvedDate],[approvedDateLocal],[approvedBy]
,[paidDate],[paidDateLocal],[paidBy]
,[cancelRequestDate],[cancelRequestDateLocal],[cancelRequestBy]
,[cancelReason],[refund],[cancelCharge]
,[cancelApprovedDate],[cancelApprovedDateLocal],[cancelApprovedBy]
,[blockedDate],[blockedBy]
,[lockedDate],[lockedDateLocal],[lockedBy]
,[payTokenId]
,[tranType],[ContNo],[uploadLogId],[voucherNo],[controlNo2]
,[pBankType],[expectedPayoutAgent]
,[routedBy],[routedDate]
,[senderName],[receiverName]
,[bonusPoint]
,pState
,pDistrict
)
SELECT
r.[id]
,[controlNo]
,[sCurrCostRate],[sCurrHoMargin],[sCurrSuperAgentMargin],[sCurrAgentMargin]
,[pCurrCostRate],[pCurrHoMargin],[pCurrSuperAgentMargin],[pCurrAgentMargin]
,[agentCrossSettRate],[customerRate],[sAgentSettRate],[pDateCostRate],[agentFxGain]
,[treasuryTolerance],[customerPremium],[schemePremium],[sharingValue],[sharingType]
,[serviceCharge],[handlingFee]
,[sAgentComm],[sAgentCommCurrency],[sSuperAgentComm],[sSuperAgentCommCurrency]
,[pAgentComm],[pAgentCommCurrency],[pSuperAgentComm],[pSuperAgentCommCurrency]
,[promotionCode],[promotionType],[pMessage]
,[sCountry],[sSuperAgent],[sSuperAgentName],[sAgent],[sAgentName],[sBranch],[sBranchName]
,[pCountry],[pSuperAgent],[pSuperAgentName],[pAgent],[pAgentName],[pBranch],[pBranchName]
,[paymentMethod]
,[pBank],[pBankName],[pBankBranch],[pBankBranchName],[accountNo],[externalBankCode]
,[collMode]
,[collCurr],[tAmt],[cAmt],[pAmt],[payoutCurr]
,[relWithSender],[purposeOfRemit],[sourceOfFund]
,[tranStatus],[payStatus]
,[createdDate],[createdDateLocal],r.[createdBy]
,[modifiedDate],[modifiedDateLocal],[modifiedBy]
,[approvedDate],[approvedDateLocal],[approvedBy]
,[paidDate],[paidDateLocal],[paidBy]
,[cancelRequestDate],[cancelRequestDateLocal],[cancelRequestBy]
,[cancelReason],[refund],[cancelCharge]
,[cancelApprovedDate],[cancelApprovedDateLocal],[cancelApprovedBy]
,[blockedDate],[blockedBy]
,[lockedDate],[lockedDateLocal],[lockedBy]
,[payTokenId]
,[tranType],[ContNo],[uploadLogId],[voucherNo],[controlNo2]
,[pBankType],[expectedPayoutAgent]
,[routedBy],[routedDate]
,[senderName],[receiverName]
,[bonusPoint]
,pState
,pDistrict
FROM remitTranTemp r WITH(NOLOCK)
INNER JOIN @PinList p ON r.id = p.id
INSERT INTO tranSenders(
[tranId]
,[holdTranId]
,[customerId]
,[membershipId]
,[firstName],[middleName],[lastName1],[lastName2],[fullName]
,[country],[address],[state],[district],[zipCode],[city]
,[email],[homePhone],[workPhone],[mobile]
,[nativeCountry],[dob],[placeOfIssue]
,[customerType],[occupation]
,[idType],[idNumber],[idPlaceOfIssue],[issuedDate],[validDate]
,[extCustomerId],[cwPwd],[ttName]
,[isFirstTran],[customerRiskPoint],[countryRiskPoint]
,[gender],[salary],[companyName],[address2]
,[dcInfo],[ipAddress],[notifySms],[txnTestQuestion],[txnTestAnswer]
)
SELECT
main.id
,[tranId]
,[customerId]
,[membershipId]
,[firstName],[middleName],[lastName1],[lastName2],[fullName]
,[country],[address],[state],[district],[zipCode],[city]
,[email],[homePhone],[workPhone],[mobile]
,[nativeCountry],[dob],[placeOfIssue]
,[customerType],[occupation]
,[idType],[idNumber],[idPlaceOfIssue],[issuedDate],[validDate]
,[extCustomerId],[cwPwd],[ttName]
,[isFirstTran],[customerRiskPoint],[countryRiskPoint]
,[gender],[salary],[companyName],[address2]
,[dcInfo],[ipAddress],[notifySms],[txnTestQuestion],[txnTestAnswer]
FROM tranSendersTemp sen WITH(NOLOCK)
INNER JOIN remitTran main WITH(NOLOCK) ON sen.tranId = main.holdTranId
INNER JOIN @PinList p ON sen.tranId = p.id
INSERT INTO tranReceivers(
[tranId]
,[holdTranId]
,[customerId]
,[membershipId]
,[firstName],[middleName],[lastName1],[lastName2],[fullName]
,[country],[address],[state],[district],[zipCode],[city]
,[email],[homePhone],[workPhone],[mobile]
,[nativeCountry],[dob],[placeOfIssue]
,[customerType],[occupation]
,[idType],[idNumber],[idPlaceOfIssue]
,[issuedDate],[validDate]
,[idType2],[idNumber2],[idPlaceOfIssue2],[issuedDate2],[validDate2]
,[relationType],[relativeName]
,[gender],[address2]
,[dcInfo],[ipAddress]
)
SELECT
main.id
,[tranId]
,[customerId]
,[membershipId]
,[firstName],[middleName],[lastName1],[lastName2],[fullName]
,[country],[address],[state],[district],[zipCode],[city]
,[email],[homePhone],[workPhone],[mobile]
,[nativeCountry],[dob],[placeOfIssue]
,[customerType],[occupation]
,[idType],[idNumber],[idPlaceOfIssue]
,[issuedDate],[validDate]
,[idType2],[idNumber2],[idPlaceOfIssue2],[issuedDate2],[validDate2]
,[relationType],[relativeName]
,[gender],[address2]
,[dcInfo],[ipAddress]
FROM tranReceiversTemp rec WITH(NOLOCK)
INNER JOIN remitTran main WITH(NOLOCK) ON rec.tranId = main.holdTranId
INNER JOIN @PinList p ON rec.tranId = p.id
DELETE FROM remitTranTemp
FROM remitTranTemp r
INNER JOIN @PinList p ON r.id = p.id
DELETE FROM tranSendersTemp
FROM tranSendersTemp sen
INNER JOIN @PinList p ON sen.tranId = p.id
DELETE FROM tranReceiversTemp
FROM tranReceiversTemp rec
INNER JOIN @PinList p ON rec.tranId = p.id
INSERT INTO PinQueueList(ICN)
SELECT pin FROM @PinList WHERE ISNULL(pin, '') <> ''
UPDATE utl SET
utl.sendTodays = ISNULL(sendTodays, 0) + ISNULL(s.amt, 0)
FROM userWiseTxnLimit utl
INNER JOIN @SendList s ON utl.userId = s.userId
IF @@TRANCOUNT > 0
COMMIT TRANSACTION
DECLARE @msg VARCHAR(MAX)='One or more transaction(s) Approved Successfully',@code INT=0
IF EXISTS(SELECT 'X' FROM @PinList WHERE hasProcess = 'Y' AND isOFAC IN ('C','Y'))
BEGIN
SELECT @code=10 FROM @PinList WHERE isOFAC IN ('C','Y')
SELECT @msg = CASE WHEN COUNT(*)>0 THEN 'Transaction Approved Successfully count : '+CAST(COUNT(*) AS VARCHAR) ELSE ' ' END FROM @PinList WHERE ISNULL(isOFAC,'N') = 'N'
SELECT @msg = @msg+ CASE WHEN COUNT(*)>0 THEN ' <br> Transaction under compliance count : '+CAST(COUNT(*) AS VARCHAR) ELSE ' ' END FROM @PinList WHERE ISNULL(isOFAC,'N') = 'Y'
SELECT @msg = @msg+ CASE WHEN COUNT(*)>0 THEN ' <br> Unsuccess/Same users TXN count : '+CAST(COUNT(*) AS VARCHAR) ELSE ' ' END FROM @PinList WHERE ISNULL(isOFAC,'N') = 'C'
END
EXEC proc_errorHandler @code, @msg, @user
--EXEC proc_pushBulkToAc @flag = 'i',@idList = @idList
END
GO