USP_EVENTJOBOCCURRENCES_COPY
Copies all active job occurrences 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_EVENTJOBOCCURRENCES_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 @SOURCEEVENTSTARTDATE datetime;
declare @EVENTDATEDIFFINDAYS int;
declare @DESTINATIONEVENTBASECURRENCYID uniqueidentifier;
select
@SOURCEEVENTSTARTDATE = STARTDATE,
@EVENTDATEDIFFINDAYS = datediff(day, STARTDATE, (select STARTDATE from dbo.EVENT where ID = @DESTINATIONEVENTID))
from dbo.EVENT
where ID = @SOURCEEVENTID;
select
@DESTINATIONEVENTBASECURRENCYID = BASECURRENCYID
from
dbo.EVENT
where
ID = @DESTINATIONEVENTID;
insert into dbo.JOBOCCURRENCE
(
ID,
JOBID,
EVENTID,
DESCRIPTION,
DEPARTMENTCODEID,
LOCATIONCODEID,
TYPECODE,
STARTDATE,
ENDDATE,
STARTMONTHDAY,
ENDMONTHDAY,
STARTTIME,
ENDTIME,
DAYOFWEEKCODE,
VOLUNTEERSNEEDED,
COMMENTS,
ISACTIVE,
SITEID,
ADDEDBYID,
DATEADDED,
CHANGEDBYID,
DATECHANGED,
RECURRENCESTARTDATE,
RECURRENCEENDDATE
)
select
newID(),
JOBID,
@DESTINATIONEVENTID,
DESCRIPTION,
DEPARTMENTCODEID,
LOCATIONCODEID,
TYPECODE,
dateadd(day, @EVENTDATEDIFFINDAYS, STARTDATE),
dateadd(day, @EVENTDATEDIFFINDAYS, ENDDATE),
case TYPECODE
when 1 then dbo.UFN_MONTHDAY_ADDDAYS(STARTMONTHDAY, Year(@SOURCEEVENTSTARTDATE), @EVENTDATEDIFFINDAYS)
else '0000'
end,
case TYPECODE
when 1 then dbo.UFN_MONTHDAY_ADDDAYS(ENDMONTHDAY, Year(@SOURCEEVENTSTARTDATE), @EVENTDATEDIFFINDAYS) -- recurring
else '0000'
end,
STARTTIME,
ENDTIME,
DAYOFWEEKCODE,
VOLUNTEERSNEEDED,
COMMENTS,
ISACTIVE,
SITEID,
@CHANGEAGENTID,
@CURRENTDATE,
@CHANGEAGENTID,
@CURRENTDATE,
RECURRENCESTARTDATE,
RECURRENCEENDDATE
from
dbo.JOBOCCURRENCE
where
EVENTID = @SOURCEEVENTID
and ISACTIVE = 1
and JOBOCCURRENCE.BASECURRENCYID = @DESTINATIONEVENTBASECURRENCYID;