USP_EVENTCONFLICT_LOADEDIT
The load procedure used by the edit dataform template "Event Conflict Edit"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@NAME | nvarchar(100) | INOUT | |
@STARTDATE | datetime | INOUT | Date |
@ENDDATE | datetime | INOUT | End date |
@STARTTIME | UDT_HOURMINUTE | INOUT | Start time |
@ENDTIME | UDT_HOURMINUTE | INOUT | End time |
@CONFLICTINGEVENTS | xml | INOUT | Conflicting Events |
@LOCATIONS | xml | INOUT | Location |
@TSLONG | bigint | INOUT | Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record. |
Definition
Copy
CREATE procedure dbo.USP_EVENTCONFLICT_LOADEDIT
(
@ID uniqueidentifier,
@DATALOADED bit=0 output,
@NAME nvarchar(100)=null output,
@STARTDATE datetime=null output,
@ENDDATE datetime=null output,
@STARTTIME dbo.UDT_HOURMINUTE=null output,
@ENDTIME dbo.UDT_HOURMINUTE=null output,
@CONFLICTINGEVENTS xml=null output,
@LOCATIONS xml = null output,
@TSLONG bigint = 0 output
)
as
set nocount on;
declare @EVENTCONFLICTDATA as table
(
LOCATIONID uniqueidentifier
)
insert into @EVENTCONFLICTDATA
select PROGRAMEVENTLOCATION.EVENTLOCATIONID
from dbo.EVENTCONFLICT
inner join PROGRAMEVENTLOCATION on EVENTCONFLICT.ID = PROGRAMEVENTLOCATION.EVENTCONFLICTID
where EVENTCONFLICT.ID = @ID
declare @EDATE datetime;
declare @SDATE datetime;
select @EDATE = ENDDATETIME, @SDATE = STARTDATETIME
from dbo.EVENTCONFLICT
where ID = @ID
set @CONFLICTINGEVENTS =
(
select EVENT.ID,
EVENT.PROGRAMID,
EVENT.NAME,
EVENT.STARTDATE,
EVENT.ENDDATE,
EVENT.STARTTIME,
EVENT.ENDTIME,
dbo.UFN_EVENT_GETLOCATIONNAME(EVENT.ID) as LOCATIONS
from dbo.EVENT
left join dbo.PROGRAM on EVENT.PROGRAMID = PROGRAM.ID
where (event.ID in (select programeventlocation.EVENTID from dbo.PROGRAMEVENTLOCATION inner join @EVENTCONFLICTDATA ECD on ECD.LOCATIONID = PROGRAMEVENTLOCATION.eventlocationid) or EVENT.EVENTLOCATIONID in (select ECD.locationid from @EVENTCONFLICTDATA ecd)) and
(PROGRAM.ISACTIVE = 1 or EVENT.PROGRAMID is null) and
(@SDATE >= EVENT.STARTDATETIME and @SDATE < EVENT.ENDDATETIME) or
(@EDATE > EVENT.STARTDATETIME and @EDATE <= EVENT.ENDDATETIME) or
(@SDATE <= EVENT.STARTDATETIME and @EDATE >= EVENT.ENDDATETIME)
for xml raw ('ITEM'), type, elements, root('CONFLICTINGEVENTS'), BINARY BASE64
)
select @DATALOADED = 1,
@NAME = EVENTCONFLICT.NAME,
@STARTDATE = EVENTCONFLICT.STARTDATE,
@ENDDATE = EVENTCONFLICT.ENDDATE,
@STARTTIME = EVENTCONFLICT.STARTTIME,
@ENDTIME = EVENTCONFLICT.ENDTIME,
@TSLONG = EVENTCONFLICT.TSLONG
from dbo.EVENTCONFLICT
where EVENTCONFLICT.ID=@ID;
set @LOCATIONS = dbo.UFN_PROGRAMEVENTLOCATION_GETEVENTCONFLICTLOCATIONS_TOITEMLISTXML(@ID)
return 0;