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