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

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[ws_int_proc_QueryTXNStatus] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. --
  9. /*
  10. EXEC ws_proc_QueryTXNStatus
  11. @AGENT_CODE = 'IMEARE01',
  12. @USER_ID = 'testapi', @PASSWORD = 'ime@12345',
  13. @AGENT_SESSION_ID='11223344',
  14. @PINNO='90408187599'
  15. */
  16. CREATE proc [dbo].[ws_int_proc_QueryTXNStatus](
  17. @AGENT_CODE VARCHAR(50),
  18. @USER_ID VARCHAR(50),
  19. @PASSWORD VARCHAR(50),
  20. @PINNO VARCHAR(20),
  21. @AGENT_SESSION_ID VARCHAR(150)
  22. )
  23. AS
  24. SET NOCOUNT ON;
  25. SET XACT_ABORT ON;
  26. BEGIN TRY
  27. DECLARE @apiRequestId BIGINT
  28. INSERT INTO requestApiLogOther(
  29. AGENT_CODE
  30. ,USER_ID
  31. ,PASSWORD
  32. ,REFNO
  33. ,AGENT_SESSION_ID
  34. ,METHOD_NAME
  35. ,REQUEST_DATE
  36. )
  37. SELECT
  38. @AGENT_CODE
  39. ,@USER_ID
  40. ,@PASSWORD
  41. ,@PINNO
  42. ,@AGENT_SESSION_ID
  43. ,'ws_int_proc_QueryTXNStatus'
  44. ,GETDATE()
  45. SET @apiRequestId = SCOPE_IDENTITY()
  46. DECLARE @errCode INT,@controlNoEnc VARCHAR(50) = dbo.FNAEncryptString(@PINNO)
  47. DECLARE @autMsg VARCHAR(500)
  48. EXEC ws_int_proc_checkAuthntication @USER_ID,@PASSWORD,@AGENT_CODE,@errCode OUT,@autMsg OUT
  49. DECLARE @errorTable TABLE(
  50. AGENT_SESSION_ID VARCHAR(150)
  51. ,PINNO VARCHAR(50)
  52. ,SENDER_NAME VARCHAR(100)
  53. ,RECEIVER_NAME VARCHAR(100)
  54. ,PAYOUTAMT MONEY
  55. ,PAYOUTCURRENCY VARCHAR(3)
  56. ,STATUS VARCHAR(30)
  57. ,STATUS_DATE VARCHAR(20)
  58. )
  59. INSERT INTO @errorTable (AGENT_SESSION_ID,PINNO)
  60. SELECT @AGENT_SESSION_ID,@PINNO
  61. IF (@errCode=1 )
  62. BEGIN
  63. SELECT '1002' CODE, ISNULL(@autMsg,'Authentication Fail') MESSAGE, * FROM @errorTable
  64. RETURN
  65. END
  66. IF EXISTS(SELECT 'X' FROM applicationUsers WITH (NOLOCK) WHERE userName = @USER_ID AND forceChangePwd = 'Y')
  67. BEGIN
  68. SELECT '1002' CODE, 'You logged on first time,must first change your password and try again!' MESSAGE, * FROM @errorTable
  69. RETURN
  70. END
  71. ------------------VALIDATION-------------------------------
  72. IF @PINNO IS NULL
  73. BEGIN
  74. SELECT '1001' CODE, 'PINNO Field is Empty' MESSAGE, * FROM @errorTable
  75. RETURN
  76. END
  77. IF ISNUMERIC(@PINNO) = 0 AND @PINNO IS NOT NULL
  78. BEGIN
  79. SELECT '9001' CODE, 'Technical Error: PINNO must be numeric' MESSAGE, * FROM @errorTable
  80. RETURN
  81. END
  82. IF @AGENT_SESSION_ID IS NULL
  83. BEGIN
  84. SELECT '1001' CODE, 'AGENT SESSION ID Field is Empty' MESSAGE, * FROM @errorTable
  85. RETURN
  86. END
  87. DECLARE
  88. @pAgent VARCHAR(50)
  89. ,@tranId INT
  90. ,@tranStatus VARCHAR(50)
  91. ,@status VARCHAR(50)
  92. ,@txnBranch INT
  93. ,@txnAgent INT
  94. ,@sBranch INT
  95. ,@sAgent INT
  96. SELECT
  97. @sBranch = sb.agentId,
  98. @sAgent = sb.parentId
  99. FROM applicationUsers au WITH(NOLOCK)
  100. LEFT JOIN agentMaster sb WITH(NOLOCK) ON au.agentId = sb.agentId
  101. WHERE userName = @USER_ID
  102. AND ISNULL(sb.isActive,'N') = 'Y'
  103. SELECT
  104. @tranId = id,
  105. @tranStatus = tranStatus,
  106. @txnAgent = sAgent,
  107. @txnBranch = sBranch
  108. FROM remitTran WITH(NOLOCK) WHERE controlNo = @controlNoEnc
  109. IF @tranStatus IS NULL
  110. BEGIN
  111. SELECT '2003' CODE, 'Transaction Not Found PINNO: ' + @PINNO MESSAGE, * FROM @errorTable
  112. RETURN
  113. END
  114. IF @txnAgent <> @sAgent
  115. BEGIN
  116. SELECT '1003' CODE, 'You are not allow to view this transaction' MESSAGE, * FROM @errorTable
  117. RETURN
  118. END
  119. IF @tranStatus IS NOT NULL
  120. BEGIN
  121. INSERT INTO tranViewHistory(
  122. controlNumber
  123. ,tranViewType
  124. ,agentId
  125. ,createdBy
  126. ,createdDate
  127. ,tranId
  128. )
  129. SELECT
  130. @controlNoEnc
  131. ,'View'
  132. ,@sAgent
  133. ,@USER_ID
  134. ,GETDATE()
  135. ,@tranId
  136. END
  137. SELECT
  138. CODE = '0',
  139. AGENT_SESSION_ID = @AGENT_SESSION_ID,
  140. MESSAGE = 'TXN Summary',
  141. PINNO = @PINNO,
  142. SENDER_NAME = RT.senderName,
  143. RECEIVER_NAME = RT.receiverName,
  144. PAYOUTAMT = RT.pAmt,
  145. PAYOUTCURRENCY = RT.payoutCurr,
  146. STATUS = CASE WHEN RT.tranStatus='Payment' THEN 'Un-paid' ELSE RT.tranStatus END,
  147. STATUS_DATE = CASE WHEN RT.payStatus='Paid' THEN RT.paidDate WHEN RT.tranStatus='Cancel' THEN RT.cancelApprovedDate END,
  148. TOKEN_ID = ''
  149. FROM remitTran RT WITH(NOLOCK)
  150. WHERE RT.id = @tranId
  151. UNION ALL
  152. SELECT
  153. CODE = '0' ,
  154. AGENT_SESSION_ID = @AGENT_SESSION_ID,
  155. MESSAGE = 'TXN Summary',
  156. PINNO = @PINNO,
  157. SENDER_NAME = RT.senderName,
  158. RECEIVER_NAME = RT.receiverName,
  159. PAYOUTAMT = RT.pAmt,
  160. PAYOUTCURRENCY = RT.payoutCurr,
  161. STATUS = CASE WHEN RT.tranStatus='Payment' THEN 'Un-paid' ELSE RT.tranStatus END,
  162. STATUS_DATE = CASE WHEN RT.payStatus='Paid' THEN RT.paidDate WHEN RT.tranStatus='Cancel' THEN RT.cancelApprovedDate END,
  163. TOKEN_ID = ''
  164. FROM cancelTranHistory RT WITH(NOLOCK)
  165. WHERE RT.tranId = @tranId
  166. UPDATE requestApiLogOther SET
  167. errorCode = '0'
  168. ,errorMsg = 'Success'
  169. WHERE rowId = @apiRequestId
  170. END TRY
  171. BEGIN CATCH
  172. IF @@TRANCOUNT > 0
  173. ROLLBACK TRAN
  174. SELECT '9001' CODE, 'Technical Error : ' + ERROR_MESSAGE() MESSAGE, * FROM @errorTable
  175. INSERT INTO Logs (errorPage, errorMsg, errorDetails, createdBy, createdDate)
  176. SELECT 'API SP Error', 'Technical Error : ' + ERROR_MESSAGE() MESSAGE, 'ws_int_proc_QueryTXNStatus', @USER_ID, GETDATE()
  177. END CATCH
  178. GO