Sunteți pe pagina 1din 3

--71095,'2005865','20171108','153005','16','00','000000039130','-

1','000','923100...511','20171108','3A801','1','','DD','06 Refer to
Customer','1','AUD'
Declare
@BatchNo int = 71095,
@ReferenceNo nvarchar(60) = '2005865',
@TransactionDate nvarchar(60) = '20171108',
@TransactionTime nvarchar(60) = '153005',
@TransactionType nvarchar(60) = '16',
@TransactionSource nvarchar(60) = '00',
@Amount nvarchar(12) = '000000039130',
@BankTransactionID nvarchar(12) = '-1',
@ResponseCode nvarchar(60) = '000',
@AbbreviatedCardNo nvarchar(60) = '923100...511',
@SettlementDate nvarchar(60) = '20171108',
@MerchantID nvarchar(20) = '3A801',
@GatewayTransactionID nvarchar(30) = '1',
@CardExpiryDate nvarchar(60) = '',
@CardType nvarchar(60) = 'DD',
@BankResponse nvarchar(60) = '06 Refer to Customer',
@RefundFlag nvarchar(60) = '1',
@CurrencyCode nvarchar(60) = 'AUD'

DECLARE @vcType nvarchar(20) = 'Gateway', @vcSubType


nvarchar(40)='sp_RevGtw_FeeGateWayReport_Ins'
DECLARE @cUserName nchar(9)='SystemJob', @vcDBName nvarchar(80) = DB_NAME()

DECLARE @nBankTransactionID int = convert(int, @BankTransactionID)


DECLARE @nGatewayTransactionID int = convert(int, @GatewayTransactionID)
--DECLARE @dAmount decimal(18,2) = convert(decimal(18,2), @Amount)
DECLARE @dAmount decimal(18,2) = convert(decimal(18,2), @Amount) / 100

IF EXISTS ( SELECT GWP_ID FROM dbo.RevGtw_FeeGateWayReport


WHERE GWP_Amount = @dAmount AND
( [GWP_BankTransactionID] = @nBankTransactionID OR
[GWP_GatewayTransactionID] = @nGatewayTransactionID )
)
BEGIN
Select 'EXIST!!!'
END

BEGIN TRANSACTION

BEGIN TRY

DECLARE @dtProcess as datetime2(7) = SYSDATETIME()


DECLARE @nStatus tinyint = 0

DECLARE @cTransactionTimeFormatted nchar(6)


SELECT @cTransactionTimeFormatted =
CASE LEN(@TransactionTime)
WHEN 6 THEN @TransactionTime
WHEN 5 THEN '0' + @TransactionTime
WHEN 4 THEN '00'+ @TransactionTime
WHEN 3 THEN '000' + @TransactionTime
WHEN 2 THEN '0000' + @TransactionTime
WHEN 1 THEN '00000' + @TransactionTime
END
DECLARE @dtTransaction datetime2(7) = @TransactionDate + ' ' +
LEFT(@cTransactionTimeFormatted, 2) + ':' +
SUBSTRING(@cTransactionTimeFormatted, 3,2) + ':' +
RIGHT(@cTransactionTimeFormatted, 2)

DECLARE @nTransactionType tinyint = convert(tinyint, @TransactionType)

DECLARE @nTransactionSource tinyint = convert(tinyint, @TransactionSource)

DECLARE @nResponseCode int = convert(int, @ResponseCode)

DECLARE @dtSettlememt date = convert(date, @SettlementDate)

DECLARE @vcMerchantID nvarchar(5) = LEFT(@MerchantID, 5)

DECLARE @bRefundFlag bit = null


IF @RefundFlag <> -1 SET @bRefundFlag = convert(bit, @RefundFlag)

DECLARE @nCurrentID int = 0


SELECT @nCurrentID = CurrencyID FROM RevexMasterParams.dbo.Currency WHERE Code =
@CurrencyCode

Select 'CURRENT ID : ' + Convert(varchar(20),@nCurrentID)


IF @nCurrentID IS NULL SET @nCurrentID = 1

--PP 11/23/2016 add surcharged for creditcards


declare @nSettledAmt as decimal(18,2)
IF @CardType = 'DD'
begin
set @nSettledAmt = @dAmount
end
else
begin
declare @nSurchPer as decimal(18,2) = (Select top(1) Val from
RevGtw_GateWaySettings where Col = 'MerchantCharge')
set @nSettledAmt = @dAmount - (@dAmount * (@nSurchPer/100))
end
---End of change-----

INSERT INTO dbo.RevGtw_FeeGateWayReport


(
[GWP_BatchNo], [GWP_ProcessDate],[GWP_Status],[GWP_Reference],
[GWP_TransactionDate],
[GWP_TransactionType],[GWP_TransactionSource],[GWP_Amount],
[GWP_BankTransactionID],
[GWP_ResponseCode],[GWP_AbbreviatedCardNo],[GWP_SettlementDate],
[GWP_MerchantID],
[GWP_GatewayTransactionID],[GWP_CardExpiryDate],[GWP_CardType],
[GWP_BankResponse],
[GWP_RefundFlag],[GWP_CurrencyID],[GWP_SettledAmount]
)
VALUES
(
@BatchNo, @dtProcess, @nStatus, @ReferenceNo, @dtTransaction,
@nTransactionType, @nTransactionSource, @dAmount, @nBankTransactionID,
@nResponseCode, @AbbreviatedCardNo, @dtSettlememt, @vcMerchantID,
@nGatewayTransactionID, @CardExpiryDate, @CardType, @BankResponse,
@bRefundFlag, @nCurrentID,@nSettledAmt
)

COMMIT TRANSACTION
END TRY

BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION

DECLARE @vcRollbackErr nvarchar(1023) = @BankTransactionID + ':' +


CONVERT(VARCHAR,ERROR_NUMBER()) + ':' + CONVERT(VARCHAR,ERROR_SEVERITY()) + ':'
+
CONVERT(VARCHAR,ERROR_STATE()) + ':' + CONVERT(VARCHAR,ERROR_LINE()) +
':' + ERROR_MESSAGE()
Select @vcRollbackErr
EXEC [RevexMasterParams].[dbo].[sp_Trace_Ins] @vcApplicationName=@vcDBName,
@nAlertLevel=1,
@vcType=@vcType, @vcSubType=@vcSubType, @vcUserName=@cUserName,
@vcMessage='Rollback for Fee Gateway Report Insertion',
@vcMessageExtra=@vcRollbackErr

--RETURN 3
END CATCH

--RETURN 0

S-ar putea să vă placă și