USP_EVENTTASK_COPY

Copies tasks from one event to another event.

Parameters

Parameter Parameter Type Mode Description
@SOURCEEVENTID uniqueidentifier IN
@DESTINATIONEVENTID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            create procedure dbo.USP_EVENTTASK_COPY
            (
                @SOURCEEVENTID uniqueidentifier,
                @DESTINATIONEVENTID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier = null
            )
            with execute as caller
            as
                set nocount on;

                -- Cannot copy if the source event does not exist

                if not exists (select ID from dbo.EVENT where ID = @SOURCEEVENTID)
                    raiserror('The source event specified does not exist.',13,1);

                declare @CURRENTDATE datetime;
                set @CURRENTDATE = getdate();

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

                declare @EVENTDATEDIFFINDAYS int;
                set @EVENTDATEDIFFINDAYS = datediff
                (
                    day,
                    (select STARTDATE from dbo.EVENT where ID = @SOURCEEVENTID),
                    (select STARTDATE from dbo.EVENT where ID = @DESTINATIONEVENTID)
                )

                insert into dbo.EVENTTASK
                (
                    [NAME],
                    EVENTID,
                    COMPLETEBYDATE,
                    COMMENT,
                    ADDEDBYID,
                    CHANGEDBYID,
                    DATEADDED,
                    DATECHANGED
                )
                select
                    [NAME],
                    @DESTINATIONEVENTID,
                    dateadd(day, @EVENTDATEDIFFINDAYS, COMPLETEBYDATE),
                    COMMENT,
                    @CHANGEAGENTID,
                    @CHANGEAGENTID,
                    @CURRENTDATE,
                    @CURRENTDATE
                from
                    dbo.EVENTTASK
                where
                    EVENTID = @SOURCEEVENTID;

                return 0;