USP_REPORT_EVENTEXPENSESUMMARY
Expense data source for 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_EVENTEXPENSESUMMARY
(
@EVENTID uniqueidentifier = null,
@STARTDATE datetime = null,
@ENDDATE datetime = null,
@INCLUDESUBEVENTS bit = 0,
@CURRENCYCODE tinyint = 0
)
as
set nocount on;
begin try
declare @SELECTEDCURRENCYID uniqueidentifier;
declare @DECIMALDIGITS tinyint;
declare @ROUNDINGTYPECODE tinyint;
declare @EVENTS table
(
ID uniqueidentifier
)
if @CURRENCYCODE = 0
select @SELECTEDCURRENCYID = EVENT.BASECURRENCYID
from dbo.EVENT
where EVENT.ID = @EVENTID
else
set @SELECTEDCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
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;
select
@DECIMALDIGITS = CURRENCY.DECIMALDIGITS,
@ROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE
from
dbo.CURRENCY
where
CURRENCY.ID = @SELECTEDCURRENCYID;
declare @AMOUNT money = 0
select @AMOUNT = coalesce(sum(EE.AMOUNTPAIDINCURRENCY),0)
from dbo.EVENTEXPENSE
left join dbo.UFN_EVENTEXPENSE_GETINCURRENCY_BULK(@SELECTEDCURRENCYID,dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY(),2, 1) as EE on EE.ID = EVENTEXPENSE.ID
where EVENTEXPENSE.EVENTID in (select ID from @EVENTS)
select
@AMOUNT EXPENSES,
CURRENCYPROPERTIES.ISO4217 [ISOCURRENCYCODE],
CURRENCYPROPERTIES.CURRENCYSYMBOL,
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE [CURRENCYSYMBOLDISPLAYSETTINGCODE],
CURRENCYPROPERTIES.DECIMALDIGITS
from
dbo.UFN_CURRENCY_GETPROPERTIES(@SELECTEDCURRENCYID) CURRENCYPROPERTIES
group by ISO4217, CURRENCYSYMBOL, SYMBOLDISPLAYSETTINGCODE, DECIMALDIGITS
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;