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.
 
 
 

110 lines
6.5 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[INBOUND_PROC_CANCEL_TRANSACTION] Script Date: 9/27/2019 1:30:13 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[INBOUND_PROC_CANCEL_TRANSACTION](
@flag VARCHAR(20)
,@agentCode VARCHAR(20) = NULL
,@userName VARCHAR(20) = NULL
,@controlNo VARCHAR(50) = NULL
,@partnerTranNo VARCHAR(50) = NULL
,@tranId VARCHAR(50) = NULL
,@tranDate VARCHAR(50) = NULL
,@reason VARCHAR(MAX) = NULL
,@processIdentifier VARCHAR(100) = NULL
)AS
BEGIN TRY
IF @flag='cancel-transaction'
BEGIN
DECLARE @agentId BIGINT, @transtatus VARCHAR(50), @paystatus VARCHAR(50), @tranSendDate VARCHAR(10);
SELECT @agentId=agentId FROM dbo.agentMaster(NOLOCK) WHERE agentCode=@agentCode
SET @controlNo = dbo.FNAEncryptString(@controlNo);
--SET @tranDate = CONVERT(VARCHAR(10), @tranDate, 120);
IF NOT EXISTS(SELECT 'x' FROM dbo.INBOUND_REMIT_TRAN(NOLOCK) irt WHERE irt.id = @tranId AND irt.controlNo = @controlNo AND irt.sAgent=@agentId)
BEGIN
SELECT '1' ErrorCode, 'Wrong ControlNo/PartnerTranNo, Transaction does not exist' Msg, NULL Id
RETURN
END
SELECT
@transtatus = IRT.tranStatus,
@paystatus = IRT.payStatus,
@tranSendDate = CONVERT(VARCHAR(10), IRT.createdDate,120)
FROM
dbo.INBOUND_REMIT_TRAN IRT(NOLOCK)
WHERE IRT.id = @tranId
IF(@tranSendDate <> @tranDate)
BEGIN
SELECT '1' ErrorCode, 'Transaction date is not correct.' Msg, NULL Id
RETURN
END
IF(@transtatus = 'cancel')
BEGIN
SELECT '1' ErrorCode, 'Transaction has already been cancelled.' Msg, NULL Id
RETURN
END
IF(@paystatus = 'paid')
BEGIN
SELECT '1' ErrorCode, 'Transaction has already been paid.' Msg, NULL Id
RETURN
END
--IF NOT EXISTS(SELECT 'x' FROM dbo.INBOUND_REMIT_TRAN(NOLOCK) irt WHERE irt.id = @tranId AND irt.sAgent=@agentId AND irt.payStatus= 'UNPAID' AND irt.tranStatus='PAYMENT')
--BEGIN
-- SELECT '1' ErrorCode, 'Transaction is under process, cannot cancel the transaction. ' Msg, NULL Id
-- RETURN
--END
BEGIN TRAN
UPDATE dbo.INBOUND_REMIT_TRAN SET
tranStatus='Cancel'
,cancelRequestDate=GETDATE()
,cancelRequestDateLocal=GETUTCDATE()
,cancelRequestBy=@userName
,cancelReason=@reason
,cancelApprovedDate=GETDATE()
,cancelApprovedDateLocal=GETDATE()
,cancelApprovedBy=@userName
WHERE id=@tranId
INSERT INTO dbo.INBOUND_TROUBLE_TICKET(tranId,controlNo,[message],msgType,[status],createdBy,createdDate)
SELECT @TranId,@controlNo,@reason,'C','Cancel',@userName,GETDATE()
----## Deactivate the process identifier
UPDATE ai SET ai.isActive = 0 FROM dbo.INBOUND_APIUSER_IDENTIFIER ai WHERE identifier = @processIdentifier AND username = @userName
COMMIT TRAN
IF @@TRANCOUNT=0
BEGIN
SELECT '0' ErrorCode, 'cancel transaction success' Msg,@tranId Id
RETURN
END
ELSE
BEGIN
SELECT '1' ErrorCode, 'cancel transaction fail' Msg,@tranId Id
RETURN
END
END
END TRY
BEGIN CATCH
IF @@ERROR>0
ROLLBACK TRAN
SELECT '999' ErrorCode, ERROR_MESSAGE() Msg,@tranId Id
RETURN
END CATCH
GO