USP_DATALIST_PROGRAMEVENTCALENDARITEM

Displays program event items for the organization's calendar.

Parameters

Parameter Parameter Type Mode Description
@STARTDATE datetime IN Start date
@ENDDATE datetime IN End date

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_PROGRAMEVENTCALENDARITEM
                (
                    @STARTDATE datetime = null,
                    @ENDDATE datetime = null
                )
                as
                    set nocount on;

                    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
                        group by PROGRAMEVENTLOCATION.EVENTID
                    )
                    select
                        EVENT.ID,
                        EVENT.NAME,
                        EVENT.STARTDATE,                        
                        EVENT.ENDDATE,
                        case when LEN(FORMATTEDDESCRIPTION.VALUE) > 50 then
                            LEFT(FORMATTEDDESCRIPTION.VALUE, 50) + '...'
                        else
                            FORMATTEDDESCRIPTION.VALUE
                        end as DESCRIPTION,
                        EVENT.STARTTIME,
                        EVENT.ENDTIME,
                        EVENT.DATEADDED,
                        c.USERNAME as ADDEDBY,
                        L.LOCATIONNAME as LOCATION,
                        EVENT.CAPACITY,
                        TICKETCOUNTS.AVAILABILITY
                    from dbo.EVENT
                        inner join dbo.V_PROGRAMEVENT_TICKETCOUNTS as TICKETCOUNTS on TICKETCOUNTS.ID = EVENT.ID
                        inner join dbo.CHANGEAGENT C on C.ID = EVENT.ADDEDBYID
                        left join LOCATIONS_CTE as L on EVENT.ID = L.EVENTID
                        inner join dbo.PROGRAM on PROGRAM.ID = EVENT.PROGRAMID
                        outer apply (
                            select isnull(EVENT.DESCRIPTION + char(10) + replace(L.LOCATIONNAME, ';', ','), EVENT.DESCRIPTION) as VALUE
                        ) as FORMATTEDDESCRIPTION
                    where
                        EVENT.PROGRAMID is not null and
                        (
                            (@STARTDATE is null and @ENDDATE is null) or
                            (
                                (
                                    (EVENT.STARTDATE <= @ENDDATE) and (@ENDDATE is not null)
                                ) 
                                and
                                (
                                    (EVENT.ENDDATE >= @STARTDATE) and (@STARTDATE is not null)
                                )
                            )
                        ) and PROGRAM.ISACTIVE = 1            
                    order by EVENT.DATEADDED desc