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

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[ws_int_proc_CancelTXN] 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_int_proc_CancelTXN](
  9. @ACCESSCODE VARCHAR(50),
  10. @USERNAME VARCHAR(50),
  11. @PASSWORD VARCHAR(50),
  12. @REFNO VARCHAR(20),
  13. @AGENT_TXN_REF_ID VARCHAR(150),
  14. @CANCEL_REASON VARCHAR(500)
  15. )
  16. AS
  17. SET NOCOUNT ON
  18. SET XACT_ABORT ON
  19. BEGIN TRY
  20. DECLARE @apiRequestId BIGINT
  21. INSERT INTO requestApiLogOther(
  22. AGENT_CODE
  23. ,USER_ID
  24. ,PASSWORD
  25. ,REFNO
  26. ,AGENT_TXN_REF_ID
  27. ,CANCEL_REASON
  28. ,METHOD_NAME
  29. ,REQUEST_DATE
  30. )
  31. SELECT
  32. @ACCESSCODE
  33. ,@USERNAME
  34. ,@PASSWORD
  35. ,@REFNO
  36. ,@AGENT_TXN_REF_ID
  37. ,@CANCEL_REASON
  38. ,'ws_int_proc_CancelTXN'
  39. ,GETDATE()
  40. SET @apiRequestId = SCOPE_IDENTITY()
  41. DECLARE @errCode INT, @controlNoEnc VARCHAR(50), @DT DATETIME
  42. DECLARE @autMsg VARCHAR(500)
  43. SET @DT = GETDATE()
  44. SET @controlNoEnc = dbo.FNAEncryptString(@REFNO)
  45. EXEC ws_int_proc_checkAuthntication @USERNAME,@PASSWORD,@ACCESSCODE,@errCode OUT, @autMsg OUT
  46. DECLARE @errorTable TABLE(
  47. AGENT_TXN_REF_ID VARCHAR(150),REFNO VARCHAR(50),COLLECT_AMT MONEY,COLLECT_CURRENCY VARCHAR(3)
  48. ,EXCHANGE_RATE MONEY,SERVICE_CHARGE MONEY,PAYOUTAMT MONEY,PAYOUTCURRENCY VARCHAR(3),TXN_DATE DATETIME
  49. )
  50. INSERT INTO @errorTable (AGENT_TXN_REF_ID, REFNO)
  51. SELECT @AGENT_TXN_REF_ID, @REFNO
  52. IF(@errCode = 1 )
  53. BEGIN
  54. SELECT '1002' CODE, ISNULL(@autMsg,'Authentication Fail') MESSAGE, * FROM @errorTable
  55. RETURN
  56. END
  57. IF EXISTS(SELECT 'X' FROM applicationUsers WITH (NOLOCK) WHERE userName = @USERNAME AND forceChangePwd = 'Y')
  58. BEGIN
  59. SELECT '1002' CODE, 'You logged on first time,must first change your password and try again!' MESSAGE, * FROM @errorTable
  60. RETURN
  61. END
  62. IF @REFNO IS NULL
  63. BEGIN
  64. SELECT '1001' CODE, 'PINNO Field is Empty' MESSAGE, * FROM @errorTable
  65. RETURN;
  66. END
  67. IF @CANCEL_REASON IS NULL
  68. BEGIN
  69. SELECT '1001' CODE, 'CANCEL REASON Field is Empty' MESSAGE, * FROM @errorTable
  70. RETURN;
  71. END
  72. IF @AGENT_TXN_REF_ID IS NULL
  73. BEGIN
  74. SELECT '1001' CODE, 'AGENT SESSION ID Field is Empty' MESSAGE, * FROM @errorTable
  75. RETURN;
  76. END
  77. DECLARE
  78. @sCountryId INT
  79. ,@sAgent INT
  80. ,@sBranch INT
  81. ,@tranId INT
  82. ,@tranStatus VARCHAR(50)
  83. ,@payStatus VARCHAR(50)
  84. ,@serviceCharge MONEY
  85. ,@tAmt MONEY
  86. ,@cAmt MONEY
  87. ,@createdBy VARCHAR(50)
  88. ,@txnSbranch INT
  89. ,@txnSAgent INT
  90. ,@pCountry VARCHAR(50)
  91. SELECT
  92. @sCountryId = countryId,
  93. @sBranch = sb.agentId,
  94. @sAgent = sb.parentId
  95. FROM applicationUsers au WITH(NOLOCK)
  96. LEFT JOIN agentMaster sb WITH(NOLOCK) ON au.agentId = sb.agentId
  97. WHERE userName = @USERNAME
  98. AND ISNULL(sb.isActive,'N') = 'Y'
  99. DECLARE @cancelReason1 VARCHAR(500)
  100. SELECT
  101. @tranId = id,
  102. @serviceCharge = serviceCharge,
  103. @tAmt = tAmt,
  104. @cAmt = cAmt,
  105. @createdBy = createdBy,
  106. @tranStatus = tranStatus,
  107. @payStatus = payStatus,
  108. @txnSbranch = sBranch,
  109. @txnSAgent = sAgent,
  110. @pCountry = pCountry
  111. FROM remitTran WITH(NOLOCK)
  112. WHERE controlNo = dbo.FNAEncryptString(@REFNO)
  113. IF (@tranStatus IS NULL)
  114. BEGIN
  115. SELECT '2001' CODE, 'RefNo: '+ @REFNO + ' Not Found or can not cancel. Please contact Headoffice' MESSAGE
  116. ,* FROM @errorTable
  117. RETURN
  118. END
  119. IF @sAgent <> @txnSAgent
  120. BEGIN
  121. SELECT '2002' CODE, 'You are not allow to cancel this transaction' MESSAGE, * FROM @errorTable
  122. RETURN
  123. END
  124. IF (@tranStatus = 'Cancel')
  125. BEGIN
  126. SELECT '2003' CODE, 'Transaction already been cancelled' MESSAGE, * FROM @errorTable
  127. RETURN
  128. END
  129. IF (@tranStatus = 'Lock')
  130. BEGIN
  131. SELECT '2004' CODE, 'Transaction is locked. Please contact HO' MESSAGE, * FROM @errorTable
  132. RETURN
  133. END
  134. IF (@tranStatus = 'Block')
  135. BEGIN
  136. SELECT '2005' CODE, 'Transaction is blocked. Please contact HO' MESSAGE, * FROM @errorTable
  137. RETURN
  138. END
  139. IF (@payStatus = 'Post')
  140. BEGIN
  141. SELECT '2002' CODE, 'Transaction is not in Authorized Mode' MESSAGE, * FROM @errorTable
  142. RETURN
  143. END
  144. IF (@tranStatus = 'Paid')
  145. BEGIN
  146. SELECT '2002' CODE, 'Transaction is not in Authorized Mode' MESSAGE, * FROM @errorTable
  147. RETURN
  148. END
  149. BEGIN TRANSACTION
  150. UPDATE remitTran SET
  151. tranStatus = 'CancelRequest'
  152. ,cancelRequestDate = GETDATE()
  153. ,cancelRequestDateLocal = dbo.FNADateFormatTZ(GETDATE(), @USERNAME)
  154. ,cancelRequestBy = @USERNAME
  155. ,cancelReason = @CANCEL_REASON
  156. --,cancelApprovedBy = @USERNAME
  157. --,cancelApprovedDate = dbo.FNADateFormatTZ(GETDATE(), @USERNAME)
  158. --,cancelApprovedDateLocal = GETDATE()
  159. WHERE id = @tranId
  160. INSERT INTO tranCancelrequest(tranId,controlNo,cancelReason,cancelStatus, tranStatus,createdBy,createdDate)
  161. SELECT @tranId, dbo.FNAEncryptString(@REFNO), @CANCEL_REASON, 'CancelRequest', @tranStatus, @USERNAME, GETDATE()
  162. DELETE FROM @errorTable
  163. INSERT INTO @errorTable (AGENT_TXN_REF_ID,REFNO,COLLECT_AMT,COLLECT_CURRENCY,EXCHANGE_RATE,SERVICE_CHARGE,PAYOUTAMT,PAYOUTCURRENCY,TXN_DATE)
  164. SELECT @AGENT_TXN_REF_ID,@REFNO,cAmt,collCurr,customerRate,serviceCharge,pAmt,payoutCurr,createdDateLocal
  165. FROM remitTran WITH (NOLOCK) WHERE id = @tranId
  166. EXEC proc_transactionLogs 'i', @USERNAME, @tranId, @CANCEL_REASON, 'Cancel Request'
  167. IF @@TRANCOUNT > 0
  168. COMMIT TRANSACTION
  169. SELECT 0 CODE, 'Cancel Txn success, and waiting for approval!' MESSAGE, * FROM @errorTable
  170. UPDATE requestApiLogOther SET
  171. errorCode = '0'
  172. ,errorMsg = 'Success'
  173. WHERE rowId = @apiRequestId
  174. END TRY
  175. BEGIN CATCH
  176. IF @@TRANCOUNT > 0
  177. ROLLBACK TRAN
  178. SELECT '9001' CODE, 'Technical Error : ' + ERROR_MESSAGE() MESSAGE, * FROM @errorTable
  179. INSERT INTO Logs (errorPage, errorMsg, errorDetails, createdBy, createdDate)
  180. SELECT 'API SP Error','Technical Error : ' + ERROR_MESSAGE() MESSAGE,'ws_proc_CancelTransaction',@USERNAME , GETDATE()
  181. END CATCH
  182. GO