USP_EVENTCONFLICT_BUILDALLANYWAY
Executes the "Event Conflict:Schedule All" record operation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | Input parameter indicating the ID of the record being deleted. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the delete. |
Definition
Copy
CREATE procedure dbo.USP_EVENTCONFLICT_BUILDALLANYWAY
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as
set nocount on;
declare @PID uniqueidentifier;
select @PID=PROGRAMID
from dbo.EVENTCONFLICT
where ID=@ID;
declare @NUMRECORDS int;
select @NUMRECORDS=COUNT(ID) from dbo.EVENTCONFLICT where PROGRAMID=@PID;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
while @NUMRECORDS > 0
begin
declare @NID uniqueidentifier;
declare @SCHEDULEID uniqueidentifier;
declare @PROGRAMID uniqueidentifier;
declare @NAME nvarchar(100);
declare @DESC nvarchar(500);
declare @CAPACITY int;
declare @EVENTSTARTDATE date;
declare @EVENTENDDATE date;
declare @STARTTIME datetime;
declare @ENDTIME datetime;
declare @STIME dbo.UDT_HOURMINUTE;
declare @ETIME dbo.UDT_HOURMINUTE;
declare @SUPERCEDESPROGRAMPUBLICDESCRIPTION bit;
declare @PUBLICDESCRIPTIONTEXT nvarchar(max);
declare @PUBLICDESCRIPTIONHTML nvarchar(max);
declare @SOURCEEVENTID uniqueidentifier;
select TOP 1
@NID=ID,
@SCHEDULEID=SCHEDULEID,
@PROGRAMID=PROGRAMID,
@NAME=NAME,
@DESC=DESCRIPTION,
@CAPACITY=CAPACITY,
@EVENTSTARTDATE=STARTDATE,
@EVENTENDDATE=ENDDATE,
@STIME=STARTTIME,
@ETIME=ENDTIME,
@SUPERCEDESPROGRAMPUBLICDESCRIPTION = SUPERCEDESPROGRAMPUBLICDESCRIPTION,
@PUBLICDESCRIPTIONTEXT = PUBLICDESCRIPTIONTEXT,
@PUBLICDESCRIPTIONHTML = PUBLICDESCRIPTIONHTML,
@SOURCEEVENTID = SOURCEEVENTID
from dbo.EVENTCONFLICT;
set @STARTTIME=dbo.UFN_DATE_ADDHOURMINUTE(@EVENTSTARTDATE,@STIME);
set @ENDTIME=dbo.UFN_DATE_ADDHOURMINUTE(@EVENTENDDATE,@ETIME);
--1.insert into the event table
declare @EVENTID uniqueidentifier;
exec dbo.USP_EVENT_INSERT @EVENTID output, @SCHEDULEID,@PROGRAMID,@NAME,@DESC,@CAPACITY,@EVENTSTARTDATE,@EVENTENDDATE,@STARTTIME,@ENDTIME,@CHANGEAGENTID,@SUPERCEDESPROGRAMPUBLICDESCRIPTION,@PUBLICDESCRIPTIONTEXT,@PUBLICDESCRIPTIONHTML,@SOURCEEVENTID;
--2.update the event location table
update dbo.PROGRAMEVENTLOCATION
set EVENTID = @EVENTID,
EVENTCONFLICTID = null,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where EVENTCONFLICTID=@NID;
--3.Update the resource table
update dbo.EVENTRESOURCE
set EVENTID=@EVENTID,
EVENTCONFLICTID=null,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where EVENTCONFLICTID=@NID;
--4.Update the staff resource table
update dbo.EVENTSTAFFRESOURCE
set EVENTID=@EVENTID,
EVENTCONFLICTID=null,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where EVENTCONFLICTID=@NID;
exec dbo.USP_PROGRAMEVENT_COPYPROGRAMPREFERENCES @EVENTID, @NID, @PROGRAMID, null, null, @CHANGEAGENTID, @CURRENTDATE;
--4.delete it from the event conflict table.
exec USP_EVENTCONFLICT_DELETEBYID_WITHCHANGEAGENTID @NID, @CHANGEAGENTID;
set @NUMRECORDS -= 1;
end
return 0;