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.
 
 
 

99 lines
3.1 KiB

USE [FastMoneyPro_Remit]
GO
--EXEC TXN_CALLBACK_STATUS_SYNC @ControlNo = '80192524052',@RefundCharge='D',@PayoutStatus='Cancel'
ALTER PROCEDURE TXN_CALLBACK_STATUS_SYNC(
@Flag VARCHAR(20) = '',
@PartnerPin VARCHAR(30) = NULL,
@ControlNo VARCHAR(30) = NULL,
@TranId VARCHAR(30) = NULL,
@PartnerId VARCHAR(30) = NULL,
@PayoutStatus VARCHAR(30) = NULL,
@Provider VARCHAR(30) = NULL,
@RefundCharge VARCHAR(10) = NULL
)
AS
SET NOCOUNT ON;
BEGIN
----@RefundCharge CASE WHEN 'N' THEN REFUND CHARGE WHEN 'D' THEN DIDUCT(NO NEED TO REFUND) CHARGE
IF @RefundCharge IS NULL
SET @RefundCharge='D'
DECLARE @tranStatus VARCHAR(30), @payStatus VARCHAR(30), @ctrlNo VARCHAR(30),@tranType varchar(10)
DECLARE @TEMPTBL TABLE (ERRORCODE VARCHAR(5), MSG VARCHAR(MAX), ID VARCHAR(50))
SELECT @PartnerPin = dbo.FNAEncryptString(@PartnerPin),@ControlNo = dbo.FNAEncryptString(@ControlNo)
IF @TranId IS NULL
BEGIN
SELECT @TranId = id, @ctrlNo = controlNo, @tranStatus = tranStatus, @payStatus = payStatus ,@tranType = sRouteId
FROM dbo.remitTran(nolock)
WHERE controlNo = @PartnerPin AND payStatus = 'Post'
END
IF @TranId IS NULL
BEGIN
SELECT @TranId = id, @ctrlNo = controlNo, @tranStatus = tranStatus, @payStatus = payStatus ,@tranType = sRouteId
FROM dbo.remitTran(nolock)
WHERE controlNo2 = @ControlNo AND payStatus = 'Post'
END
IF @TranId IS NULL
BEGIN
SELECT @TranId = id, @ctrlNo = controlNo, @tranStatus = tranStatus, @payStatus = payStatus ,@tranType = sRouteId
FROM dbo.remitTran(nolock)
WHERE ContNo = @PartnerId AND payStatus = 'Post'
END
SET @ctrlNo = dbo.FNADecryptString(@ctrlNo)
IF @TranId IS NULL
BEGIN
SELECT '1' ,'Transaction Not found', NULL
RETURN
END
IF @payStatus = 'PAID'
BEGIN
SELECT '1' ,'Transaction already paid', NULL
RETURN
END
IF @payStatus = 'CANCEL'
BEGIN
SELECT '1' ,'Transaction already canceled', NULL
RETURN
END
--IF @PayoutStatus = 'POST' AND @payStatus = 'Unpaid'
--BEGIN
-- UPDATE remitTran SET payStatus = 'Post', tranStatus = 'Payment', postedBy = 'system', postedDate = GETDATE(), postedDateLocal = GETUTCDATE()
-- WHERE id = @TranId
-- EXEC proc_errorHandler 0, 'Transaction status synced as post successfully', NULL
--END
IF @PayoutStatus = 'Cancel' AND @payStatus = 'Post' AND @tranStatus = 'Payment'
BEGIN
IF NOT EXISTS(SELECT TOP 1 'A' FROM FastMoneyPro_Account.DBO.tran_master(NOLOCK) WHERE field1 = @ctrlNo)
BEGIN
INSERT INTO @TEMPTBL
EXEC FastMoneyPro_Account.dbo.proc_transactionVoucherEntry @ctrlNo
END
EXEC [proc_errorHandler] 0, 'Transaction cancelled successfully', @TranId
EXEC proc_cancelTran @flag = 'cancel', @user = 'system', @controlNo = @ctrlNo, @cancelReason = 'Transaction Rejected from partner', @refund = @RefundCharge
RETURN
END
IF @PayoutStatus = 'Paid' AND @payStatus = 'POST'
BEGIN
UPDATE remitTran SET payStatus = 'Paid', tranStatus = 'Paid', paidBy = 'system', paidDate = GETDATE()
WHERE id = @TranId
EXEC proc_errorHandler 0, 'Transaction status synced as paid successfully', NULL
RETURN
END
EXEC proc_errorHandler 1,'Transaction Not found For detail', NULL
RETURN
END