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.
 
 
 

146 lines
11 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[PROC_SCHEDULAR_PUSH_TXN_IBBL] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--EXEC PROC_SCHEDULAR_PUSH_TXN_IBBL @flag='push-list'
CREATE PROCEDURE [dbo].[PROC_SCHEDULAR_PUSH_TXN_IBBL](
@flag VARCHAR(20)
,@ControlNo VARCHAR(20) = NULL
,@TRANID BIGINT = NULL
)
AS
SET NOCOUNT ON
BEGIN
DECLARE @IBBLBANK BIGINT = 566989
IF @flag='push-list'
BEGIN
SELECT TOP 10
amount = rt.pAmt
,amountSpecified = 1
,issueDateSpecified = 1
,beneficiaryAccNo = rt.accountNo
,beneficiaryAccType = CASE WHEN rt.paymentMethod IN ('CASH PAYMENT','MOBILE WALLET') THEN ''
WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pbank,'0') = @IBBLBANK THEN (SUBSTRING(rt.accountNo,8,2))
WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pbank,'0') != @IBBLBANK THEN ''
WHEN rt.paymentMethod = 'CARD PAYMENT' THEN '71'
ELSE ''
END
,beneficiaryAddress = trec.address
,beneficiaryBankCode = CASE WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pbank,'0') != @IBBLBANK THEN
(SELECT TOP 1 agentCode FROM agentmaster(NOLOCK) WHERE agentId = rt.pbank AND isActive='Y' AND agentType='2903' AND agentCountryId='16')
ELSE '42'
END
,beneficiaryBankName = rt.pBankName
,beneficiaryBranchCode = CASE WHEN rt.paymentMethod IN ('CASH PAYMENT','CARD PAYMENT') THEN '123' --Remittance Card=4
WHEN rt.paymentMethod = 'MOBILE WALLET' THEN '358'
WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pbank,'0') = @IBBLBANK THEN (SUBSTRING(rt.accountNo,5,3))
WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pbank,'0') != @IBBLBANK THEN ''
ELSE ''
END
,beneficiaryBranchName = CASE WHEN rt.paymentMethod IN ('CASH PAYMENT','CARD PAYMENT') THEN 'FRSD Branch'
WHEN rt.paymentMethod = 'MOBILE WALLET' THEN 'Mobile Banking Br.'
WHEN rt.paymentMethod = 'BANK DEPOSIT' THEN
BM.agentName
ELSE ''
END
,beneficiaryName = rt.receiverName
,beneficiaryPhoneNo = trec.mobile
,beneficiaryRoutingNo = BM.agentCode
,isoCode = payoutCurr
,issueDate = rt.approvedDate
,paymentType = CASE WHEN rt.paymentMethod = 'CASH PAYMENT' THEN '1'
WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pBank,'0') = @IBBLBANK THEN '2'
WHEN rt.paymentMethod = 'BANK DEPOSIT' AND ISNULL(rt.pBank,'0') != @IBBLBANK THEN '3'
WHEN rt.paymentMethod = 'CARD PAYMENT' THEN '4'
WHEN rt.paymentMethod = 'MOBILE WALLET' THEN '5'
ELSE '0'
END
,remittancePurpose = rt.purposeOfRemit
,remitterAddress = ISNULL(tsen.address,'Korea')
,remitterName = rt.senderName
,remitterPhoneNo = tsen.mobile
,secretKey = dbo.FNADecryptString(rt.controlNo)
,transReferenceNo = 'GM' + CAST(rt.id AS VARCHAR(50))
,controlNo
INTO #TEMPLIST
FROM dbo.remitTran(NOLOCK) rt
INNER JOIN dbo.tranSenders(NOLOCK) tsen ON rt.id = tsen.tranId
INNER JOIN dbo.tranReceivers(NOLOCK) trec ON rt.id = trec.tranId
LEFT JOIN agentMaster(NOLOCK) BM ON BM.agentId = RT.pBankBranch
WHERE rt.approvedBy IS NOT NULL AND rt.payStatus = 'Unpaid'
AND rt.tranStatus = 'payment' AND rt.pAgent = 566853
AND rt.pCountry = 'Bangladesh'
ORDER BY rt.id DESC
DELETE FROM #TEMPLIST WHERE paymentType in ('2','3') AND LEN(beneficiaryAccNo) < 8
ALTER TABLE #TEMPLIST ADD IsAlreadyProcessed BIT
UPDATE T SET IsAlreadyProcessed = 1 FROM #TEMPLIST T
INNER JOIN (SELECT CONTROLNO FROM Application_Log.DBO.vwTpApilogs(NOLOCK)
WHERE providerName='islamibank' AND methodName='DirectCreditWSMessage'
GROUP BY controlNo HAVING COUNT(1) >= 1 ) V ON V.controlNo = T.secretKey
UPDATE rt SET rt.tranStatus='Hold' FROM remitTran rt (NOLOCK)
INNER JOIN #TEMPLIST T ON T.controlNo = rt.controlNo
WHERE RT.pCountry = 'Bangladesh'
AND RT.payStatus = 'Unpaid' AND RT.tranStatus = 'Payment'
AND RT.pAgent = 566853 AND IsAlreadyProcessed = 1
DELETE FROM #TEMPLIST WHERE IsAlreadyProcessed = 1
ALTER TABLE #TEMPLIST DROP COLUMN controlNo,IsAlreadyProcessed
SELECT * FROM #TEMPLIST
RETURN
END
ELSE IF @flag='mark-post'
BEGIN
UPDATE remitTran SET
payStatus = 'Post'
,postedBy = 'system'
,postedDate = GETDATE()
,postedDateLocal= GETUTCDATE()
,controlNo2 = Dbo.FNAEncryptString(@ControlNo)
,ContNo = @ControlNo
WHERE controlNo = dbo.FNAEncryptString(@ControlNo)
AND pAgent = 566853
SELECT '0' ErrorCode,'Update success' Msg, NULL Id
END
ELSE IF @Flag='sync-list'
BEGIN
SELECT TOP 10
id AS TranId
,dbo.FNADecryptString(controlNo) AS ControlNo
,'GM' + CAST(id AS VARCHAR(50)) AS ControlNo2
FROM dbo.remitTran(NOLOCK)
WHERE pAgent = 566853
AND payStatus='POST' AND tranStatus= 'PAYMENT'
END
ELSE IF @Flag='mark-paid'
BEGIN
UPDATE remitTran SET
payStatus = 'Paid',
tranStatus = 'Paid',
paidBy = 'system',
paidDate = GETDATE(),
paidDateLocal = GETUTCDATE()
WHERE id = @TRANID AND pAgent = 566853
AND payStatus='POST' AND tranStatus= 'PAYMENT'
END
END
GO