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;