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.

81 lines
2.7 KiB

5 months ago
5 months ago
  1. GO
  2. use FastMoneyPro_Remit;
  3. GO
  4. CREATE OR ALTER PROC PROC_REMIT_INBOUND_TRANSACTION_STATUS
  5. (
  6. @Flag VARCHAR(20)
  7. , @UserName VARCHAR(80) = NULL
  8. , @AgentId INT = NULL
  9. , @PartnerTransactionId VARCHAR(40) = NULL
  10. , @IMEControlNo VARCHAR(40) = NULL
  11. )
  12. AS;
  13. SET NOCOUNT ON;
  14. SET XACT_ABORT ON;
  15. BEGIN TRY
  16. BEGIN
  17. DECLARE @ErrorMsg VARCHAR(MAX), @TransactionId BIGINT = NULL, @Status VARCHAR(40), @PayStatus VARCHAR(40), @FinalStatus VARCHAR(40), @StatusMessage VARCHAR(200)
  18. IF @Flag = 'STATUS'
  19. BEGIN
  20. SELECT @TransactionId = id
  21. , @Status = tranStatus
  22. , @PayStatus = payStatus
  23. , @IMEControlNo = dbo.decryptDb(controlNo)
  24. FROM remitTran (NOLOCK)
  25. WHERE controlNo = dbo.FNAEncryptString(@IMEControlNo)
  26. OR controlNo2 = dbo.FNAEncryptString(@PartnerTransactionId)
  27. IF @TransactionId IS NULL
  28. BEGIN
  29. SELECT @TransactionId = id
  30. , @Status = tranStatus
  31. , @PayStatus = payStatus
  32. , @IMEControlNo = dbo.decryptDb(controlNo)
  33. FROM remitTranTemp (NOLOCK)
  34. WHERE controlNo = dbo.FNAEncryptString(@IMEControlNo)
  35. OR controlNo2 = dbo.FNAEncryptString(@PartnerTransactionId)
  36. IF @TransactionId IS NULL
  37. BEGIN
  38. EXEC SW_PROC_ERROR_HANDLER @ErrorCode = 101, @ErrorMessage = 'Invalid transaction details!', @Id = NULL;
  39. RETURN;
  40. END
  41. IF @Status = 'Hold' AND @PayStatus = 'UNPAID'
  42. SELECT @FinalStatus = 'Hold', @StatusMessage = 'Transaction is waiting for approval!'
  43. ELSE
  44. SELECT @FinalStatus = @Status, @StatusMessage = 'Transaction is in '+@Status+' and is waiting for approval!'
  45. EXEC SW_PROC_ERROR_HANDLER @ErrorCode = 100, @ErrorMessage = 'Success', @Id = @IMEControlNo, @Extra = @FinalStatus, @Extra2 = @StatusMessage;
  46. RETURN;
  47. END
  48. IF @Status = 'CANCEL' OR @PayStatus = 'CANCEL'
  49. SELECT @FinalStatus = 'Cancel', @StatusMessage = 'Transaction is cancelled!'
  50. IF @PayStatus = 'Paid' AND @Status <> 'Cancel'
  51. SELECT @FinalStatus = 'Paid', @StatusMessage = 'Transaction is paid!'
  52. IF @Status = 'CancelRequest'
  53. SELECT @FinalStatus = 'CancelRequest', @StatusMessage = 'Transaction is paid!'
  54. IF @Status = 'Payment' AND @PayStatus = 'UNPAID'
  55. SELECT @FinalStatus = 'Unpaid', @StatusMessage = 'Transaction is in unpaid status!'
  56. IF @Status = 'Payment' AND @PayStatus = 'Post'
  57. SELECT @FinalStatus = 'Post', @StatusMessage = 'Transaction is in post status and waiting from thirdparty for final status!'
  58. EXEC SW_PROC_ERROR_HANDLER @ErrorCode = 100, @ErrorMessage = 'Success', @Id = @IMEControlNo, @Extra = @FinalStatus, @Extra2 = @StatusMessage;
  59. RETURN;
  60. END
  61. END
  62. END TRY
  63. BEGIN CATCH
  64. IF @@TRANCOUNT>0
  65. ROLLBACK TRANSACTION
  66. SET @ErrorMsg = 'Exception executing SP: ' + ERROR_MESSAGE()
  67. EXEC SW_PROC_ERROR_HANDLER @ErrorCode = 101, @ErrorMessage = @ErrorMsg, @Id = NULL;
  68. END CATCH