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.
214 lines
12 KiB
214 lines
12 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[ws_int_proc_CancelTXN] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
CREATE PROC [dbo].[ws_int_proc_CancelTXN](
|
|
@ACCESSCODE VARCHAR(50),
|
|
@USERNAME VARCHAR(50),
|
|
@PASSWORD VARCHAR(50),
|
|
@REFNO VARCHAR(20),
|
|
@AGENT_TXN_REF_ID VARCHAR(150),
|
|
@CANCEL_REASON VARCHAR(500)
|
|
)
|
|
AS
|
|
|
|
SET NOCOUNT ON
|
|
SET XACT_ABORT ON
|
|
|
|
BEGIN TRY
|
|
DECLARE @apiRequestId BIGINT
|
|
|
|
INSERT INTO requestApiLogOther(
|
|
AGENT_CODE
|
|
,USER_ID
|
|
,PASSWORD
|
|
,REFNO
|
|
,AGENT_TXN_REF_ID
|
|
,CANCEL_REASON
|
|
,METHOD_NAME
|
|
,REQUEST_DATE
|
|
)
|
|
SELECT
|
|
@ACCESSCODE
|
|
,@USERNAME
|
|
,@PASSWORD
|
|
,@REFNO
|
|
,@AGENT_TXN_REF_ID
|
|
,@CANCEL_REASON
|
|
,'ws_int_proc_CancelTXN'
|
|
,GETDATE()
|
|
SET @apiRequestId = SCOPE_IDENTITY()
|
|
|
|
|
|
|
|
DECLARE @errCode INT, @controlNoEnc VARCHAR(50), @DT DATETIME
|
|
DECLARE @autMsg VARCHAR(500)
|
|
SET @DT = GETDATE()
|
|
|
|
SET @controlNoEnc = dbo.FNAEncryptString(@REFNO)
|
|
EXEC ws_int_proc_checkAuthntication @USERNAME,@PASSWORD,@ACCESSCODE,@errCode OUT, @autMsg OUT
|
|
|
|
DECLARE @errorTable TABLE(
|
|
AGENT_TXN_REF_ID VARCHAR(150),REFNO VARCHAR(50),COLLECT_AMT MONEY,COLLECT_CURRENCY VARCHAR(3)
|
|
,EXCHANGE_RATE MONEY,SERVICE_CHARGE MONEY,PAYOUTAMT MONEY,PAYOUTCURRENCY VARCHAR(3),TXN_DATE DATETIME
|
|
)
|
|
|
|
INSERT INTO @errorTable (AGENT_TXN_REF_ID, REFNO)
|
|
SELECT @AGENT_TXN_REF_ID, @REFNO
|
|
|
|
IF(@errCode = 1 )
|
|
BEGIN
|
|
SELECT '1002' CODE, ISNULL(@autMsg,'Authentication Fail') MESSAGE, * FROM @errorTable
|
|
RETURN
|
|
END
|
|
IF EXISTS(SELECT 'X' FROM applicationUsers WITH (NOLOCK) WHERE userName = @USERNAME AND forceChangePwd = 'Y')
|
|
BEGIN
|
|
SELECT '1002' CODE, 'You logged on first time,must first change your password and try again!' MESSAGE, * FROM @errorTable
|
|
RETURN
|
|
END
|
|
|
|
IF @REFNO IS NULL
|
|
BEGIN
|
|
SELECT '1001' CODE, 'PINNO Field is Empty' MESSAGE, * FROM @errorTable
|
|
RETURN;
|
|
END
|
|
IF @CANCEL_REASON IS NULL
|
|
BEGIN
|
|
SELECT '1001' CODE, 'CANCEL REASON Field is Empty' MESSAGE, * FROM @errorTable
|
|
RETURN;
|
|
END
|
|
IF @AGENT_TXN_REF_ID IS NULL
|
|
BEGIN
|
|
SELECT '1001' CODE, 'AGENT SESSION ID Field is Empty' MESSAGE, * FROM @errorTable
|
|
RETURN;
|
|
END
|
|
|
|
DECLARE
|
|
@sCountryId INT
|
|
,@sAgent INT
|
|
,@sBranch INT
|
|
,@tranId INT
|
|
,@tranStatus VARCHAR(50)
|
|
,@payStatus VARCHAR(50)
|
|
,@serviceCharge MONEY
|
|
,@tAmt MONEY
|
|
,@cAmt MONEY
|
|
,@createdBy VARCHAR(50)
|
|
,@txnSbranch INT
|
|
,@txnSAgent INT
|
|
,@pCountry VARCHAR(50)
|
|
|
|
SELECT
|
|
@sCountryId = countryId,
|
|
@sBranch = sb.agentId,
|
|
@sAgent = sb.parentId
|
|
FROM applicationUsers au WITH(NOLOCK)
|
|
LEFT JOIN agentMaster sb WITH(NOLOCK) ON au.agentId = sb.agentId
|
|
WHERE userName = @USERNAME
|
|
AND ISNULL(sb.isActive,'N') = 'Y'
|
|
|
|
|
|
DECLARE @cancelReason1 VARCHAR(500)
|
|
SELECT
|
|
@tranId = id,
|
|
@serviceCharge = serviceCharge,
|
|
@tAmt = tAmt,
|
|
@cAmt = cAmt,
|
|
@createdBy = createdBy,
|
|
@tranStatus = tranStatus,
|
|
@payStatus = payStatus,
|
|
@txnSbranch = sBranch,
|
|
@txnSAgent = sAgent,
|
|
@pCountry = pCountry
|
|
FROM remitTran WITH(NOLOCK)
|
|
WHERE controlNo = dbo.FNAEncryptString(@REFNO)
|
|
|
|
IF (@tranStatus IS NULL)
|
|
BEGIN
|
|
SELECT '2001' CODE, 'RefNo: '+ @REFNO + ' Not Found or can not cancel. Please contact Headoffice' MESSAGE
|
|
,* FROM @errorTable
|
|
RETURN
|
|
END
|
|
|
|
IF @sAgent <> @txnSAgent
|
|
BEGIN
|
|
SELECT '2002' CODE, 'You are not allow to cancel this transaction' MESSAGE, * FROM @errorTable
|
|
RETURN
|
|
END
|
|
IF (@tranStatus = 'Cancel')
|
|
BEGIN
|
|
SELECT '2003' CODE, 'Transaction already been cancelled' MESSAGE, * FROM @errorTable
|
|
RETURN
|
|
END
|
|
IF (@tranStatus = 'Lock')
|
|
BEGIN
|
|
SELECT '2004' CODE, 'Transaction is locked. Please contact HO' MESSAGE, * FROM @errorTable
|
|
RETURN
|
|
END
|
|
IF (@tranStatus = 'Block')
|
|
BEGIN
|
|
SELECT '2005' CODE, 'Transaction is blocked. Please contact HO' MESSAGE, * FROM @errorTable
|
|
RETURN
|
|
END
|
|
IF (@payStatus = 'Post')
|
|
BEGIN
|
|
SELECT '2002' CODE, 'Transaction is not in Authorized Mode' MESSAGE, * FROM @errorTable
|
|
RETURN
|
|
END
|
|
IF (@tranStatus = 'Paid')
|
|
BEGIN
|
|
SELECT '2002' CODE, 'Transaction is not in Authorized Mode' MESSAGE, * FROM @errorTable
|
|
RETURN
|
|
END
|
|
|
|
BEGIN TRANSACTION
|
|
UPDATE remitTran SET
|
|
tranStatus = 'CancelRequest'
|
|
,cancelRequestDate = GETDATE()
|
|
,cancelRequestDateLocal = dbo.FNADateFormatTZ(GETDATE(), @USERNAME)
|
|
,cancelRequestBy = @USERNAME
|
|
,cancelReason = @CANCEL_REASON
|
|
--,cancelApprovedBy = @USERNAME
|
|
--,cancelApprovedDate = dbo.FNADateFormatTZ(GETDATE(), @USERNAME)
|
|
--,cancelApprovedDateLocal = GETDATE()
|
|
WHERE id = @tranId
|
|
|
|
INSERT INTO tranCancelrequest(tranId,controlNo,cancelReason,cancelStatus, tranStatus,createdBy,createdDate)
|
|
SELECT @tranId, dbo.FNAEncryptString(@REFNO), @CANCEL_REASON, 'CancelRequest', @tranStatus, @USERNAME, GETDATE()
|
|
|
|
DELETE FROM @errorTable
|
|
|
|
INSERT INTO @errorTable (AGENT_TXN_REF_ID,REFNO,COLLECT_AMT,COLLECT_CURRENCY,EXCHANGE_RATE,SERVICE_CHARGE,PAYOUTAMT,PAYOUTCURRENCY,TXN_DATE)
|
|
SELECT @AGENT_TXN_REF_ID,@REFNO,cAmt,collCurr,customerRate,serviceCharge,pAmt,payoutCurr,createdDateLocal
|
|
FROM remitTran WITH (NOLOCK) WHERE id = @tranId
|
|
|
|
EXEC proc_transactionLogs 'i', @USERNAME, @tranId, @CANCEL_REASON, 'Cancel Request'
|
|
|
|
IF @@TRANCOUNT > 0
|
|
COMMIT TRANSACTION
|
|
SELECT 0 CODE, 'Cancel Txn success, and waiting for approval!' MESSAGE, * FROM @errorTable
|
|
|
|
UPDATE requestApiLogOther SET
|
|
errorCode = '0'
|
|
,errorMsg = 'Success'
|
|
WHERE rowId = @apiRequestId
|
|
|
|
|
|
END TRY
|
|
BEGIN CATCH
|
|
|
|
IF @@TRANCOUNT > 0
|
|
ROLLBACK TRAN
|
|
SELECT '9001' CODE, 'Technical Error : ' + ERROR_MESSAGE() MESSAGE, * FROM @errorTable
|
|
|
|
INSERT INTO Logs (errorPage, errorMsg, errorDetails, createdBy, createdDate)
|
|
SELECT 'API SP Error','Technical Error : ' + ERROR_MESSAGE() MESSAGE,'ws_proc_CancelTransaction',@USERNAME , GETDATE()
|
|
END CATCH
|
|
|
|
|
|
|
|
|
|
GO
|