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
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
|