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.
 
 
 

128 lines
10 KiB

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