USP_PROGRAMEVENT_COPYPROGRAMEVENTPREFERENCES
Inserts program event preferences
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTS | xml | IN | |
@PROGRAMID | uniqueidentifier | IN | |
@CONFLICTSEXIST | bit | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTDATE | datetime | IN |
Definition
Copy
create procedure dbo.USP_PROGRAMEVENT_COPYPROGRAMEVENTPREFERENCES
(
@EVENTS xml = null,
@PROGRAMID uniqueidentifier = null,
@CONFLICTSEXIST bit = null,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTDATE datetime = null
)
as
begin
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
if @CURRENTDATE is null
set @CURRENTDATE = getdate()
begin try
declare @PREFERENCESGROUPTABLE table (OLDID uniqueidentifier, NEWID uniqueidentifier, NAME nvarchar(100), EVENTID uniqueidentifier);
insert into @PREFERENCESGROUPTABLE
select PP.ID,
newid(),
PP.NAME,
T.events.value('(EVENTID)[1]', 'uniqueidentifier')
from dbo.PROGRAMPREFERENCEGROUP PP
inner join @EVENTS.nodes('/EVENTS/ITEM') T(events) on T.events.value('(PROGRAMID)[1]', 'uniqueidentifier') = PP.PROGRAMID
where PROGRAMID = @PROGRAMID
and T.events.value('(ISCONFLICT)[1]', 'bit') = 0
insert into dbo.EVENTPREFERENCEGROUP
(
ID,
EVENTID,
NAME,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select
PP.NEWID,
EVENTID,
PP.NAME,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from @PREFERENCESGROUPTABLE PP
insert into dbo.EVENTPREFERENCE
(
ID,
NAME,
SEQUENCE,
EVENTPREFERENCEGROUPID,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select newid(),
PP.NAME,
PP.SEQUENCE,
PGT.NEWID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.PROGRAMPREFERENCE PP
inner join @PREFERENCESGROUPTABLE PGT
on PGT.OLDID = PP.PROGRAMPREFERENCEGROUPID
if @CONFLICTSEXIST = 1
begin
declare @PREFERENCESGROUPCONFLICTTABLE table (OLDID uniqueidentifier, NEWID uniqueidentifier, NAME nvarchar(100), CONFLICTID uniqueidentifier);
insert into @PREFERENCESGROUPCONFLICTTABLE
select ID,
newid(),
NAME,
T.events.value('(CONFLICTID)[1]', 'uniqueidentifier')
from dbo.PROGRAMPREFERENCEGROUP PP
inner join @EVENTS.nodes('/EVENTS/ITEM') T(events) on T.events.value('(PROGRAMID)[1]', 'uniqueidentifier') = PP.PROGRAMID
where PROGRAMID = @PROGRAMID
and T.events.value('(ISCONFLICT)[1]', 'bit') = 1
insert into dbo.PREFERENCEGROUPCONFLICT
(
ID,
EVENTCONFLICTID,
NAME,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select
NEWID,
CONFLICTID,
NAME,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from @PREFERENCESGROUPCONFLICTTABLE
insert into dbo.PREFERENCECONFLICT
(
ID,
NAME,
SEQUENCE,
PREFERENCEGROUPCONFLICTID,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select newid(),
PP.NAME,
PP.SEQUENCE,
PGT.NEWID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.PROGRAMPREFERENCE PP
inner join @PREFERENCESGROUPCONFLICTTABLE PGT
on PGT.OLDID = PP.PROGRAMPREFERENCEGROUPID
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
end