USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[PROC_SCHEDULAR_PUSH_TXN_AGRANI] Script Date: 9/27/2019 1:30:14 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[PROC_SCHEDULAR_PUSH_TXN_AGRANI]( @flag VARCHAR(100) ,@id VARCHAR(100) = NULL ,@ControlNo VARCHAR(100) = NULL )AS BEGIN DECLARE @pAgent BIGINT = 404526 IF @flag='push-list-Agrani' BEGIN SELECT TOP 10 ratevalue = CONVERT(VARCHAR(20),rt.pCurrCostRate) ,tranno = DBO.FNADecryptString(rt.controlNo) ,traninfosl = 0 ,trmode = CASE WHEN rt.paymentMethod ='CASH PAYMENT' THEN '5' WHEN rt.paymentMethod='BANK DEPOSIT' THEN '15' WHEN rt.paymentMethod = 'Mobile Wallet' THEN '17' ELSE '05' END ,purpose = CASE WHEN rt.purposeOfRemit='Business travel' THEN '13' WHEN rt.purposeOfRemit='Personal travels and tours' THEN '08' WHEN rt.purposeOfRemit='Educational expenses' THEN '06' WHEN rt.purposeOfRemit='Medical Expenses' THEN '07' WHEN rt.purposeOfRemit='Household expenses' THEN '' WHEN rt.purposeOfRemit='Family maintenance' THEN '02' WHEN rt.purposeOfRemit='Savings' THEN '01' WHEN rt.purposeOfRemit='Loan payment / Interest' THEN '01' WHEN rt.purposeOfRemit='Salary / Commission' THEN '01' WHEN rt.purposeOfRemit='Utility payment' THEN '01' WHEN rt.purposeOfRemit='Purchase of land / property' THEN '10' WHEN rt.purposeOfRemit='Rent' THEN '01' WHEN rt.purposeOfRemit='Commission' THEN '01' ELSE '01' END ,remamountdest = rt.pAmt ,remid = '0' ,remfname = rt.senderName ,remaddress1 = ISNULL(tsen.address,'') ,remcountry = (SELECT countryCode FROM dbo.countryMaster(NOLOCK) WHERE countryName = tsen.country) ,beneid = '0' ,benename = rt.receiverName ,benemname = '' --ISNULL(trec.middleName,'') ,benelname = '' --trec.lastName1 + ISNULL(' '+trec.lastName2,'') ,beneaccountno = ISNULL(rt.accountNo,'') ,benetel = REPLACE(trec.mobile,'+','') ,branchcode = CASE WHEN rt.paymentMethod='CASH PAYMENT' THEN '' ELSE CASE WHEN LEN(am.agentCode) = 8 THEN '0'+am.agentCode ELSE am.agentCode END END ,benebeftncode = '' ,beneaddress = trec.address ,benecountry = (SELECT countryCode FROM dbo.countryMaster(NOLOCK) WHERE countryName=trec.country) ,excode = '7095' ,entereddatetime= FORMAT(rt.approvedDate,'yyyy-MM-ddThh:mm:ss.fff') ,counttr = '0' ,rt.controlNo ,remit_tel=tsen.mobile INTO #TEMPLIST FROM dbo.remitTran(NOLOCK) rt INNER JOIN dbo.tranSenders(NOLOCK) tsen ON tsen.tranId = rt.id INNER JOIN dbo.tranReceivers(NOLOCK) trec ON trec.tranId = rt.id LEFT JOIN agentMaster(NOLOCK) am ON am.agentId = rt.pBankBranch WHERE rt.approvedBy IS NOT NULL AND rt.payStatus = 'Unpaid' AND rt.tranStatus = 'payment' AND rt.pAgent = 404526 --need to change the pAgent acc to the set up for the payoutPartner AND rt.payoutCurr = 'BDT' ORDER BY rt.id DESC 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='Agrani' AND methodName='https://fex.agranibank.org/remapi/gmesigncreate' GROUP BY controlNo HAVING COUNT(1) >= 1 ) V ON V.controlNo = T.tranno UPDATE rt SET rt.tranStatus='Hold' FROM remitTran rt (NOLOCK) INNER JOIN #TEMPLIST T ON T.controlNo = rt.controlNo WHERE rt.approvedBy IS NOT NULL AND rt.payStatus = 'Unpaid' AND rt.tranStatus = 'payment' AND rt.pAgent = 404526 --need to change the pAgent acc to the set up for the payoutPartner AND rt.payoutCurr = 'BDT' AND IsAlreadyProcessed=1 UPDATE #TEMPLIST SET trmode = CASE WHEN trmode = '15' THEN CASE WHEN LEFT(beneaccountno,2)='02' AND LEN(beneaccountno)=13 THEN '16' ELSE '15' END ELSE trmode END ALTER TABLE #TEMPLIST DROP COLUMN controlNo,IsAlreadyProcessed SELECT * FROM #TEMPLIST RETURN END ELSE IF @flag='sync-list-Agrani' BEGIN SELECT RT.id AS TranId,DBO.FNADecryptString( RT.controlNo) AS PartnerTxnId --PartnerTxnId used for transationinquiry call which is controlno generated in our side FROM dbo.remitTran AS RT(NOLOCK) WHERE RT.pAgent = @pAgent AND RT.tranStatus='Payment' AND RT.payStatus='Post' END ELSE IF @flag='mark-paid-Agrani' BEGIN UPDATE remitTran SET payStatus = 'Paid' ,tranStatus = 'Paid' ,paidDate = getdate() ,paidDateLocal = GETUTCDATE() ,paidBy = 'Scheduler' WHERE id = @id AND payStatus = 'Post' AND tranStatus = 'payment' AND pAgent = @pAgent SELECT '0' ErrorCode,'Update success' Msg, NULL Id END ELSE IF @flag='mark-post-Agrani' BEGIN UPDATE remitTran SET payStatus = 'Post' ,postedBy = 'system' ,postedDate = GETDATE() ,postedDateLocal= GETUTCDATE() WHERE controlNo = dbo.FNAEncryptString(@id) AND pAgent = @pAgent SELECT '0' ErrorCode,'Update success' Msg, NULL Id END END GO