USP_DATALIST_EVENTCONFLICTS
This datalist returns the scheduling conflicts for the program.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PROGRAMID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
@SHOWUNCONFLICTED | bit | IN | Only show events which no longer conflict |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_EVENTCONFLICTS
(
@PROGRAMID uniqueidentifier,
@SHOWUNCONFLICTED bit = 0
)
as
set nocount on;
declare @LASTSCHEDULEID uniqueidentifier;
select top 1 @LASTSCHEDULEID = SCHEDULEID
from (
select top 1 SCHEDULEID, DATEADDED from dbo.EVENT order by DATEADDED desc
union all
select top 1 SCHEDULEID, DATEADDED from dbo.EVENTCONFLICT order by DATEADDED desc
) as SHEDULEIDS
order by DATEADDED desc;
declare @RETURNTABLE table
(
ID uniqueidentifier,
CONFLICTCOUNT int,
LOCATIONCONFLICTCOUNT int,
RESOURCECONFLICTCOUNT int,
STAFFRESOURCECONFLICTCOUNT int,
ALLOWUNDO bit,
ADDEDAT datetime,
EVENTNAME nvarchar(100),
STARTDATE datetime,
EVENTTIMESPAN nvarchar(25),
LOCATIONS nvarchar(500),
RESOURCES nvarchar(500),
STAFFRESOURCES nvarchar(500),
STARTDATETIME datetime,
ENDDATETIME datetime
)
insert into @RETURNTABLE
(
ID,
CONFLICTCOUNT,
LOCATIONCONFLICTCOUNT,
RESOURCECONFLICTCOUNT,
STAFFRESOURCECONFLICTCOUNT,
ALLOWUNDO,
ADDEDAT,
EVENTNAME,
STARTDATE,
EVENTTIMESPAN,
LOCATIONS,
RESOURCES,
STAFFRESOURCES,
STARTDATETIME,
ENDDATETIME
)
select
EVENTCONFLICT.ID,
LOCATIONCONFLICTS.CONFLICTCOUNT + RESOURCECONFLICTS.CONFLICTCOUNT + STAFFRESOURCECONFLICTS.CONFLICTCOUNT,
LOCATIONCONFLICTS.CONFLICTCOUNT,
RESOURCECONFLICTS.CONFLICTCOUNT,
STAFFRESOURCECONFLICTS.CONFLICTCOUNT,
case SCHEDULEID
when @LASTSCHEDULEID then 1
else 0
end as ALLOWUNDO,
convert(smalldatetime, EVENTCONFLICT.DATEADDED) as ADDEDAT,
EVENTCONFLICT.NAME as EVENTNAME,
EVENTCONFLICT.STARTDATE,
dbo.UFN_HOURMINUTE_DISPLAYTIME(EVENTCONFLICT.STARTTIME) + ' - ' + dbo.UFN_HOURMINUTE_DISPLAYTIME(EVENTCONFLICT.ENDTIME) as EVENTTIMESPAN,
dbo.UFN_EVENTCONFLICT_GETLOCATIONNAME(EVENTCONFLICT.ID) as LOCATIONS,
dbo.UFN_EVENTCONFLICT_GETRESOURCESTRING(EVENTCONFLICT.ID) as EVENTRESOURCES,
dbo.UFN_EVENTCONFLICT_GETSTAFFRESOURCESTRING(EVENTCONFLICT.ID) as EVENTSTAFFRESOURCES,
EVENTCONFLICT.STARTDATETIME,
EVENTCONFLICT.ENDDATETIME
from
dbo.EVENTCONFLICT
outer apply (
select count(distinct LOCATIONCONFLICTS.EVENTID) + count(distinct LOCATIONCONFLICTS.ITINERARYITEMID) as CONFLICTCOUNT
from dbo.UFN_EVENTCONFLICT_GETLOCATIONCONFLICTDETAILSBYID(EVENTCONFLICT.STARTDATETIME, EVENTCONFLICT.ENDDATETIME, EVENTCONFLICT.ID, null, null, null, 1, 1) as LOCATIONCONFLICTS
) as LOCATIONCONFLICTS
outer apply (
select count(distinct RESOURCECONFLICTS.EVENTID) + count(distinct RESOURCECONFLICTS.ITINERARYITEMID) + count(distinct RESOURCECONFLICTS.ITINERARYID) as CONFLICTCOUNT
from dbo.UFN_EVENTCONFLICT_GETRESOURCECONFLICTDETAILS(EVENTCONFLICT.STARTDATETIME, EVENTCONFLICT.ENDDATETIME, dbo.UFN_EVENTCONFLICT_GETRESOURCES_TOITEMLISTXML(ID), null, null, null, 1, 1, 1, null) as RESOURCECONFLICTS
) as RESOURCECONFLICTS
outer apply (
select count(distinct STAFFRESOURCECONFLICTS.EVENTID) + count(distinct STAFFRESOURCECONFLICTS.ITINERARYITEMID) + count(distinct STAFFRESOURCECONFLICTS.ITINERARYID) as CONFLICTCOUNT
from dbo.UFN_EVENTCONFLICT_GETSTAFFRESOURCECONFLICTDETAILS(EVENTCONFLICT.STARTDATETIME, EVENTCONFLICT.ENDDATETIME, dbo.UFN_EVENTCONFLICT_GETSTAFFRESOURCES_TOITEMLISTXML(ID), null, null, null, 1, 1, 1, null) as STAFFRESOURCECONFLICTS
) as STAFFRESOURCECONFLICTS
where
PROGRAMID = @PROGRAMID
and (@SHOWUNCONFLICTED = 0 or (LOCATIONCONFLICTS.CONFLICTCOUNT + RESOURCECONFLICTS.CONFLICTCOUNT + STAFFRESOURCECONFLICTS.CONFLICTCOUNT) = 0)
select RETURNTABLE.ID,
RETURNTABLE.CONFLICTCOUNT,
RETURNTABLE.ALLOWUNDO,
RETURNTABLE.ADDEDAT,
RETURNTABLE.EVENTNAME,
RETURNTABLE.STARTDATE,
RETURNTABLE.EVENTTIMESPAN,
coalesce(stuff((case when (RETURNTABLE.LOCATIONCONFLICTCOUNT > 0) then '; Location' else '' end) +
(case when (RETURNTABLE.RESOURCECONFLICTCOUNT > 0) then '; Supply/Equipment resource' else '' end) +
(case when (RETURNTABLE.STAFFRESOURCECONFLICTCOUNT > 0) then '; Staff resource' else '' end), 1, 2, ''), '') as CONFLICTTYPE,
RETURNTABLE.LOCATIONS,
RETURNTABLE.RESOURCES,
RETURNTABLE.STAFFRESOURCES,
case
when RETURNTABLE.CONFLICTCOUNT > 0 then 'RES:lv_spacer'
else 'RES:info'
end as WARNINGIMAGE
from @RETURNTABLE as RETURNTABLE
order by STARTDATETIME