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.

182 lines
6.5 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_TRANGLO_SYNC_STATUS] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[PROC_TRANGLO_SYNC_STATUS]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[PROC_TRANGLO_SYNC_STATUS] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. ----exec PROC_TRANGLO_SYNC_STATUS @flag = 'status-t',@trxStatus='931',@transId='80129564494',@GTN='G1118179136447',@payoutID='',@payoutStatus=''
  12. ALTER PROC PROC_TRANGLO_SYNC_STATUS
  13. (
  14. @flag VARCHAR(10)
  15. ,@appKey VARCHAR(70) = NULL
  16. ,@date VARCHAR(25) = NULL
  17. ,@fromBalance VARCHAR(20) = NULL
  18. ,@toBalance VARCHAR(20) = NULL
  19. ,@trxStatus VARCHAR(10) = NULL
  20. ,@transId VARCHAR(20) = NULL
  21. ,@GTN VARCHAR(20) = NULL
  22. ,@txCreateDateTime VARCHAR(25) = NULL
  23. ,@txUpdateDateTime VARCHAR(25) = NULL
  24. ,@description VARCHAR(100)= NULL
  25. ,@payoutID VARCHAR(100)= NULL
  26. ,@payoutPin VARCHAR(100)= NULL
  27. ,@payoutStatus VARCHAR(100)= NULL
  28. ,@payoutStatusUpdateTime VARCHAR(25) = NULL
  29. )
  30. AS;
  31. SET NOCOUNT ON;
  32. SET XACT_ABORT ON;
  33. BEGIN TRY
  34. BEGIN
  35. IF @flag = 'status-t'
  36. BEGIN
  37. DECLARE @TRANID BIGINT = NULL, @ENCRYPTEDGTN VARCHAR(30) = DBO.FNAEncryptString(@GTN), @PAYMENTMETHOD VARCHAR(30), @CONTROLNOFORCASH VARCHAR(30)
  38. ,@tranStatus varchar(50),@vPcountry VARCHAR(50)
  39. SELECT @TRANID = ID, @CONTROLNOFORCASH = DBO.FNADecryptString(controlNo), @PAYMENTMETHOD = paymentMethod ,@tranStatus = tranStatus,@vPcountry = pCountry
  40. FROM remitTran (NOLOCK)
  41. WHERE CONTNO = @GTN AND pAgent='224389'
  42. IF @TRANID IS NULL
  43. BEGIN
  44. SELECT @TRANID = ID, @CONTROLNOFORCASH = DBO.FNADecryptString(controlNo), @PAYMENTMETHOD = paymentMethod ,@tranStatus = tranStatus
  45. FROM remitTran (NOLOCK)
  46. WHERE controlNo = @ENCRYPTEDGTN AND pAgent='224389'
  47. END
  48. IF @TRANID IS NULL
  49. BEGIN
  50. SELECT @TRANID = ID, @CONTROLNOFORCASH = DBO.FNADecryptString(controlNo), @PAYMENTMETHOD = paymentMethod ,@tranStatus = tranStatus
  51. FROM remitTran (NOLOCK)
  52. WHERE controlNo = DBO.FNAEncryptString(@transId) AND pAgent='224389'
  53. END
  54. IF @TRANID IS NULL
  55. BEGIN
  56. SELECT @TRANID = ID, @CONTROLNOFORCASH = DBO.FNADecryptString(controlNo), @PAYMENTMETHOD = paymentMethod ,@tranStatus = tranStatus
  57. FROM remitTran (NOLOCK)
  58. WHERE controlNo = DBO.FNAEncryptString(@payoutID) AND pAgent='224389'
  59. END
  60. IF @TRANID IS NULL
  61. BEGIN
  62. SELECT @TRANID = ID, @CONTROLNOFORCASH = DBO.FNADecryptString(controlNo), @PAYMENTMETHOD = paymentMethod ,@tranStatus = tranStatus
  63. FROM remitTran (NOLOCK) WHERE controlNo2 = DBO.FNAEncryptString(@transId) AND pAgent='224389'
  64. END
  65. IF @TRANID IS NULL
  66. BEGIN
  67. EXEC proc_errorHandler 1, 'Transaction not found.', NULL
  68. RETURN
  69. END
  70. IF @tranStatus = 'Cancel'
  71. BEGIN
  72. EXEC proc_errorHandler 1, 'Transaction already been cancelled', NULL
  73. RETURN
  74. END
  75. IF @tranStatus = 'Paid'
  76. BEGIN
  77. EXEC proc_errorHandler 1, 'Transaction already been Paid', NULL
  78. RETURN
  79. END
  80. DECLARE @CustomerId INT,@Mobile varchar(20),@SMSBody VARCHAR(90),@refund char(1)
  81. SELECT @CustomerId = customerId FROM tranSenders (NOLOCK)
  82. WHERE tranId = @TRANID
  83. SELECT @Mobile = mobile FROM customerMaster(NOLOCK) WHERE customerId = @CustomerId
  84. SET @Mobile = REPLACE(@Mobile,'+82','0')
  85. SET @Mobile = REPLACE(@Mobile,'82','0')
  86. --CANCEL TRANSACTION
  87. IF @trxStatus NOT IN ('000', '945', '966', '967', '968', '969','911')
  88. BEGIN
  89. --SET @refund = CASE WHEN @trxStatus IN ('930') THEN 'R' ELSE 'N' END
  90. IF @payoutStatus = 'Cancelled' AND @PAYMENTMETHOD = 'CASH PAYMENT'
  91. BEGIN
  92. IF LEN(@Mobile)=11
  93. BEGIN
  94. SET @SMSBody = 'Your transaction is rejected,please resend transaction with correct account details.GME'
  95. exec proc_CallToSendSMS @FLAG = 'I',@SMSBody= @SMSBody ,@MobileNo=@Mobile
  96. END
  97. SET @refund ='N'
  98. EXEC proc_cancelTran @flag = 'cancel', @user = 'system', @controlNo = @CONTROLNOFORCASH, @cancelReason = 'Transaction Rejected. Incorrect beneficiary details', @refund = @refund
  99. END
  100. RETURN
  101. END
  102. ELSE IF @trxStatus = '000'
  103. BEGIN
  104. IF @PAYMENTMETHOD = 'CASH PAYMENT'
  105. BEGIN
  106. IF @vPcountry = 'Cambodia'
  107. SET @payoutID = @payoutPin
  108. IF @CONTROLNOFORCASH <> @payoutID
  109. BEGIN
  110. IF EXISTS(SELECT 'A' FROM FastMoneyPro_Account.DBO.tran_master(NOLOCK) WHERE FIELD1 = @GTN AND field2 = 'Remittance Voucher' and acc_num = '771345592')
  111. BEGIN
  112. UPDATE FastMoneyPro_Account.DBO.tran_master SET FIELD1 = @payoutID WHERE FIELD1 = @GTN AND field2 = 'Remittance Voucher'
  113. END
  114. UPDATE remitTran SET
  115. controlNo = DBO.FNAEncryptString(@payoutID),
  116. controlNo2 = DBO.FNAEncryptString(@transId),
  117. ContNo = @GTN
  118. WHERE ID = @TRANID AND pAgent='224389'
  119. IF LEN(@Mobile)=11
  120. BEGIN
  121. SET @SMSBody = 'Please provide GME PIN number for your transaction as '+@payoutID+'. GME'
  122. exec proc_CallToSendSMS @FLAG = 'I',@SMSBody= @SMSBody ,@MobileNo=@Mobile
  123. END
  124. END
  125. IF @payoutStatus <> 'Claimed'
  126. BEGIN
  127. UPDATE remitTran SET payStatus = 'Post', postedBy = 'system', postedDate = getdate(), postedDateLocal = GETUTCDATE()
  128. WHERE id = @TRANID AND pAgent='224389'
  129. END
  130. IF @payoutStatus = 'Claimed'
  131. BEGIN
  132. UPDATE remitTran SET payStatus = 'Paid', tranStatus = 'Paid', paidBy = 'system', paidDate = GETDATE() WHERE id = @TRANID AND pAgent='224389'
  133. IF @vPcountry = 'Philippines'
  134. BEGIN
  135. IF LEN(@Mobile)=11
  136. BEGIN
  137. SET @SMSBody = 'Your GME transaction '+@CONTROLNOFORCASH+' is successfully paid to the receiver.'
  138. exec proc_CallToSendSMS @FLAG = 'I',@SMSBody= @SMSBody ,@MobileNo=@Mobile
  139. END
  140. END
  141. END
  142. END
  143. ELSE IF @PAYMENTMETHOD = 'BANK DEPOSIT'
  144. BEGIN
  145. UPDATE remitTran SET payStatus = 'Paid', tranStatus = 'Paid', paidBy = 'system', paidDate = GETDATE()
  146. WHERE id = @TRANID AND pAgent='224389'
  147. IF @vPcountry = 'Philippines'
  148. BEGIN
  149. IF LEN(@Mobile)=11
  150. BEGIN
  151. SET @SMSBody = 'Your GME transaction '+@CONTROLNOFORCASH+' is successfully credited to beneficiary account.'
  152. exec proc_CallToSendSMS @FLAG = 'I',@SMSBody= @SMSBody ,@MobileNo=@Mobile
  153. END
  154. END
  155. END
  156. END
  157. EXEC proc_errorHandler 0, 'Status update successfully!', NULL
  158. END
  159. END
  160. END TRY
  161. BEGIN CATCH
  162. IF @@TRANCOUNT <> 0
  163. ROLLBACK TRANSACTION;
  164. DECLARE @errorMessage VARCHAR(MAX);
  165. SET @errorMessage = ERROR_MESSAGE();
  166. EXEC proc_errorHandler 1, @errorMessage, NULL;
  167. END CATCH;