USP_DATALIST_ITINERARYCALENDAR

Returns a list of all itinerary items.

Parameters

Parameter Parameter Type Mode Description
@ITINERARYID uniqueidentifier IN Input parameter indicating the context ID for the data list.

Definition

Copy


            CREATE procedure dbo.USP_DATALIST_ITINERARYCALENDAR(@ITINERARYID uniqueidentifier)
            as
                set nocount on;

                declare @ARRIVALDATE datetime;

                select @ARRIVALDATE = RESERVATION.ARRIVALDATE
                from dbo.ITINERARY
                    inner join dbo.RESERVATION on ITINERARY.RESERVATIONID = RESERVATION.ID
                where ITINERARY.ID = @ITINERARYID

                select ITINERARYITEM.ID,
                       ITINERARYITEM.NAME,
                       ITINERARYITEM.STARTTIME,
                       ITINERARYITEM.ENDTIME,
                       ITINERARYITEM.PROGRAMID,
                       ITINERARYITEM.EVENTID,
                       ITINERARYITEM.NOTES,
                       ITINERARYITEM.STARTDATE,
                       ITINERARYITEM.ENDDATE,
                       ITINERARYITEM.ITEMTYPECODE,
                       case ITINERARYITEM.ITEMTYPECODE when 0 then 'DarkSeaGreen'
                        when 1 then 'CornFlowerBlue'
                        when 2 then 'PaleVioletRed'
                        when 3 then 'DarkRed'
                        else 'Black'
                        end as BACKCOLOR,
                       case ITINERARYITEM.ITEMTYPECODE when 3 then 'White'
                       else 'Black'
                       end as CAPTIONCOLOR,
                       ITINERARYITEM.INVALIDREASON,
                       COALESCE(EVENTLOCATION.NAME, dbo.UFN_EVENT_GETLOCATIONNAME(ITINERARYITEM.EVENTID)) as LOCATION,
                       dbo.UFN_ITINERARYITEMRESOURCE_GETRESOURCESTRING(ITINERARYITEM.ID) as RESOURCES,
                       dbo.UFN_ITINERARYITEMSTAFFRESOURCE_GETSTAFFRESOURCESTRING(ITINERARYITEM.ID) as STAFFRESOURCES,
                       ITINERARYITEM.ITEMTYPE as ITEMTYPE,
                       ITINERARYITEM.INVALIDREASONCODE,
                       case ITINERARYITEM.INVALIDREASONCODE 
                        when 10 then
                            coalesce(stuff((select '; ' + RESOURCE.NAME + ': ' + cast(CONFLICTRESOURCES.QUANTITYNEEDED as nvarchar(50))
                                               from dbo.UFN_EVENTCONFLICT_GETRESOURCESINCONFLICT(ITINERARYITEM.STARTDATETIME,
                                                                                                 ITINERARYITEM.ENDDATETIME,
                                                                                                 dbo.UFN_ITINERARYITEMRESOURCE_GETRESOURCES_TOITEMLISTXML(ITINERARYITEM.ID),
                                                                                                 ITINERARYITEM.ITINERARYID,
                                                                                                 ITINERARYITEM.ID) as CONFLICTRESOURCES 
                                               inner join RESOURCE
                                                   on CONFLICTRESOURCES.RESOURCEID = RESOURCE.ID
                                               for XML PATH('')),1, 2, ''), '')
                        else
                         ''
                       end as RESOURCESINCONFLICT,
                       case  
                        when (ITINERARYITEM.INVALIDREASONCODE = 10) and (not ITINERARYITEM.EVENTLOCATIONID is null) then
                            coalesce(stuff((select ', ' + EVENTLOCATION.NAME 
                                               from dbo.UFN_EVENTCONFLICT_GETLOCATIONSINCONFLICT(ITINERARYITEM.STARTDATETIME,
                                                                                                 ITINERARYITEM.ENDDATETIME,
                                                                                                 '<LOCATIONS><ITEM><LOCATIONID>' + cast(ITINERARYITEM.EVENTLOCATIONID as nvarchar(36)) + '</LOCATIONID></ITEM></LOCATIONS>',
                                                                                                 ITINERARYITEM.ITINERARYID,
                                                                                                 ITINERARYITEM.ID) as CONFLICTLOCATIONS
                                               inner join EVENTLOCATION
                                                   on CONFLICTLOCATIONS.LOCATIONID = EVENTLOCATION.ID
                                               for XML PATH('')),1, 2, ''), '')
                        else
                         ''
                       end as LOCATIONSINCONFLICT,
                       case ITINERARYITEM.INVALIDREASONCODE
                        when 10 then
                            coalesce(stuff((select '; ' + VOLUNTEERTYPE.NAME + ': ' + cast(CONFLICTSTAFFRESOURCES.QUANTITYNEEDED as nvarchar(50))
                                               from dbo.UFN_EVENTCONFLICT_GETSTAFFRESOURCESINCONFLICT(ITINERARYITEM.STARTDATETIME,
                                                                                                        ITINERARYITEM.ENDDATETIME,
                                                                                                        dbo.UFN_ITINERARYITEM_GETSTAFFRESOURCES_TOITEMLISTXML(ITINERARYITEM.ID),
                                                                                                        ITINERARYITEM.ITINERARYID,
                                                                                                        ITINERARYITEM.ID) as CONFLICTSTAFFRESOURCES 
                                               inner join dbo.VOLUNTEERTYPE
                                                   on CONFLICTSTAFFRESOURCES.VOLUNTEERTYPEID = VOLUNTEERTYPE.ID
                                               for XML PATH('')),1, 2, ''), '')
                        else
                         ''
                       end as STAFFRESOURCESINCONFLICT,
                       case when (exists (select ITINERARYITEMSTAFFRESOURCE.ID 
                                            from dbo.ITINERARYITEMSTAFFRESOURCE 
                                            where ITINERARYITEMSTAFFRESOURCE.ITINERARYITEMID = ITINERARYITEM.ID)) then 
                            1 
                        else 
                            0 
                        end as HASSTAFFRESOURCES
                from dbo.ITINERARYITEM
                    left join dbo.EVENTLOCATION on ITINERARYITEM.EVENTLOCATIONID = EVENTLOCATION.ID
                where ITINERARYID = @ITINERARYID