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