USP_DATALIST_EVENTCOORDINATOREVENTS

Parameters

Parameter Parameter Type Mode Description
@INCLUDECOMPLETED bit IN
@DATEFILTER tinyint IN
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy


create procedure dbo.USP_DATALIST_EVENTCOORDINATOREVENTS
(
  @INCLUDECOMPLETED bit = 0,
  @DATEFILTER tinyint = 0,
  @CURRENTAPPUSERID uniqueidentifier = null
)
as
  set nocount on;

  declare @DATE datetime;
  declare @STARTDATE datetime;
  declare @ENDDATE datetime;

  set @DATE = getdate();

  if @DATEFILTER = 0        -- all

    begin
      set @STARTDATE = null;
      set @ENDDATE = null;
    end
  else if @DATEFILTER = 1        -- this week

    begin
      set @STARTDATE = dbo.UFN_DATE_THISWEEK_FIRSTDAY(@DATE, 0);
      set @ENDDATE = dbo.UFN_DATE_THISWEEK_LASTDAY(@DATE, 0);
    end
  else if @DATEFILTER = 2        -- this month

    begin
      set @STARTDATE = dbo.UFN_DATE_THISMONTH_FIRSTDAY(@DATE, 0);
      set @ENDDATE = dbo.UFN_DATE_THISMONTH_LASTDAY(@DATE, 0);
    end
  else if @DATEFILTER = 3        -- this quarter

    begin
      set @STARTDATE = dbo.UFN_DATE_THISQUARTER_FIRSTDAY(@DATE, 0);
      set @ENDDATE = dbo.UFN_DATE_THISQUARTER_LASTDAY(@DATE, 0);
    end
  else if @DATEFILTER = 4        --this calendar year

    begin
      set @STARTDATE = dbo.UFN_DATE_THISCALENDARYEAR_FIRSTDAY(@DATE, 0);
      set @ENDDATE = dbo.UFN_DATE_THISCALENDARYEAR_LASTDAY(@DATE, 0);
    end

  select 
    EVENT.ID,                        
    EVENT.NAME,
    EVENT.STARTDATE,
    EVENT.STARTTIME,
    EVENT.ENDDATE,                        
    EVENT.ENDTIME,
    (select count(ID) from dbo.REGISTRANT where REGISTRANT.EVENTID = EVENT.ID),
    (select sum(coalesce(AMOUNTPAID,0)) from dbo.EVENTEXPENSE where EVENTEXPENSE.EVENTID = EVENT.ID),
    dbo.UFN_EVENT_GETNAME(EVENT.MAINEVENTID)
  from dbo.EVENT                                 
  inner join dbo.EVENTCOORDINATOR on EVENTCOORDINATOR.EVENTID = EVENT.ID
  where
    (
      (@INCLUDECOMPLETED = 1
      or 
      --The "GETEARLIESTTIME" date function has been inlined here for performance (the part with "cast(@DATE as date)")...

      (cast(EVENT.STARTDATE as date) >= cast(getdate() as date))
    )
    and
    (
      (@STARTDATE is null
      or 
      (EVENT.STARTDATE between @STARTDATE and @ENDDATE)
    )                        
    and EVENTCOORDINATOR.CONSTITUENTID = dbo.UFN_CONSTITUENT_GETIDFROMAPPUSERID(@CURRENTAPPUSERID)
  order by EVENT.NAME;

  return 0;