UFN_EVENTS_GETCONFLICTINGEVENTS
Returns events conflicting with the eventconflict ID.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_EVENTS_GETCONFLICTINGEVENTS
(
@ID uniqueidentifier
)
returns table
as return
(select
EVENT.ID,
EVENT.PROGRAMID,
EVENT.NAME,
EVENT.STARTDATE,
EVENT.ENDDATE,
dbo.UFN_GETEVENT_TIMESPAN(EVENT.ID) as CONFLICTINGEVENTTIMESPAN,
dbo.UFN_EVENT_GETLOCATIONNAME(EVENT.ID) as LOCATIONS
from
dbo.EVENT
inner join dbo.PROGRAM on (EVENT.PROGRAMID = PROGRAM.ID or EVENT.PROGRAMID is null)
where
PROGRAM.ISACTIVE = 1 and
(
(((select STARTTIME from dbo.EVENTCONFLICT where ID=@ID) >= STARTTIME) and ((select STARTTIME from dbo.EVENTCONFLICT where ID=@ID) < ENDTIME)) or
(((select ENDTIME from dbo.EVENTCONFLICT where ID=@ID) > STARTTIME) and ((select ENDTIME from dbo.EVENTCONFLICT where ID=@ID) <= ENDTIME)) or
(((select STARTTIME from dbo.EVENTCONFLICT where ID=@ID) > STARTTIME) and ((select ENDTIME from dbo.EVENTCONFLICT where ID=@ID) <= ENDTIME)) or
(((select STARTTIME from dbo.EVENTCONFLICT where ID=@ID) <= STARTTIME) and ((select ENDTIME from dbo.EVENTCONFLICT where ID=@ID) >= ENDTIME))
)
and STARTDATE=ENDDATE
and STARTDATE in (select STARTDATE from dbo.EVENTCONFLICT where EVENTCONFLICT.ID=@ID)
and ((EVENT.ID in (select A.EVENTID from dbo.PROGRAMEVENTLOCATION A
inner join dbo.PROGRAMEVENTLOCATION B
on A.EVENTLOCATIONID=B.EVENTLOCATIONID
and B.EVENTCONFLICTID=@ID)) or EVENTLOCATIONID in (select EVENTLOCATIONID from dbo.PROGRAMEVENTLOCATION where EVENTCONFLICTID=@ID))
and (EVENT.ID in (select EVENT.ID from dbo.EVENT left join dbo.PROGRAM on EVENT.PROGRAMID=PROGRAM.ID and PROGRAM.ISACTIVE=1))
union
select
EVENT.ID,
EVENT.PROGRAMID,
EVENT.NAME,
EVENT.STARTDATE,
EVENT.ENDDATE,
dbo.UFN_GETEVENT_TIMESPAN(EVENT.ID) as CONFLICTINGEVENTTIMESPAN,
dbo.UFN_EVENT_GETLOCATIONNAME(EVENT.ID) as LOCATIONS
from
dbo.EVENT
inner join dbo.PROGRAM on (EVENT.PROGRAMID = PROGRAM.ID or EVENT.PROGRAMID is null)
where
PROGRAM.ISACTIVE = 1 and
(
(((select STARTTIME from dbo.EVENTCONFLICT where ID=@ID) <= STARTTIME) and ((select ENDTIME from dbo.EVENTCONFLICT where ID=@ID) > STARTTIME)) or
((select STARTTIME from dbo.EVENTCONFLICT where ID=@ID) >= STARTTIME)
)
and STARTDATE < ENDDATE
and STARTDATE in (select STARTDATE from dbo.EVENTCONFLICT where EVENTCONFLICT.ID=@ID)
and ((EVENT.ID in (select A.EVENTID from dbo.PROGRAMEVENTLOCATION A
inner join dbo.PROGRAMEVENTLOCATION B
on A.EVENTLOCATIONID=B.EVENTLOCATIONID
and B.EVENTCONFLICTID=@ID)) or EVENTLOCATIONID in (select EVENTLOCATIONID from dbo.PROGRAMEVENTLOCATION where EVENTCONFLICTID=@ID))
and (EVENT.ID in (select EVENT.ID from dbo.EVENT left join dbo.PROGRAM on EVENT.PROGRAMID=PROGRAM.ID and PROGRAM.ISACTIVE=1))
)