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
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
|