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.

98 lines
3.1 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. --EXEC TXN_CALLBACK_STATUS_SYNC @ControlNo = '80192524052',@RefundCharge='D',@PayoutStatus='Cancel'
  4. ALTER PROCEDURE TXN_CALLBACK_STATUS_SYNC(
  5. @Flag VARCHAR(20) = '',
  6. @PartnerPin VARCHAR(30) = NULL,
  7. @ControlNo VARCHAR(30) = NULL,
  8. @TranId VARCHAR(30) = NULL,
  9. @PartnerId VARCHAR(30) = NULL,
  10. @PayoutStatus VARCHAR(30) = NULL,
  11. @Provider VARCHAR(30) = NULL,
  12. @RefundCharge VARCHAR(10) = NULL
  13. )
  14. AS
  15. SET NOCOUNT ON;
  16. BEGIN
  17. ----@RefundCharge CASE WHEN 'N' THEN REFUND CHARGE WHEN 'D' THEN DIDUCT(NO NEED TO REFUND) CHARGE
  18. IF @RefundCharge IS NULL
  19. SET @RefundCharge='D'
  20. DECLARE @tranStatus VARCHAR(30), @payStatus VARCHAR(30), @ctrlNo VARCHAR(30),@tranType varchar(10)
  21. DECLARE @TEMPTBL TABLE (ERRORCODE VARCHAR(5), MSG VARCHAR(MAX), ID VARCHAR(50))
  22. SELECT @PartnerPin = dbo.FNAEncryptString(@PartnerPin),@ControlNo = dbo.FNAEncryptString(@ControlNo)
  23. IF @TranId IS NULL
  24. BEGIN
  25. SELECT @TranId = id, @ctrlNo = controlNo, @tranStatus = tranStatus, @payStatus = payStatus ,@tranType = sRouteId
  26. FROM dbo.remitTran(nolock)
  27. WHERE controlNo = @PartnerPin AND payStatus = 'Post'
  28. END
  29. IF @TranId IS NULL
  30. BEGIN
  31. SELECT @TranId = id, @ctrlNo = controlNo, @tranStatus = tranStatus, @payStatus = payStatus ,@tranType = sRouteId
  32. FROM dbo.remitTran(nolock)
  33. WHERE controlNo2 = @ControlNo AND payStatus = 'Post'
  34. END
  35. IF @TranId IS NULL
  36. BEGIN
  37. SELECT @TranId = id, @ctrlNo = controlNo, @tranStatus = tranStatus, @payStatus = payStatus ,@tranType = sRouteId
  38. FROM dbo.remitTran(nolock)
  39. WHERE ContNo = @PartnerId AND payStatus = 'Post'
  40. END
  41. SET @ctrlNo = dbo.FNADecryptString(@ctrlNo)
  42. IF @TranId IS NULL
  43. BEGIN
  44. SELECT '1' ,'Transaction Not found', NULL
  45. RETURN
  46. END
  47. IF @payStatus = 'PAID'
  48. BEGIN
  49. SELECT '1' ,'Transaction already paid', NULL
  50. RETURN
  51. END
  52. IF @payStatus = 'CANCEL'
  53. BEGIN
  54. SELECT '1' ,'Transaction already canceled', NULL
  55. RETURN
  56. END
  57. --IF @PayoutStatus = 'POST' AND @payStatus = 'Unpaid'
  58. --BEGIN
  59. -- UPDATE remitTran SET payStatus = 'Post', tranStatus = 'Payment', postedBy = 'system', postedDate = GETDATE(), postedDateLocal = GETUTCDATE()
  60. -- WHERE id = @TranId
  61. -- EXEC proc_errorHandler 0, 'Transaction status synced as post successfully', NULL
  62. --END
  63. IF @PayoutStatus = 'Cancel' AND @payStatus = 'Post' AND @tranStatus = 'Payment'
  64. BEGIN
  65. IF NOT EXISTS(SELECT TOP 1 'A' FROM FastMoneyPro_Account.DBO.tran_master(NOLOCK) WHERE field1 = @ctrlNo)
  66. BEGIN
  67. INSERT INTO @TEMPTBL
  68. EXEC FastMoneyPro_Account.dbo.proc_transactionVoucherEntry @ctrlNo
  69. END
  70. EXEC [proc_errorHandler] 0, 'Transaction cancelled successfully', @TranId
  71. EXEC proc_cancelTran @flag = 'cancel', @user = 'system', @controlNo = @ctrlNo, @cancelReason = 'Transaction Rejected from partner', @refund = @RefundCharge
  72. RETURN
  73. END
  74. IF @PayoutStatus = 'Paid' AND @payStatus = 'POST'
  75. BEGIN
  76. UPDATE remitTran SET payStatus = 'Paid', tranStatus = 'Paid', paidBy = 'system', paidDate = GETDATE()
  77. WHERE id = @TranId
  78. EXEC proc_errorHandler 0, 'Transaction status synced as paid successfully', NULL
  79. RETURN
  80. END
  81. EXEC proc_errorHandler 1,'Transaction Not found For detail', NULL
  82. RETURN
  83. END