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