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

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