USP_DATALIST_RESOURCESCHEDULE

Returns a list of all schedule items for this resource.

Parameters

Parameter Parameter Type Mode Description
@RESOURCEID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@TYPEFILTER tinyint IN Type
@PROGRAMID uniqueidentifier IN Program
@DATERANGE tinyint IN Date range

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_RESOURCESCHEDULE
                (
                    @RESOURCEID uniqueidentifier,
                    @TYPEFILTER tinyint = 0,
                    @PROGRAMID uniqueidentifier = null,
                    @DATERANGE tinyint = 10
                )
                as
                    set nocount on;

                    declare @STARTDATE datetime = null;
                    declare @ENDDATE datetime = null;

                    exec dbo.USP_RESOLVEDATEFILTER @DATERANGE, @STARTDATE output, @ENDDATE output

                    -- Create a return table

                    declare @RESULTS table
                    (
                        EVENTID uniqueidentifier,
                        ITINERARYID uniqueidentifier,
                        NAME nvarchar(100),
                        TYPE nvarchar(100),
                        TYPECODE tinyInt,
                        LOCATION nvarchar(500),
                        CAPACITY nvarchar(50),
                        STARTDATE datetime,
                        STARTTIME UDT_HOURMINUTE,
                        ENDDATE datetime,
                        ENDTIME UDT_HOURMINUTE
                    )

                    -- First process events

                    if @TYPEFILTER = 0 or @TYPEFILTER = 1
                    begin
                        insert into @RESULTS
                        (
                            EVENTID,
                            NAME,
                            TYPE,
                            TYPECODE,
                            LOCATION,
                            CAPACITY,
                            STARTDATE,
                            STARTTIME,
                            ENDDATE,
                            ENDTIME
                        )
                        select 
                            EVENT.ID,
                            EVENT.NAME,
                            'Event',
                            0,
                            dbo.UFN_EVENT_GETLOCATIONNAME(EVENT.ID) as LOCATIONNAME,
                            cast(EVENT.CAPACITY as nvarchar(20)),
                            EVENT.STARTDATE,
                            EVENT.STARTTIME,
                            EVENT.ENDDATE,
                            EVENT.ENDTIME
                        from dbo.EVENTRESOURCE
                        inner join dbo.EVENT on 
                            EVENTRESOURCE.EVENTID = EVENT.ID
                        where 
                            EVENTRESOURCE.RESOURCEID = @RESOURCEID and
                            (@PROGRAMID is null or @PROGRAMID = EVENT.PROGRAMID) and
                            (
                                EVENT.STARTDATE between @STARTDATE and @ENDDATE or
                                EVENT.ENDDATE between @STARTDATE and @ENDDATE or
                                (EVENT.STARTDATE >= @STARTDATE and EVENT.ENDDATE <= @ENDDATE)
                            )
                    end

                    -- Next process itineraries

                    if (@TYPEFILTER = 0 or @TYPEFILTER = 2) and @PROGRAMID is null
                    begin
                        insert into @RESULTS
                        (
                            ITINERARYID,
                            NAME,
                            TYPE,
                            TYPECODE,
                            LOCATION,
                            CAPACITY,
                            STARTDATE,
                            STARTTIME,
                            ENDDATE,
                            ENDTIME
                        )
                        select 
                            ITINERARY.ID,
                            ITINERARY.NAME,
                            'Itinerary',
                            1,
                            '',
                            '',
                            ITINERARY.STARTDATETIME,
                            dbo.UFN_HOURMINUTE_GETFROMDATE(ITINERARY.STARTDATETIME),
                            ITINERARY.ENDDATETIME,
                            dbo.UFN_HOURMINUTE_GETFROMDATE(ITINERARY.ENDDATETIME)
                        from dbo.ITINERARYRESOURCE
                        inner join dbo.ITINERARY on 
                            ITINERARYRESOURCE.ITINERARYID = ITINERARY.ID
                        inner join dbo.SALESORDER on
                            ITINERARY.RESERVATIONID = SALESORDER.ID
                        where 
                            SALESORDER.STATUSCODE <> 5 and
                            ITINERARYRESOURCE.RESOURCEID = @RESOURCEID and
                            exists (
                                select ITINERARYITEM.ID from dbo.ITINERARYITEM 
                                where ITINERARYITEM.ITINERARYID = ITINERARY.ID
                            ) and
                            (
                                (ITINERARY.STARTDATETIME is null and @DATERANGE = 10) or 
                                ITINERARY.STARTDATETIME between @STARTDATE and @ENDDATE or
                                ITINERARY.ENDDATETIME between @STARTDATE and @ENDDATE or
                                (
                                    ITINERARY.STARTDATETIME >= @STARTDATE and 
                                    ITINERARY.ENDDATETIME <= @ENDDATE
                                )
                            )
                    end

                    -- Next process itinerary items

                    if (@TYPEFILTER = 0 or @TYPEFILTER = 3) and @PROGRAMID is null
                    begin
                        insert into @RESULTS
                        (
                            ITINERARYID,
                            NAME,
                            TYPE,
                            TYPECODE,
                            LOCATION,
                            CAPACITY,
                            STARTDATE,
                            STARTTIME,
                            ENDDATE,
                            ENDTIME
                        )
                        select
                            ITINERARY.ID,
                            ITINERARY.NAME + ' - ' + ITINERARYITEM.NAME,
                            'Itinerary item',
                            2,
                            coalesce(EVENTLOCATION.NAME, ''),
                            '',
                            ITINERARYITEM.STARTDATE,
                            ITINERARYITEM.STARTTIME,
                            ITINERARYITEM.ENDDATE,
                            ITINERARYITEM.ENDTIME
                        from dbo.ITINERARYITEMRESOURCE
                        inner join dbo.ITINERARYITEM on 
                            (ITINERARYITEMRESOURCE.ITINERARYITEMID = ITINERARYITEM.ID) and 
                            (ITINERARYITEM.ITEMTYPECODE <> 3)
                        inner join dbo.ITINERARY on 
                            ITINERARYITEM.ITINERARYID = ITINERARY.ID
                        inner join dbo.SALESORDER on
                            ITINERARY.RESERVATIONID = SALESORDER.ID
                        left outer join dbo.EVENTLOCATION on 
                            ITINERARYITEM.EVENTLOCATIONID = EVENTLOCATION.ID
                        where 
                            SALESORDER.STATUSCODE <> 5 and
                            (ITINERARYITEMRESOURCE.RESOURCEID = @RESOURCEID) and
                            (
                                (ITINERARYITEM.STARTDATE between @STARTDATE and @ENDDATE) or
                                (ITINERARYITEM.ENDDATE between @STARTDATE and @ENDDATE) or
                                (
                                    (ITINERARYITEM.STARTDATE >= @STARTDATE) and 
                                    (ITINERARYITEM.ENDDATE <= @ENDDATE)
                                )
                            )
                    end

                    -- Return the results

                    select 
                        EVENTID,
                        ITINERARYID,
                        NAME,
                        TYPE,
                        TYPECODE,
                        LOCATION,
                        CAPACITY,
                        STARTDATE,
                        STARTTIME,
                        ENDDATE,
                        ENDTIME
                    from @RESULTS
                    order by STARTDATE, STARTTIME