UFN_REGISTRATION_GETREGISTEREDEVENTSWITHCONFLICTINGTIMINGS
Returns a table of user registered events that conflict with given event timings
Return
| Return Type |
|---|
| table |
Parameters
| Parameter | Parameter Type | Mode | Description |
|---|---|---|---|
| @CONSTITUENTID | uniqueidentifier | IN | |
| @EVENTID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_REGISTRATION_GETREGISTEREDEVENTSWITHCONFLICTINGTIMINGS
(
@CONSTITUENTID as uniqueidentifier,
@EVENTID as uniqueidentifier
)
returns table
as
return
(
select
CONFLICTINGEVENT.ID,
CONFLICTINGEVENT.NAME
from
dbo.EVENT CONFLICTINGEVENT
inner join dbo.EVENT REGISTEREDEVENT on REGISTEREDEVENT.ID = @EVENTID
inner join dbo.REGISTRANT on REGISTRANT.EVENTID = CONFLICTINGEVENT.ID
where
CONFLICTINGEVENT.ID <> @EVENTID
and REGISTRANT.CONSTITUENTID = @CONSTITUENTID
and REGISTRANT.WILLNOTATTEND = 0
and (
( --registered event starts between conflicting event start/end times
DATEDIFF(mi, CONFLICTINGEVENT.STARTDATETIME, REGISTEREDEVENT.STARTDATETIME) > 0 and DATEDIFF(mi, CONFLICTINGEVENT.ENDDATETIME, REGISTEREDEVENT.STARTDATETIME) < 0
)
or
( --registered event ends between conflicting event start/end times
DATEDIFF(mi, CONFLICTINGEVENT.STARTDATETIME, REGISTEREDEVENT.ENDDATETIME) > 0 and DATEDIFF(mi, CONFLICTINGEVENT.ENDDATETIME, REGISTEREDEVENT.ENDDATETIME) < 0
)
or
( --conflicting event starts and ends between registered event start/end times
DATEDIFF(mi, REGISTEREDEVENT.STARTDATETIME, CONFLICTINGEVENT.STARTDATETIME) > 0 and DATEDIFF(mi, REGISTEREDEVENT.ENDDATETIME, CONFLICTINGEVENT.STARTDATETIME) < 0 and DATEDIFF(mi, REGISTEREDEVENT.STARTDATETIME, CONFLICTINGEVENT.ENDDATETIME) > 0 and DATEDIFF(mi, REGISTEREDEVENT.ENDDATETIME, CONFLICTINGEVENT.ENDDATETIME) < 0
)
or
( --registered event starts at the same time as conflicting event
DATEDIFF(mi, CONFLICTINGEVENT.STARTDATETIME, REGISTEREDEVENT.STARTDATETIME) = 0
)
)
)