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