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;