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;