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

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[ws_proc_TXNUnLock] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE PROC [dbo].[ws_proc_TXNUnLock](
  9. @ACCESSCODE VARCHAR(50),
  10. @USERNAME VARCHAR(50),
  11. @PASSWORD VARCHAR(50),
  12. @REFNO VARCHAR(20),
  13. @AGENT_SESSION_ID VARCHAR(150),
  14. @PAY_TOKEN_ID BIGINT = NULL
  15. )
  16. AS
  17. SET NOCOUNT ON;
  18. SET XACT_ABORT ON;
  19. BEGIN TRY
  20. DECLARE @errCode INT,@controlNoEnc VARCHAR(50) = dbo.FNAENcryptString(@REFNO)
  21. EXEC ws_proc_checkAuthntication @USERNAME,@PASSWORD,@ACCESSCODE,@errCode OUT
  22. IF (@errCode=1 )
  23. BEGIN
  24. SELECT 1002 CODE, 'Authentication Fail' MESSAGE
  25. ,AGENT_SESSION_ID = @AGENT_SESSION_ID
  26. RETURN
  27. END
  28. IF EXISTS(SELECT 'A' FROM applicationUsers WITH (NOLOCK) WHERE
  29. userName = @USERNAME AND forceChangePwd = 'Y')
  30. BEGIN
  31. SELECT '1002' CODE
  32. , 'You logged on first time,must first change your password and try again!' MESSAGE
  33. ,AGENT_SESSION_ID = @AGENT_SESSION_ID
  34. RETURN
  35. END
  36. ------------------VALIDATION-------------------------------
  37. IF @AGENT_SESSION_ID IS NULL
  38. BEGIN
  39. SELECT '1001' CODE,'AGENT SESSION ID Field is Required' MESSAGE
  40. ,AGENT_SESSION_ID = @AGENT_SESSION_ID
  41. RETURN;
  42. END
  43. IF @REFNO IS NULL
  44. BEGIN
  45. SELECT '1001' CODE,'REFNO Field is Required' MESSAGE
  46. ,AGENT_SESSION_ID = @AGENT_SESSION_ID
  47. RETURN;
  48. END
  49. IF @REFNO IS NOT NULL AND ISNUMERIC(@REFNO)=0
  50. BEGIN
  51. SELECT '2003' CODE
  52. ,'Technical Error: PINNO must be numeric' MESSAGE
  53. ,AGENT_SESSION_ID = @AGENT_SESSION_ID
  54. RETURN;
  55. END
  56. IF @PAY_TOKEN_ID IS NULL
  57. BEGIN
  58. SELECT 1001 CODE,'PAY TOKEN ID Field is Required' MESSAGE
  59. ,@AGENT_SESSION_ID AGENT_SESSION_ID
  60. RETURN;
  61. END
  62. DECLARE @pCountry VARCHAR(50),
  63. @pBranch INT,
  64. @pAgent INT,
  65. @tranId INT,
  66. @tranStatus VARCHAR(30),
  67. @tokenId VARCHAR(40),
  68. @userCountry VARCHAR(50),
  69. @LockedBy VARCHAR(50),
  70. @lockStatus VARCHAR(20)
  71. -- PICK AGENTID ,COUNTRY FROM USER
  72. SELECT @pBranch = agentId,@userCountry = countryId FROM applicationUsers WHERE userName = @USERNAME
  73. SELECT @userCountry = countryName from countryMaster WITH(NOLOCK) where countryId=@userCountry
  74. SELECT @tranId = id,
  75. @tranStatus = tranStatus,
  76. @tokenId = payTokenId,
  77. @pAgent = pAgent,
  78. @pCountry = pCountry,
  79. @LockedBy = lockedBy,
  80. @lockStatus = lockStatus
  81. FROM remitTran WITH (NOLOCK) WHERE controlNo = @controlNoEnc
  82. --AND ISNULL(pAgent,@pAgent ) = @pAgent
  83. IF @lockStatus IS NULL
  84. BEGIN
  85. SELECT '2003' CODE,'Invalid Transaction' MESSAGE
  86. ,@AGENT_SESSION_ID AGENT_SESSION_ID
  87. RETURN
  88. END
  89. IF @pCountry <> @userCountry
  90. BEGIN
  91. SELECT '2003' CODE,'You are not authorized to view this transaction' MESSAGE
  92. ,@AGENT_SESSION_ID AGENT_SESSION_ID
  93. RETURN
  94. END
  95. IF @LockedBy <> @USERNAME
  96. BEGIN
  97. SELECT '2003' CODE,'You are not authorized to view this transaction' MESSAGE
  98. ,@AGENT_SESSION_ID AGENT_SESSION_ID
  99. RETURN;
  100. END
  101. --IF @tokenId IS NULL OR ISNULL(@PAY_TOKEN_ID,0) <> @tokenId
  102. --BEGIN
  103. -- SELECT 1007 CODE,'Invalid TokenID' MESSAGE
  104. -- ,@AGENT_SESSION_ID AGENT_SESSION_ID
  105. -- RETURN
  106. --END
  107. IF NOT EXISTS(SELECT 'A' FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBranch AND agentCountry = @pCountry)
  108. BEGIN
  109. SELECT '2001' CODE,'Transaction is not in Authorized Mode' MESSAGE
  110. ,@AGENT_SESSION_ID AGENT_SESSION_ID
  111. ,Confirm_ID = NULL
  112. ,REFNO = @REFNO
  113. RETURN
  114. END
  115. IF (@lockStatus <> 'locked')
  116. BEGIN
  117. SELECT '2003' CODE,'Transaction is not locked' MESSAGE
  118. ,@AGENT_SESSION_ID AGENT_SESSION_ID
  119. RETURN
  120. END
  121. IF (@tranStatus = 'Block')
  122. BEGIN
  123. SELECT '2004' CODE, 'Error while making a payment (need to contact Head office)' MESSAGE
  124. ,@AGENT_SESSION_ID AGENT_SESSION_ID
  125. RETURN
  126. END
  127. --#############################
  128. UPDATE remitTran SET
  129. lockStatus ='unlocked'
  130. ,lockedBy = null
  131. ,lockedDate = NULL
  132. ,lockedDateLocal = NULL
  133. ,payTokenId = NULL
  134. WHERE id = @tranId and lockStatus = 'locked'
  135. --AND ISNULL(pAgent,@pAgent ) = @pAgent
  136. SELECT
  137. CODE = 0 ,
  138. AGENT_SESSION_ID = @AGENT_SESSION_ID ,
  139. MESSAGE = 'Transaction unlocked successfully'
  140. INSERT INTO apiRequestLog(AGENT_CODE, USER_ID, PASSWORD, AGENT_SESSION_ID,
  141. controlNo, REQUESTED_DATE, errorMsg, errorCode)
  142. SELECT @ACCESSCODE, @USERNAME, @PASSWORD, @AGENT_SESSION_ID,
  143. @REFNO, GETDATE(), 'Unlocked',@tokenId
  144. END TRY
  145. BEGIN CATCH
  146. DECLARE @errorLogId BIGINT
  147. INSERT INTO Logs (errorPage, errorMsg, errorDetails, createdBy, createdDate)
  148. SELECT 'API SP Error', 'Technical Error : ' + ERROR_MESSAGE() MESSAGE, 'ws_proc_TXNUnLock', 'admin', GETDATE()
  149. SET @errorLogId = SCOPE_IDENTITY()
  150. SELECT '9001' CODE, 'Technical Error occurred, Error Log Id : ' + CAST(@errorLogId AS VARCHAR) MESSAGE, @AGENT_SESSION_ID AGENT_SESSION_ID
  151. END CATCH
  152. --EXEC ws_proc_TXNUnLock @ACCESSCODE = 'IMEPH01', @USERNAME = 'clapiuser01', @PASSWORD = 'ime1212', @REFNO = '90401774056', @AGENT_SESSION_ID = '32323423424', @PAY_TOKEN_ID = '1010968726733094016'
  153. --EXEC ws_proc_TXNUnLock @ACCESSCODE='IMEPH01',@USERNAME='clapiuser01',@PASSWORD='ime1212',@AGENT_SESSION_ID='1234567',@REFNO='90401774056',@PAY_TOKEN_ID='373512466431898496'
  154. GO