USP_SIMPLEDATALIST_QUICKITINERARYPROGRAMEVENT

Returns Daily Admission programs and Events for a given day.

Parameters

Parameter Parameter Type Mode Description
@DATE date IN

Definition

Copy


            CREATE procedure dbo.USP_SIMPLEDATALIST_QUICKITINERARYPROGRAMEVENT
            (
                @DATE date
            )
            as
                set nocount on;

                declare @CURRENTDATE datetime = getdate()

                select 
                    ID as VALUE,
                    NAME as LABEL
                from
                (
                    select top 100
                        ID, 
                        NAME
                    from dbo.PROGRAM
                    where 
                        ISACTIVE = 1 and
                        ISDAILYADMISSION = 1 and
                        dbo.UFN_PROGRAMDAILYADMISSION_ISONSALE(PROGRAM.ID,@CURRENTDATE,3) = 1
                    order by NAME
                ) DA

                union all

                select
                    ID as VALUE,
                    '' as LABEL
                from
                (
                    select top 100
                        EVENT.ID as ID
                    from dbo.EVENT
                    inner join dbo.PROGRAM on
                        EVENT.PROGRAMID = PROGRAM.ID
                    inner join dbo.UFN_EVENT_GETAVAILABILITYWITHEVENTS() as EVENTAVAILABILITY on
                        EVENTAVAILABILITY.EVENTID = EVENT.ID
                    where
                        EVENT.ISACTIVE = 1 and
                        PROGRAM.ISACTIVE = 1 and
                        PROGRAM.ISPREREGISTERED = 0 and
                        EVENT.STARTDATETIME between @DATE and dateadd(day,1,@DATE) and
                        dbo.UFN_EVENT_ISONSALE(EVENT.ID, @CURRENTDATE, 3) = 1 and
                        not exists
                        (
                            select 1 
                            from dbo.ITINERARYITEM
                            inner join dbo.ITINERARY on ITINERARY.ID = ITINERARYITEM.ITINERARYID
                            inner join dbo.SALESORDER on ITINERARY.RESERVATIONID = SALESORDER.ID
                            where SALESORDER.STATUSCODE <> 5 -- MDC - Ignore cancelled

                                and ITINERARYITEM.BLOCKEVENT = 1 
                                and ITINERARYITEM.EVENTID = EVENT.ID
                        ) and
                        EVENTAVAILABILITY.QUANTITY > 0
                    order by EVENT.STARTTIME
                ) SE
                where @DATE is not null