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.
 
 
 

249 lines
18 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[PROC_STATUS_SYNC_TP_API] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--EXEC PROC_STATUS_SYNC_TP_API @flag='mark-cancel',@PROVIDER = 'contact',@TRANID=100379466
CREATE PROC [dbo].[PROC_STATUS_SYNC_TP_API]
(
@FLAG VARCHAR(30)
,@PROVIDER VARCHAR(50)
,@TRANID BIGINT = NULL
,@TranStatus VARCHAR(30) = NULL
,@PayStatus VARCHAR(30) = NULL
,@ControlNo VARCHAR(20) = NULL
)
AS
SET NOCOUNT ON;
SET XACT_ABORT ON;
BEGIN
DECLARE @AgentId BIGINT,@ref_num VARCHAR(20),@sRouteId varchar(5),@message varchar(500),@refund CHAR(1)
DECLARE @tempTbl TABLE (errorcode VARCHAR(5), msg VARCHAR(MAX), id VARCHAR(50))
SET @AgentId = CASE WHEN @PROVIDER ='wing' THEN '221226'
WHEN @PROVIDER ='commercial' THEN '221271'
WHEN @PROVIDER ='globalbank' THEN '1056'
WHEN @PROVIDER ='contact' THEN '393228'
WHEN @PROVIDER ='vcbr' THEN '393229'
WHEN @PROVIDER ='donga' THEN '2090'
WHEN @PROVIDER ='mtrade' THEN '2129'
WHEN @PROVIDER ='bni' THEN '392227'
WHEN @PROVIDER ='sbr' THEN '393862'
WHEN @PROVIDER ='dbbl' THEN '393864'
WHEN @PROVIDER ='Agrani' THEN '404526'
WHEN @PROVIDER ='xpress' THEN '415208'
WHEN @PROVIDER ='ria' THEN '393866'
WHEN @PROVIDER ='islamibank' THEN '566853'
END
IF @FLAG = 'mark-paid'
BEGIN
UPDATE remitTran SET
payStatus = 'Paid',
tranStatus = 'Paid',
paidBy = 'system',
paidDate = GETDATE(),
paidDateLocal = GETUTCDATE()
WHERE id = @TRANID
AND payStatus = 'Post' AND pAgent = @AgentId
END
ELSE IF @FLAG = 'mark-cancel'
BEGIN
SET @message = 'Transaction cancel at partner end'
IF @PROVIDER = 'wing'
BEGIN
SELECT @controlNo = DBO.FNADecryptString(CONTROLNO),@sRouteId = sRouteId FROM remitTran(NOLOCK)
WHERE id = @TRANID AND pAgent = @AgentId AND controlNo2 = DBO.FNAEncryptString(@ControlNo)
SET @refund = 'D'
END
ELSE IF @PROVIDER IN('dbbl','xpress','ria','contact','islamibank')
BEGIN
SELECT @controlNo = DBO.FNADecryptString(CONTROLNO),@sRouteId = sRouteId FROM remitTran(NOLOCK)
WHERE id = @TRANID AND pAgent = @AgentId
----AND controlNo = DBO.FNAEncryptString(@ControlNo)
SET @refund = 'N'
END
----ELSE IF @PROVIDER IN('contact')
----BEGIN
---- SELECT @controlNo = DBO.FNADecryptString(CONTROLNO),@sRouteId = sRouteId FROM remitTran(NOLOCK)
---- WHERE id = @TRANID AND pAgent = @AgentId
---- SET @refund = 'D'
----END
--INSERT INTO @tempTbl(errorcode, msg, id)
EXEC [proc_cancelTran] @flag = 'cancel',@controlNo = @controlNo,@user = 'system',@cancelReason = @message,@refund = @refund
EXEC [proc_cancelTran] @flag = 'cancelReceipt',@tranId = @TRANID,@user = 'system'
END
ELSE IF @FLAG = 'sync-list'
BEGIN
IF @PROVIDER = 'mtrade'
BEGIN
SELECT TOP 50
trn.id,[uploadLogId] = ISNULL(ContNo,uploadLogId),controlNo = dbo.FNADecryptString(trn.controlNo)
FROM remitTran trn WITH(NOLOCK)
WHERE
trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
AND tranStatus = 'payment' AND trn.pAgent = @AgentId
AND Approveddate < dateadd(day,-1,getdate())
ORDER BY NEWID()
END
ELSE IF @PROVIDER = 'donga'
BEGIN
SELECT TOP 30 controlNo = dbo.FNADecryptString(controlNo),id
FROM remitTran (NOLOCK)
WHERE
payStatus = 'Post' AND tranStatus = 'Payment'
AND pCountry = 'VIETNAM' AND pAgent = @AgentId
AND Approveddate < dateadd(hour,-2,getdate())
ORDER BY NEWID()
END
ELSE IF @PROVIDER = 'wing'
BEGIN
SELECT TOP 1 controlNo = errorcode,id,paymentMethod = errorcode from @tempTbl
--SELECT TOP 100 controlNo = ContNo,id,paymentMethod
--FROM remitTran (NOLOCK)
--WHERE payStatus = 'Post' AND tranStatus = 'Payment'
--AND pCountry = 'Cambodia' AND pAgent = @AgentId
--AND Approveddate < dateadd(hour,-4,getdate())
--ORDER BY NEWID()
END
ELSE IF @PROVIDER = 'commercial'
BEGIN
SELECT TOP 1 controlNo = errorcode,id,paymentMethod = errorcode from @tempTbl
--SELECT TOP 50 controlNo = dbo.FNADecryptString(controlNo) ,id,paymentMethod
--FROM remitTran (NOLOCK)
--WHERE
--payStatus = 'Post' AND tranStatus = 'Payment'
--AND pCountry = 'Sri Lanka' AND pAgent = @AgentId
--AND Approveddate < DATEADD(HOUR,-2,GETDATE())
--ORDER BY NEWID()
END
ELSE IF @PROVIDER = 'bni'
BEGIN
SELECT TOP 30
trn.id, controlNo = dbo.FNADecryptString(trn.controlNo)
, trxDate = FORMAT(approvedDate,'yyyy-MM-ddTHH:mm:ss')
FROM remitTran trn WITH(NOLOCK)
WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
AND tranStatus = 'Payment' AND trn.pAgent = @AgentId
AND pCountry = 'Indonesia'
ORDER BY NEWID()
END
ELSE IF @PROVIDER = 'contact'
BEGIN
SELECT TOP 50
trn.id, controlNo = dbo.FNADecryptString(trn.controlNo)
,DocId = ContNo
,trxDate = CAST(CAST(trn.approvedDate AS DATE) AS VARCHAR) +'T'+ CAST(CAST(trn.approvedDate AS TIME) AS VARCHAR(8))
FROM remitTran trn WITH(NOLOCK)
WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
AND tranStatus IN( 'Payment','CancelRequested') AND trn.pAgent = @AgentId
AND Approveddate < DATEADD(HOUR,-2,GETDATE())
ORDER BY NEWID()
END
ELSE IF @PROVIDER = 'vcbr'
BEGIN
SELECT TOP 20 id,trn.id AS TxId, controlNo = dbo.FNADecryptString(trn.controlNo)
FROM remitTran trn WITH(NOLOCK)
WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
AND tranStatus = 'Payment' AND trn.pAgent = @AgentId
AND Approveddate < DATEADD(HOUR,-2,GETDATE())
ORDER BY NEWID()
END
ELSE IF @PROVIDER = 'sbr'
BEGIN
SELECT TOP 20
id,trn.id AS TxId, controlNo = dbo.FNADecryptString(trn.controlNo), DocId=dbo.FNADecryptString(trn.controlNo2)
,trxDate = CAST(CAST(trn.approvedDate AS DATE) AS VARCHAR) +'T'+ CAST(CAST(trn.approvedDate AS TIME) AS VARCHAR(8))
FROM remitTran trn WITH(NOLOCK)
WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
AND tranStatus = 'Payment' AND trn.pAgent = @AgentId
AND Approveddate < DATEADD(HOUR,-2,GETDATE())
ORDER BY NEWID()
END
ELSE IF @PROVIDER='dbbl'
BEGIN
SELECT TOP 30
trn.id,
partnerTxnId = dbo.FNADecryptString(trn.controlNo)
FROM remitTran trn WITH(NOLOCK)
WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
AND tranStatus = 'Payment' AND trn.pAgent = @AgentId
AND Approveddate < DATEADD(HOUR,-2,GETDATE())
ORDER BY NEWID()
END
ELSE IF @PROVIDER='Agrani'
BEGIN
SELECT TOP 30
trn.id AS TranId,dbo.FNADecryptString(trn.controlNo) AS ControlNo
FROM remitTran trn WITH(NOLOCK)
WHERE trn.approvedBy IS NOT NULL AND trn.payStatus = 'Post'
AND tranStatus = 'Payment' AND trn.pAgent = @AgentId
AND Approveddate < DATEADD(HOUR,-2,GETDATE())
ORDER BY NEWID()
END
ELSE IF @PROVIDER='xpress'
BEGIN
SELECT TOP 120
id,
xpin = dbo.FNADecryptString(trn.controlNo)
FROM remitTran trn WITH(NOLOCK)
WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
AND tranStatus IN('Payment','CancelRequest') AND trn.pAgent = @AgentId
AND Approveddate < DATEADD(HOUR,-2,GETDATE())
ORDER BY NEWID()
END
ELSE IF @PROVIDER='ria'
BEGIN
SELECT TOP 50
id,
TransactionID = dbo.FNADecryptString(trn.controlNo2)
FROM remitTran trn WITH(NOLOCK)
WHERE trn.approvedBy IS NOT NULL AND trn.payStatus ='Post'
AND tranStatus IN( 'Payment','CancelRequested','CancelRequest') AND trn.pAgent = @AgentId
AND Approveddate < DATEADD(HOUR,-2,GETDATE())
ORDER BY NEWID()
END
END
ELSE IF @FLAG='cancel-requested-list'
BEGIN
SELECT
TransactionId = RT.id
,GmeControlNo = CASE WHEN RT.pAgent =393866 THEN dbo.FNADecryptString(RT.controlNo2) ELSE dbo.FNADecryptString(RT.controlNo) END
,PartnerPin = rt.ContNo----dbo.FNADecryptString(RT.controlNo2)
,DocId = rt.ContNo
,Provider = CASE WHEN RT.pAgent = 393228 THEN 'contact'
WHEN RT.pAgent = 393864 THEN 'dbbl'
WHEN RT.pAgent = 415208 THEN 'xpress'
WHEN RT.pAgent = 393866 THEN 'ria'
ELSE 'other' END
,RequestFor = CASE WHEN RT.pAgent IN(393228,393866) THEN 'CancelRequest' WHEN RT.pAgent IN(393864,415208) THEN 'Cancel' ELSE 'other' END
,cancelReason = ISNULL(rt.cancelReason,'Customer requested to cancel the transaction.')
FROM dbo.remitTran AS RT(NOLOCK)
WHERE RT.tranStatus = 'CancelRequest'
AND RT.payStatus = 'Post'
and 1=2
END
ELSE IF @FLAG='update-status' ----'update-cancel-requested'
BEGIN
UPDATE dbo.remitTran SET
tranStatus = ' CancelRequested'
,cancelRequestBy = 'system'
,cancelRequestDate = GETDATE()
,cancelReason = CASE WHEN cancelReason IS NULL THEN 'Customer requested to cancel the transaction.' ELSE cancelReason END
WHERE id = @TRANID AND pAgent IN(393228,393866)
SELECT '0' ErrorCode,'Cancel Requested Successfully' Msg, NULL Id
END
END
GO