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

GO
use FastMoneyPro_Remit;
GO
CREATE OR ALTER PROC PROC_REMIT_INBOUND_TRANSACTION_STATUS
(
@Flag VARCHAR(20)
, @UserName VARCHAR(80) = NULL
, @AgentId INT = NULL
, @PartnerTransactionId VARCHAR(40) = NULL
, @IMEControlNo VARCHAR(40) = NULL
)
AS;
SET NOCOUNT ON;
SET XACT_ABORT ON;
BEGIN TRY
BEGIN
DECLARE @ErrorMsg VARCHAR(MAX), @TransactionId BIGINT = NULL, @Status VARCHAR(40), @PayStatus VARCHAR(40), @FinalStatus VARCHAR(40), @StatusMessage VARCHAR(200)
IF @Flag = 'STATUS'
BEGIN
SELECT @TransactionId = id
, @Status = tranStatus
, @PayStatus = payStatus
, @IMEControlNo = dbo.decryptDb(controlNo)
FROM remitTran (NOLOCK)
WHERE controlNo = dbo.FNAEncryptString(@IMEControlNo)
OR controlNo2 = dbo.FNAEncryptString(@PartnerTransactionId)
IF @TransactionId IS NULL
BEGIN
SELECT @TransactionId = id
, @Status = tranStatus
, @PayStatus = payStatus
, @IMEControlNo = dbo.decryptDb(controlNo)
FROM remitTranTemp (NOLOCK)
WHERE controlNo = dbo.FNAEncryptString(@IMEControlNo)
OR controlNo2 = dbo.FNAEncryptString(@PartnerTransactionId)
IF @TransactionId IS NULL
BEGIN
EXEC SW_PROC_ERROR_HANDLER @ErrorCode = 101, @ErrorMessage = 'Invalid transaction details!', @Id = NULL;
RETURN;
END
IF @Status = 'Hold' AND @PayStatus = 'UNPAID'
SELECT @FinalStatus = 'Hold', @StatusMessage = 'Transaction is waiting for approval!'
ELSE
SELECT @FinalStatus = @Status, @StatusMessage = 'Transaction is in '+@Status+' and is waiting for approval!'
EXEC SW_PROC_ERROR_HANDLER @ErrorCode = 100, @ErrorMessage = 'Success', @Id = @IMEControlNo, @Extra = @FinalStatus, @Extra2 = @StatusMessage;
RETURN;
END
IF @Status = 'CANCEL' OR @PayStatus = 'CANCEL'
SELECT @FinalStatus = 'Cancel', @StatusMessage = 'Transaction is cancelled!'
IF @PayStatus = 'Paid' AND @Status <> 'Cancel'
SELECT @FinalStatus = 'Paid', @StatusMessage = 'Transaction is paid!'
IF @Status = 'CancelRequest'
SELECT @FinalStatus = 'CancelRequest', @StatusMessage = 'Transaction is paid!'
IF @Status = 'Payment' AND @PayStatus = 'UNPAID'
SELECT @FinalStatus = 'Unpaid', @StatusMessage = 'Transaction is in unpaid status!'
IF @Status = 'Payment' AND @PayStatus = 'Post'
SELECT @FinalStatus = 'Post', @StatusMessage = 'Transaction is in post status and waiting from thirdparty for final status!'
EXEC SW_PROC_ERROR_HANDLER @ErrorCode = 100, @ErrorMessage = 'Success', @Id = @IMEControlNo, @Extra = @FinalStatus, @Extra2 = @StatusMessage;
RETURN;
END
END
END TRY
BEGIN CATCH
IF @@TRANCOUNT>0
ROLLBACK TRANSACTION
SET @ErrorMsg = 'Exception executing SP: ' + ERROR_MESSAGE()
EXEC SW_PROC_ERROR_HANDLER @ErrorCode = 101, @ErrorMessage = @ErrorMsg, @Id = NULL;
END CATCH