USP_AMPROIMPORT_COMMITPURCHASE

Creates or updates a purchase with data from AuctionMaestro Pro.

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier INOUT
@CONSTITUENTID uniqueidentifier IN
@PAYMENTMETHODCODE tinyint IN
@CREDITTYPECODEID uniqueidentifier IN
@AMOUNT money IN
@PAYMENTDATE datetime IN
@POSTDATE datetime IN
@POSTSTATUSCODE tinyint IN
@BATCHNUMBER nvarchar(100) IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN
@EVENTAUCTIONID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_AMPROIMPORT_COMMITPURCHASE
            (
                @REVENUEID uniqueidentifier output,
                @CONSTITUENTID uniqueidentifier,
                @PAYMENTMETHODCODE tinyint,
                @CREDITTYPECODEID uniqueidentifier,
                @AMOUNT money,
                @PAYMENTDATE datetime,
                @POSTDATE datetime,
                @POSTSTATUSCODE tinyint,
                @BATCHNUMBER nvarchar(100),
                @CHANGEAGENTID uniqueidentifier,
                @CHANGEDATE datetime,
                @EVENTAUCTIONID uniqueidentifier = null
            )
            as
            set nocount on;
            begin
                if @REVENUEID is null
                    set @REVENUEID = newid();

                declare @DONOTPOST bit = 0;
                if @POSTSTATUSCODE = 2 
                    set @DONOTPOST = 1;

                declare @PDACCOUNTSYSTEMID uniqueidentifier;

                select top 1 
                    @PDACCOUNTSYSTEMID = PDACCOUNTSYSTEMID
                from dbo.AMPROIMPORTCONFIG 
                where ID = @EVENTAUCTIONID;

                declare @BASECURRENCYID uniqueidentifier;
                declare @TRANSACTIONCURRENCYID uniqueidentifier;
                declare @BASEEXCHANGERATEID uniqueidentifier; 
                declare @BASETOORGANIZATIONEXCHANGERATEID uniqueidentifier;
                declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                declare @ORGANIZATIONCURRENCYID uniqueidentifier;

                select @BASECURRENCYID = CURRENCYSET.BASECURRENCYID
                from dbo.PDACCOUNTSYSTEM
                inner join dbo.CURRENCYSET on CURRENCYSET.ID = PDACCOUNTSYSTEM.CURRENCYSETID
                where PDACCOUNTSYSTEM.ID = @PDACCOUNTSYSTEMID;

                select @TRANSACTIONCURRENCYID = EVENT.BASECURRENCYID
                from dbo.EVENT where EVENT.ID = @EVENTAUCTIONID;

                --TODO This should probably be a configuration option

                select @BASEEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@TRANSACTIONCURRENCYID, @BASECURRENCYID, @PAYMENTDATE, 1, null);

                declare @BASEAMOUNT money;
                declare @ORGANIZATIONAMOUNT money;
                exec dbo.USP_CURRENCY_GETCURRENCYVALUES @AMOUNT, @PAYMENTDATE, @BASECURRENCYID, @BASEEXCHANGERATEID output, @TRANSACTIONCURRENCYID output, @BASEAMOUNT output, @ORGANIZATIONCURRENCYID output, @ORGANIZATIONAMOUNT output, @ORGANIZATIONEXCHANGERATEID output, 1, @BASETOORGANIZATIONEXCHANGERATEID output;

                insert into dbo.REVENUE
                (
                    ID,
                    CONSTITUENTID,
                    DATE,
                    BATCHNUMBER,
                    POSTDATE,
                    DONOTPOST,
                    DONOTRECEIPT,
                    TRANSACTIONTYPECODE,
                    AMOUNT,
                    RECEIPTAMOUNT,
                    ADDEDBYID, 
                    CHANGEDBYID, 
                    DATEADDED, 
                    DATECHANGED,
                    BASECURRENCYID,
                    TRANSACTIONAMOUNT,
                    TRANSACTIONCURRENCYID,
                    BASEEXCHANGERATEID,
                    ORGANIZATIONAMOUNT,
                    ORGANIZATIONEXCHANGERATEID
                )
                values
                (
                    @REVENUEID,
                    @CONSTITUENTID,
                    dbo.UFN_DATE_GETEARLIESTTIME(@PAYMENTDATE),
                    @BATCHNUMBER,
                    dbo.UFN_DATE_GETEARLIESTTIME(@POSTDATE),
                    @DONOTPOST,
                    0,
                    0
                    @BASEAMOUNT
                    @AMOUNT,
                    @CHANGEAGENTID
                    @CHANGEAGENTID
                    @CHANGEDATE
                    @CHANGEDATE,
                    @BASECURRENCYID,
                    @AMOUNT,
                    @TRANSACTIONCURRENCYID,
                    @BASEEXCHANGERATEID,
                    @ORGANIZATIONAMOUNT,
                    @ORGANIZATIONEXCHANGERATEID
                )

                declare @REVENUEPAYMENTMETHODID uniqueidentifier = newid();

                insert into dbo.REVENUEPAYMENTMETHOD
                (
                    ID,
                    REVENUEID,
                    PAYMENTMETHODCODE,
    AMOUNT,
                    ADDEDBYID, 
                    CHANGEDBYID, 
                    DATEADDED, 
                    DATECHANGED
                )
                values
                (
                    @REVENUEPAYMENTMETHODID,
                    @REVENUEID,
                    @PAYMENTMETHODCODE,
                    @BASEAMOUNT,
                    @CHANGEAGENTID
                    @CHANGEAGENTID
                    @CHANGEDATE
                    @CHANGEDATE
                );

                exec dbo.USP_REVENUE_ADDPAYMENTDETAILS
                    @ID = @REVENUEPAYMENTMETHODID
                    @PAYMENTMETHODCODE = @PAYMENTMETHODCODE,
                    @CHECKDATE = '00000000',
                    @CHECKNUMBER = '',
                    @CARDHOLDERNAME = '',
                    @CREDITCARDNUMBER = '',
                    @CREDITTYPECODEID = @CREDITTYPECODEID,
                    @AUTHORIZATIONCODE = '',
                    @EXPIRESON = '00000000',
                    @CHANGEAGENTID = @CHANGEAGENTID,
                    @CURRENTDATE = @CHANGEDATE,
                    @REVENUEAMOUNT = @AMOUNT,
                    @BASECURRENCYID = @BASECURRENCYID,
                    @TRANSACTIONCURRENCYID = @TRANSACTIONCURRENCYID,
                    @BASEEXCHANGERATEID = @BASEEXCHANGERATEID;

                --JamesWill 2010-07-01 WI106281 Add payment original amount 

                exec dbo.USP_PAYMENT_ADDORIGINALAMOUNT @REVENUEID, @CHANGEAGENTID, @CHANGEDATE;

            end