USP_REPORT_AUCTIONDETAILS
Auction data source for the event revenue report.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | |
@STARTDATE | datetime | IN | |
@ENDDATE | datetime | IN | |
@INCLUDESUBEVENTS | bit | IN | |
@CURRENCYCODE | tinyint | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_AUCTIONDETAILS
(
@EVENTID uniqueidentifier = null,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@INCLUDESUBEVENTS bit = 0,
@CURRENCYCODE tinyint = 1
)
as
set nocount on;
begin try
declare @AUCTIONIDS table (ID uniqueidentifier);
declare @SELECTEDCURRENCYID uniqueidentifier;
declare @DECIMALDIGITS tinyint;
declare @ROUNDINGTYPECODE tinyint;
declare @EVENTS table
(
ID uniqueidentifier
)
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
if @CURRENCYCODE = 0
select @SELECTEDCURRENCYID = EVENT.BASECURRENCYID
from dbo.EVENT
where EVENT.ID = @EVENTID
else
set @SELECTEDCURRENCYID = @ORGANIZATIONCURRENCYID;
select
@DECIMALDIGITS = CURRENCY.DECIMALDIGITS,
@ROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE
from dbo.CURRENCY
where CURRENCY.ID = @SELECTEDCURRENCYID;
if @INCLUDESUBEVENTS = 0
begin
insert into @EVENTS
select @EVENTID
end
else begin
insert into @EVENTS
select RELATEDEVENT.ID
from dbo.EVENTHIERARCHY as RELATEDEVENT
inner join dbo.EVENTHIERARCHY as SOURCEEVENT on SOURCEEVENT.ID = @EVENTID
where RELATEDEVENT.HIERARCHYPATH.IsDescendantOf(SOURCEEVENT.HIERARCHYPATH) = 1
end
insert into @AUCTIONIDS
select EVENTAUCTION.ID
from dbo.EVENTAUCTION
where EVENTAUCTION.ID in (select ID from @EVENTS)
--Made changes to handle multiple payments towards single items
declare @RESULTS table
(
EVENTID uniqueidentifier,
EVENTNAME nvarchar(100),
ITEMVALUE money,
PURCHASEPRICE money,
GAINLOSS money
)
declare @EVENTCURSOR_EVENTID uniqueidentifier;
declare EVENTCURSOR cursor local fast_forward
for select ID from @EVENTS
open EVENTCURSOR
fetch next from EVENTCURSOR into @EVENTCURSOR_EVENTID
while @@FETCH_STATUS = 0
begin
with [PURCHASEDITEMS]
as
(
select distinct AUCTIONITEM.ID
from dbo.AUCTIONITEM
inner join dbo.AUCTIONITEMPURCHASE on AUCTIONITEMPURCHASE.AUCTIONITEMID = AUCTIONITEM.ID
where AUCTIONITEM.EVENTAUCTIONID = @EVENTID
),
[PURCHASESPLITS]
as
(
select distinct AUCTIONITEMPURCHASE.PURCHASEID
from dbo.AUCTIONITEMPURCHASE
inner join dbo.AUCTIONITEM on AUCTIONITEM.ID = AUCTIONITEMPURCHASE.AUCTIONITEMID
where AUCTIONITEM.EVENTAUCTIONID = @EVENTID
)
insert into @RESULTS (EVENTID, EVENTNAME, ITEMVALUE, PURCHASEPRICE)
select
EVENT.ID,
EVENT.NAME,
(
select sum ([AUCTIONITEM].VALUEINCURRENCY)
from dbo.UFN_AUCTIONITEM_GETAMOUNTSINCURRENCY_BULK(@SELECTEDCURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE, @EVENTID) [AUCTIONITEM]
inner join [PURCHASEDITEMS] on [PURCHASEDITEMS].ID = AUCTIONITEM.ID
),
(
select sum([SPLITVALUE].AMOUNTINCURRENCY)
from dbo.UFN_REVENUESPLIT_GETAMOUNTINCURRENCY_BULK(@SELECTEDCURRENCYID, @ORGANIZATIONCURRENCYID, @DECIMALDIGITS, @ROUNDINGTYPECODE) as [SPLITVALUE]
inner join [PURCHASESPLITS] on [PURCHASESPLITS].PURCHASEID = [SPLITVALUE].ID
)
from dbo.EVENT
where EVENT.ID = @EVENTID
fetch next from EVENTCURSOR into @EVENTCURSOR_EVENTID
end
close EVENTCURSOR
deallocate EVENTCURSOR
update @RESULTS
set GAINLOSS = PURCHASEPRICE - ITEMVALUE
select
EVENTNAME as NAME,
ITEMVALUE,
PURCHASEPRICE,
GAINLOSS,
1 as NUMBEROFAUCTIONS,
CURRENCYPROPERTIES.ISO4217 [ISOCURRENCYCODE],
CURRENCYPROPERTIES.CURRENCYSYMBOL,
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [CURRENCYSYMBOLDISPLAYSETTINGCODE],
CURRENCYPROPERTIES.DECIMALDIGITS
from @RESULTS
outer apply
dbo.UFN_CURRENCY_GETPROPERTIES(@SELECTEDCURRENCYID) CURRENCYPROPERTIES
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;