USP_PROCESSOR_BBMSTRANSACTIONSETTLEMENTIMPORT
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@TRANSACTIONS | xml | IN | |
@HASAUTHCODE | bit | IN | |
@TOTALIMPORTTRANSACTIONS | int | IN | |
@DISBURSEMENTID | uniqueidentifier | IN | |
@VENDORID | nvarchar(4000) | IN | |
@FILENAME | nvarchar(100) | IN | |
@DISBURSEMENTDATE | date | IN |
Definition
Copy
CREATE procedure dbo.USP_PROCESSOR_BBMSTRANSACTIONSETTLEMENTIMPORT
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@TRANSACTIONS xml = null,
@HASAUTHCODE bit = null,
@TOTALIMPORTTRANSACTIONS int = null,
@DISBURSEMENTID uniqueidentifier = null,
@VENDORID nvarchar(4000) = null,
@FILENAME nvarchar(100) = null,
@DISBURSEMENTDATE date = null
)
as
set nocount on;
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate();
begin try
insert into dbo.PROCESSORTRANSACTIONSETTLEMENTIMPORT (
ID,
NAME,
HASAUTHCODE,
TOTALIMPORTTRANSACTIONS,
DISBURSEMENTID,
VENDORID,
IMPORTTYPECODE,
FILENAME,
DISBURSEMENTDATE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values (
@ID,
'Processor transaction import - ' + convert(nvarchar(50), getdate(),109),
1,
@TOTALIMPORTTRANSACTIONS,
@DISBURSEMENTID,
isnull(@VENDORID, ''),
1,
@FILENAME,
isnull(@DISBURSEMENTDATE, cast(@CURRENTDATE as date)),
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
insert into dbo.PROCESSORTRANSACTIONSETTLEMENTIMPORTROW
(
ID,
PROCESSORTRANSACTIONSETTLEMENTIMPORTID,
TRANSACTIONDATE,
CARDTYPE,
CARDHOLDERNAME,
CREDITCARDPARTIALNUMBER,
AUTHORIZATIONCODE,
AMOUNT,
ISREFUND,
VENDORID,
MERCHANTACCOUNTID,
FEE,
NETAMOUNT,
TRANSACTIONID,
CURRENCYID,
STATUSCODE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
newid(),
@ID,
T.items.value('(TRANSACTIONDATE)[1]','datetime'),
T.items.value('(CARDTYPE)[1]','nvarchar(50)'),
T.items.value('(CARDHOLDERNAME)[1]','nvarchar(100)'),
T.items.value('(CREDITCARDPARTIALNUMBER)[1]','nvarchar(4)'),
T.items.value('(AUTHORIZATIONCODE)[1]','nvarchar(50)'),
T.items.value('(AMOUNT)[1]','money'),
T.items.value('(ISREFUND)[1]','bit'),
isnull(@VENDORID, ''),
T.items.value('(MERCHANTACCOUNTID)[1]','uniqueidentifier'),
T.items.value('(FEE)[1]','money'),
T.items.value('(NETAMOUNT)[1]','money'),
T.items.value('(TRANSACTIONID)[1]','uniqueidentifier'),
CURRENCY.ID,
case
when T.items.value('(ISFRAUDFEE)[1]','bit') = 1 then 2
when T.items.value('(ISCHARGEBACKREFUND)[1]','bit') = 1 then 3
else 0
end,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
@TRANSACTIONS.nodes('/TRANSACTIONS/ITEM') T(items)
left join dbo.CURRENCY on CURRENCY.ISO4217 = T.items.value('(CURRENCY)[1]','nvarchar(3)');
end try
begin catch
exec dbo.USP_RAISE_ERROR
end catch
return 0;