USP_DATALIST_PROGRAMEVENT

Event List for a specific program

Parameters

Parameter Parameter Type Mode Description
@CONTEXTID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@INCLUDEPASTEVENTS bit IN Include past events

Definition

Copy


            CREATE procedure dbo.USP_DATALIST_PROGRAMEVENT
            (
                @CONTEXTID uniqueidentifier,
                @INCLUDEPASTEVENTS bit = 0
            )
            as
            set nocount on;

            declare @CURRENTDATE date = dbo.UFN_TIMEZONEENTRY_GETSYSTEMDEFAULTDATEFROMUTC(getutcdate());

            declare @LOCATIONCOUNT tinyint;
            select @LOCATIONCOUNT = max(A.LOCCOUNT)
            from (
                select count(PROGRAMEVENTLOCATION.ID) as LOCCOUNT
                from dbo.PROGRAMEVENTLOCATION
                inner join dbo.EVENT on PROGRAMEVENTLOCATION.EVENTID = EVENT.ID
                where EVENT.PROGRAMID = @CONTEXTID
                group by PROGRAMEVENTLOCATION.EVENTID
                ) as A

            if @LOCATIONCOUNT > 1
                begin
                    with LOCATIONS_CTE as (
                        select PROGRAMEVENTLOCATION.EVENTID, 
                                dbo.UDA_BUILDLIST(EVENTLOCATION.NAME) as LOCATIONNAME
                        from dbo.PROGRAMEVENTLOCATION
                        inner join dbo.EVENTLOCATION on PROGRAMEVENTLOCATION.EVENTLOCATIONID = EVENTLOCATION.ID
                        inner join dbo.EVENT on EVENT.ID = PROGRAMEVENTLOCATION.EVENTID
                        where EVENT.PROGRAMID = @CONTEXTID
                        group by PROGRAMEVENTLOCATION.EVENTID
                    )
                    select 
                        EVENT.ID,
                        EVENT.NAME,
                        EVENT.DESCRIPTION,
                        L2.LOCATIONNAME AS LOCATIONNAME, 
                        EVENT.CAPACITY,
                        EVENT.STARTDATE,
                        EVENT.STARTTIME,
                        EVENT.ENDDATE,
                        EVENT.ENDTIME,
                        TICKETCOUNTS.AVAILABILITY,
                        EVENT.STARTDATETIME as RSSPUBLISHDATE
                    from dbo.EVENT
                    inner join dbo.V_PROGRAMEVENT_TICKETCOUNTS as TICKETCOUNTS on TICKETCOUNTS.ID = EVENT.ID
                    left join dbo.EVENTLOCATION on EVENT.EVENTLOCATIONID = EVENTLOCATION.ID
                    left join LOCATIONS_CTE as L2 on EVENT.ID = L2.EVENTID
                    where 
                        EVENT.PROGRAMID = @CONTEXTID and
                        (
                            @INCLUDEPASTEVENTS = 1 or
                            EVENT.STARTDATE >= @CURRENTDATE
                        )
                    order by STARTDATE, STARTTIME, ENDDATE, ENDTIME    
                end
            else
                begin
                    select 
                        EVENT.ID,
                        EVENT.NAME,
                        EVENT.DESCRIPTION,
                        EVENTLOCATION.NAME AS LOCATIONNAME, 
                        EVENT.CAPACITY,
                        EVENT.STARTDATE,
                        EVENT.STARTTIME,
                        EVENT.ENDDATE,
                        EVENT.ENDTIME,
                        TICKETCOUNTS.AVAILABILITY,
                        EVENT.STARTDATETIME as RSSPUBLISHDATE
                    from dbo.EVENT
                    inner join dbo.V_PROGRAMEVENT_TICKETCOUNTS as TICKETCOUNTS on TICKETCOUNTS.ID = EVENT.ID
                    left join dbo.PROGRAMEVENTLOCATION on EVENT.ID = PROGRAMEVENTLOCATION.EVENTID
                    left join dbo.EVENTLOCATION on PROGRAMEVENTLOCATION.EVENTLOCATIONID = EVENTLOCATION.ID
                    where 
                        EVENT.PROGRAMID = @CONTEXTID and
                        (
                            @INCLUDEPASTEVENTS = 1 or
                            EVENT.STARTDATE >= @CURRENTDATE
                        )
                    order by STARTDATE, STARTTIME, ENDDATE, ENDTIME
                end