USP_EVENTCONFLICT_BUILDANYWAY

Executes the "Event Conflict:Schedule One" 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_BUILDANYWAY
                    (
                        @ID  uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier=null
                    )
                    as
                        set nocount on;

                        declare @SCHEDULEID uniqueidentifier;
                        declare @PROGRAMID uniqueidentifier;
                        declare @NAME nvarchar(100);
                        declare @DESC nvarchar(500);
                        declare @CAPACITY int;
                        declare @EVENTSTARTDATE datetime;
                        declare @EVENTENDDATE datetime;
                        declare @STARTTIME datetime;
                        declare @ENDTIME datetime;
                        declare @STIME dbo.UDT_HOURMINUTE;
                        declare @ETIME dbo.UDT_HOURMINUTE;
                        declare @CURRENTDATE datetime;
                        declare @SUPERCEDESPROGRAMPUBLICDESCRIPTION bit;
                        declare @PUBLICDESCRIPTIONTEXT nvarchar(max);
                        declare @PUBLICDESCRIPTIONHTML nvarchar(max);
                        declare @SOURCEEVENTID uniqueidentifier;

                        if @CHANGEAGENTID is null 
                            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                        set @CURRENTDATE = getdate();

                        select 
                            @SCHEDULEID = EVENTCONFLICT.SCHEDULEID,
                            @PROGRAMID = EVENTCONFLICT.PROGRAMID,
                            @NAME = EVENTCONFLICT.NAME,
                            @DESC = EVENTCONFLICT.DESCRIPTION,
                            @CAPACITY = EVENTCONFLICT.CAPACITY,
                            @EVENTSTARTDATE = EVENTCONFLICT.STARTDATE,
                            @EVENTENDDATE = EVENTCONFLICT.ENDDATE,
                            @STIME = EVENTCONFLICT.STARTTIME,
                            @ETIME = EVENTCONFLICT.ENDTIME,
                            @SUPERCEDESPROGRAMPUBLICDESCRIPTION = EVENTCONFLICT.SUPERCEDESPROGRAMPUBLICDESCRIPTION,
                            @PUBLICDESCRIPTIONTEXT = EVENTCONFLICT.PUBLICDESCRIPTIONTEXT,
                            @PUBLICDESCRIPTIONHTML = EVENTCONFLICT.PUBLICDESCRIPTIONHTML,
                            @SOURCEEVENTID = EVENTCONFLICT.SOURCEEVENTID
                        from
                            dbo.EVENTCONFLICT
                        where 
                            EVENTCONFLICT.ID = @ID;

                        set @STARTTIME=dbo.UFN_DATE_ADDHOURMINUTE(@EVENTSTARTDATE,@STIME);
                        set @ENDTIME=dbo.UFN_DATE_ADDHOURMINUTE(@EVENTENDDATE,@ETIME);

                        begin
                            --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=@ID;

                            --3.Update the resource table

                            update dbo.EVENTRESOURCE
                            set EVENTID=@EVENTID,
                                EVENTCONFLICTID=null,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where EVENTCONFLICTID=@ID;

                            --4.Update the event staff resource

                            update dbo.EVENTSTAFFRESOURCE
                            set EVENTID=@EVENTID,
                                EVENTCONFLICTID=null,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where EVENTCONFLICTID=@ID;

                            exec dbo.USP_PROGRAMEVENT_COPYPROGRAMPREFERENCES @EVENTID, @ID, @PROGRAMID, null, null, @CHANGEAGENTID, @CURRENTDATE;

                            --4.delete it from the event conflict table.

                            exec USP_EVENTCONFLICT_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;
                        end

                        return 0;