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.
183 lines
10 KiB
183 lines
10 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[ws_proc_TXNUnLock] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
CREATE PROC [dbo].[ws_proc_TXNUnLock](
|
|
@ACCESSCODE VARCHAR(50),
|
|
@USERNAME VARCHAR(50),
|
|
@PASSWORD VARCHAR(50),
|
|
@REFNO VARCHAR(20),
|
|
@AGENT_SESSION_ID VARCHAR(150),
|
|
@PAY_TOKEN_ID BIGINT = NULL
|
|
)
|
|
|
|
AS
|
|
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
|
|
|
|
BEGIN TRY
|
|
|
|
|
|
DECLARE @errCode INT,@controlNoEnc VARCHAR(50) = dbo.FNAENcryptString(@REFNO)
|
|
EXEC ws_proc_checkAuthntication @USERNAME,@PASSWORD,@ACCESSCODE,@errCode OUT
|
|
|
|
IF (@errCode=1 )
|
|
BEGIN
|
|
SELECT 1002 CODE, 'Authentication Fail' MESSAGE
|
|
,AGENT_SESSION_ID = @AGENT_SESSION_ID
|
|
RETURN
|
|
END
|
|
IF EXISTS(SELECT 'A' 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
|
|
,AGENT_SESSION_ID = @AGENT_SESSION_ID
|
|
RETURN
|
|
END
|
|
------------------VALIDATION-------------------------------
|
|
IF @AGENT_SESSION_ID IS NULL
|
|
BEGIN
|
|
SELECT '1001' CODE,'AGENT SESSION ID Field is Required' MESSAGE
|
|
,AGENT_SESSION_ID = @AGENT_SESSION_ID
|
|
RETURN;
|
|
END
|
|
IF @REFNO IS NULL
|
|
BEGIN
|
|
SELECT '1001' CODE,'REFNO Field is Required' MESSAGE
|
|
,AGENT_SESSION_ID = @AGENT_SESSION_ID
|
|
RETURN;
|
|
END
|
|
IF @REFNO IS NOT NULL AND ISNUMERIC(@REFNO)=0
|
|
BEGIN
|
|
SELECT '2003' CODE
|
|
,'Technical Error: PINNO must be numeric' MESSAGE
|
|
,AGENT_SESSION_ID = @AGENT_SESSION_ID
|
|
RETURN;
|
|
END
|
|
|
|
IF @PAY_TOKEN_ID IS NULL
|
|
BEGIN
|
|
SELECT 1001 CODE,'PAY TOKEN ID Field is Required' MESSAGE
|
|
,@AGENT_SESSION_ID AGENT_SESSION_ID
|
|
RETURN;
|
|
END
|
|
|
|
DECLARE @pCountry VARCHAR(50),
|
|
@pBranch INT,
|
|
@pAgent INT,
|
|
@tranId INT,
|
|
@tranStatus VARCHAR(30),
|
|
@tokenId VARCHAR(40),
|
|
@userCountry VARCHAR(50),
|
|
@LockedBy VARCHAR(50),
|
|
@lockStatus VARCHAR(20)
|
|
|
|
-- PICK AGENTID ,COUNTRY FROM USER
|
|
SELECT @pBranch = agentId,@userCountry = countryId FROM applicationUsers WHERE userName = @USERNAME
|
|
|
|
SELECT @userCountry = countryName from countryMaster WITH(NOLOCK) where countryId=@userCountry
|
|
|
|
SELECT @tranId = id,
|
|
@tranStatus = tranStatus,
|
|
@tokenId = payTokenId,
|
|
@pAgent = pAgent,
|
|
@pCountry = pCountry,
|
|
@LockedBy = lockedBy,
|
|
@lockStatus = lockStatus
|
|
FROM remitTran WITH (NOLOCK) WHERE controlNo = @controlNoEnc
|
|
--AND ISNULL(pAgent,@pAgent ) = @pAgent
|
|
|
|
IF @lockStatus IS NULL
|
|
BEGIN
|
|
SELECT '2003' CODE,'Invalid Transaction' MESSAGE
|
|
,@AGENT_SESSION_ID AGENT_SESSION_ID
|
|
RETURN
|
|
END
|
|
|
|
IF @pCountry <> @userCountry
|
|
BEGIN
|
|
SELECT '2003' CODE,'You are not authorized to view this transaction' MESSAGE
|
|
,@AGENT_SESSION_ID AGENT_SESSION_ID
|
|
RETURN
|
|
END
|
|
|
|
IF @LockedBy <> @USERNAME
|
|
BEGIN
|
|
SELECT '2003' CODE,'You are not authorized to view this transaction' MESSAGE
|
|
,@AGENT_SESSION_ID AGENT_SESSION_ID
|
|
RETURN;
|
|
END
|
|
|
|
--IF @tokenId IS NULL OR ISNULL(@PAY_TOKEN_ID,0) <> @tokenId
|
|
--BEGIN
|
|
-- SELECT 1007 CODE,'Invalid TokenID' MESSAGE
|
|
-- ,@AGENT_SESSION_ID AGENT_SESSION_ID
|
|
-- RETURN
|
|
--END
|
|
|
|
IF NOT EXISTS(SELECT 'A' FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBranch AND agentCountry = @pCountry)
|
|
BEGIN
|
|
SELECT '2001' CODE,'Transaction is not in Authorized Mode' MESSAGE
|
|
,@AGENT_SESSION_ID AGENT_SESSION_ID
|
|
,Confirm_ID = NULL
|
|
,REFNO = @REFNO
|
|
RETURN
|
|
END
|
|
IF (@lockStatus <> 'locked')
|
|
BEGIN
|
|
SELECT '2003' CODE,'Transaction is not locked' MESSAGE
|
|
,@AGENT_SESSION_ID AGENT_SESSION_ID
|
|
RETURN
|
|
END
|
|
IF (@tranStatus = 'Block')
|
|
BEGIN
|
|
SELECT '2004' CODE, 'Error while making a payment (need to contact Head office)' MESSAGE
|
|
,@AGENT_SESSION_ID AGENT_SESSION_ID
|
|
RETURN
|
|
END
|
|
--#############################
|
|
|
|
UPDATE remitTran SET
|
|
lockStatus ='unlocked'
|
|
,lockedBy = null
|
|
,lockedDate = NULL
|
|
,lockedDateLocal = NULL
|
|
,payTokenId = NULL
|
|
WHERE id = @tranId and lockStatus = 'locked'
|
|
--AND ISNULL(pAgent,@pAgent ) = @pAgent
|
|
|
|
SELECT
|
|
CODE = 0 ,
|
|
AGENT_SESSION_ID = @AGENT_SESSION_ID ,
|
|
MESSAGE = 'Transaction unlocked successfully'
|
|
|
|
INSERT INTO apiRequestLog(AGENT_CODE, USER_ID, PASSWORD, AGENT_SESSION_ID,
|
|
controlNo, REQUESTED_DATE, errorMsg, errorCode)
|
|
SELECT @ACCESSCODE, @USERNAME, @PASSWORD, @AGENT_SESSION_ID,
|
|
@REFNO, GETDATE(), 'Unlocked',@tokenId
|
|
|
|
|
|
END TRY
|
|
BEGIN CATCH
|
|
|
|
DECLARE @errorLogId BIGINT
|
|
INSERT INTO Logs (errorPage, errorMsg, errorDetails, createdBy, createdDate)
|
|
SELECT 'API SP Error', 'Technical Error : ' + ERROR_MESSAGE() MESSAGE, 'ws_proc_TXNUnLock', 'admin', GETDATE()
|
|
SET @errorLogId = SCOPE_IDENTITY()
|
|
|
|
SELECT '9001' CODE, 'Technical Error occurred, Error Log Id : ' + CAST(@errorLogId AS VARCHAR) MESSAGE, @AGENT_SESSION_ID AGENT_SESSION_ID
|
|
|
|
END CATCH
|
|
|
|
--EXEC ws_proc_TXNUnLock @ACCESSCODE = 'IMEPH01', @USERNAME = 'clapiuser01', @PASSWORD = 'ime1212', @REFNO = '90401774056', @AGENT_SESSION_ID = '32323423424', @PAY_TOKEN_ID = '1010968726733094016'
|
|
|
|
--EXEC ws_proc_TXNUnLock @ACCESSCODE='IMEPH01',@USERNAME='clapiuser01',@PASSWORD='ime1212',@AGENT_SESSION_ID='1234567',@REFNO='90401774056',@PAY_TOKEN_ID='373512466431898496'
|
|
|
|
GO
|