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.
 
 
 

183 lines
6.5 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[PROC_TRANGLO_SYNC_STATUS] Script Date: 7/4/2019 11:35:48 AM ******/
DROP PROCEDURE [dbo].[PROC_TRANGLO_SYNC_STATUS]
GO
/****** Object: StoredProcedure [dbo].[PROC_TRANGLO_SYNC_STATUS] Script Date: 7/4/2019 11:35:48 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
----exec PROC_TRANGLO_SYNC_STATUS @flag = 'status-t',@trxStatus='931',@transId='80129564494',@GTN='G1118179136447',@payoutID='',@payoutStatus=''
ALTER PROC PROC_TRANGLO_SYNC_STATUS
(
@flag VARCHAR(10)
,@appKey VARCHAR(70) = NULL
,@date VARCHAR(25) = NULL
,@fromBalance VARCHAR(20) = NULL
,@toBalance VARCHAR(20) = NULL
,@trxStatus VARCHAR(10) = NULL
,@transId VARCHAR(20) = NULL
,@GTN VARCHAR(20) = NULL
,@txCreateDateTime VARCHAR(25) = NULL
,@txUpdateDateTime VARCHAR(25) = NULL
,@description VARCHAR(100)= NULL
,@payoutID VARCHAR(100)= NULL
,@payoutPin VARCHAR(100)= NULL
,@payoutStatus VARCHAR(100)= NULL
,@payoutStatusUpdateTime VARCHAR(25) = NULL
)
AS;
SET NOCOUNT ON;
SET XACT_ABORT ON;
BEGIN TRY
BEGIN
IF @flag = 'status-t'
BEGIN
DECLARE @TRANID BIGINT = NULL, @ENCRYPTEDGTN VARCHAR(30) = DBO.FNAEncryptString(@GTN), @PAYMENTMETHOD VARCHAR(30), @CONTROLNOFORCASH VARCHAR(30)
,@tranStatus varchar(50),@vPcountry VARCHAR(50)
SELECT @TRANID = ID, @CONTROLNOFORCASH = DBO.FNADecryptString(controlNo), @PAYMENTMETHOD = paymentMethod ,@tranStatus = tranStatus,@vPcountry = pCountry
FROM remitTran (NOLOCK)
WHERE CONTNO = @GTN AND pAgent='224389'
IF @TRANID IS NULL
BEGIN
SELECT @TRANID = ID, @CONTROLNOFORCASH = DBO.FNADecryptString(controlNo), @PAYMENTMETHOD = paymentMethod ,@tranStatus = tranStatus
FROM remitTran (NOLOCK)
WHERE controlNo = @ENCRYPTEDGTN AND pAgent='224389'
END
IF @TRANID IS NULL
BEGIN
SELECT @TRANID = ID, @CONTROLNOFORCASH = DBO.FNADecryptString(controlNo), @PAYMENTMETHOD = paymentMethod ,@tranStatus = tranStatus
FROM remitTran (NOLOCK)
WHERE controlNo = DBO.FNAEncryptString(@transId) AND pAgent='224389'
END
IF @TRANID IS NULL
BEGIN
SELECT @TRANID = ID, @CONTROLNOFORCASH = DBO.FNADecryptString(controlNo), @PAYMENTMETHOD = paymentMethod ,@tranStatus = tranStatus
FROM remitTran (NOLOCK)
WHERE controlNo = DBO.FNAEncryptString(@payoutID) AND pAgent='224389'
END
IF @TRANID IS NULL
BEGIN
SELECT @TRANID = ID, @CONTROLNOFORCASH = DBO.FNADecryptString(controlNo), @PAYMENTMETHOD = paymentMethod ,@tranStatus = tranStatus
FROM remitTran (NOLOCK) WHERE controlNo2 = DBO.FNAEncryptString(@transId) AND pAgent='224389'
END
IF @TRANID IS NULL
BEGIN
EXEC proc_errorHandler 1, 'Transaction not found.', NULL
RETURN
END
IF @tranStatus = 'Cancel'
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been cancelled', NULL
RETURN
END
IF @tranStatus = 'Paid'
BEGIN
EXEC proc_errorHandler 1, 'Transaction already been Paid', NULL
RETURN
END
DECLARE @CustomerId INT,@Mobile varchar(20),@SMSBody VARCHAR(90),@refund char(1)
SELECT @CustomerId = customerId FROM tranSenders (NOLOCK)
WHERE tranId = @TRANID
SELECT @Mobile = mobile FROM customerMaster(NOLOCK) WHERE customerId = @CustomerId
SET @Mobile = REPLACE(@Mobile,'+82','0')
SET @Mobile = REPLACE(@Mobile,'82','0')
--CANCEL TRANSACTION
IF @trxStatus NOT IN ('000', '945', '966', '967', '968', '969','911')
BEGIN
--SET @refund = CASE WHEN @trxStatus IN ('930') THEN 'R' ELSE 'N' END
IF @payoutStatus = 'Cancelled' AND @PAYMENTMETHOD = 'CASH PAYMENT'
BEGIN
IF LEN(@Mobile)=11
BEGIN
SET @SMSBody = 'Your transaction is rejected,please resend transaction with correct account details.GME'
exec proc_CallToSendSMS @FLAG = 'I',@SMSBody= @SMSBody ,@MobileNo=@Mobile
END
SET @refund ='N'
EXEC proc_cancelTran @flag = 'cancel', @user = 'system', @controlNo = @CONTROLNOFORCASH, @cancelReason = 'Transaction Rejected. Incorrect beneficiary details', @refund = @refund
END
RETURN
END
ELSE IF @trxStatus = '000'
BEGIN
IF @PAYMENTMETHOD = 'CASH PAYMENT'
BEGIN
IF @vPcountry = 'Cambodia'
SET @payoutID = @payoutPin
IF @CONTROLNOFORCASH <> @payoutID
BEGIN
IF EXISTS(SELECT 'A' FROM FastMoneyPro_Account.DBO.tran_master(NOLOCK) WHERE FIELD1 = @GTN AND field2 = 'Remittance Voucher' and acc_num = '771345592')
BEGIN
UPDATE FastMoneyPro_Account.DBO.tran_master SET FIELD1 = @payoutID WHERE FIELD1 = @GTN AND field2 = 'Remittance Voucher'
END
UPDATE remitTran SET
controlNo = DBO.FNAEncryptString(@payoutID),
controlNo2 = DBO.FNAEncryptString(@transId),
ContNo = @GTN
WHERE ID = @TRANID AND pAgent='224389'
IF LEN(@Mobile)=11
BEGIN
SET @SMSBody = 'Please provide GME PIN number for your transaction as '+@payoutID+'. GME'
exec proc_CallToSendSMS @FLAG = 'I',@SMSBody= @SMSBody ,@MobileNo=@Mobile
END
END
IF @payoutStatus <> 'Claimed'
BEGIN
UPDATE remitTran SET payStatus = 'Post', postedBy = 'system', postedDate = getdate(), postedDateLocal = GETUTCDATE()
WHERE id = @TRANID AND pAgent='224389'
END
IF @payoutStatus = 'Claimed'
BEGIN
UPDATE remitTran SET payStatus = 'Paid', tranStatus = 'Paid', paidBy = 'system', paidDate = GETDATE() WHERE id = @TRANID AND pAgent='224389'
IF @vPcountry = 'Philippines'
BEGIN
IF LEN(@Mobile)=11
BEGIN
SET @SMSBody = 'Your GME transaction '+@CONTROLNOFORCASH+' is successfully paid to the receiver.'
exec proc_CallToSendSMS @FLAG = 'I',@SMSBody= @SMSBody ,@MobileNo=@Mobile
END
END
END
END
ELSE IF @PAYMENTMETHOD = 'BANK DEPOSIT'
BEGIN
UPDATE remitTran SET payStatus = 'Paid', tranStatus = 'Paid', paidBy = 'system', paidDate = GETDATE()
WHERE id = @TRANID AND pAgent='224389'
IF @vPcountry = 'Philippines'
BEGIN
IF LEN(@Mobile)=11
BEGIN
SET @SMSBody = 'Your GME transaction '+@CONTROLNOFORCASH+' is successfully credited to beneficiary account.'
exec proc_CallToSendSMS @FLAG = 'I',@SMSBody= @SMSBody ,@MobileNo=@Mobile
END
END
END
END
EXEC proc_errorHandler 0, 'Status update successfully!', NULL
END
END
END TRY
BEGIN CATCH
IF @@TRANCOUNT <> 0
ROLLBACK TRANSACTION;
DECLARE @errorMessage VARCHAR(MAX);
SET @errorMessage = ERROR_MESSAGE();
EXEC proc_errorHandler 1, @errorMessage, NULL;
END CATCH;