USP_PROGRAMEVENT_COPYPROGRAMPREFERENCES
Inserts preregistered program preferences into event preferences.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | |
@EVENTCONFLICTID | uniqueidentifier | IN | |
@PROGRAMID | uniqueidentifier | IN | |
@PREFERENCEGROUPID | uniqueidentifier | IN | |
@PREFERENCEGROUPNAME | nvarchar(100) | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTDATE | datetime | IN |
Definition
Copy
CREATE procedure dbo.USP_PROGRAMEVENT_COPYPROGRAMPREFERENCES
(
@EVENTID uniqueidentifier = null,
@EVENTCONFLICTID uniqueidentifier = null,
@PROGRAMID uniqueidentifier = null,
@PREFERENCEGROUPID uniqueidentifier = null,
@PREFERENCEGROUPNAME nvarchar(100) = null,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTDATE datetime = null
)
as
begin
set nocount on;
begin try
if exists (select 1 from dbo.PROGRAM where @PROGRAMID = ID and ISPREREGISTERED = 1)
begin
if @CURRENTDATE is null
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @EVENTCONFLICTID is not null
begin
-- grab all of these thingses
declare @PREFERENCESGROUPCONFLICTTABLE table (OLDID uniqueidentifier, NEWID uniqueidentifier, NAME nvarchar(100));
insert into @PREFERENCESGROUPCONFLICTTABLE
select ID,
newid(),
NAME
from dbo.PREFERENCEGROUPCONFLICT
where EVENTCONFLICTID = @EVENTCONFLICTID
insert into dbo.EVENTPREFERENCEGROUP
(
ID,
EVENTID,
NAME,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select
NEWID,
@EVENTID,
NAME,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from @PREFERENCESGROUPCONFLICTTABLE
insert into dbo.EVENTPREFERENCE
(
ID,
NAME,
SEQUENCE,
EVENTPREFERENCEGROUPID,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select newid(),
PC.NAME,
PC.SEQUENCE,
PGT.NEWID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.PREFERENCECONFLICT PC
inner join @PREFERENCESGROUPCONFLICTTABLE PGT
on PGT.OLDID = PC.PREFERENCEGROUPCONFLICTID
end
else
if @PREFERENCEGROUPID is not null
begin
declare @ID uniqueidentifier;
set @ID = newid();
insert into dbo.EVENTPREFERENCEGROUP
(
ID,
EVENTID,
NAME,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
values
(
@ID,
@EVENTID,
@PREFERENCEGROUPNAME,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
)
insert into dbo.EVENTPREFERENCE
(
ID,
NAME,
SEQUENCE,
EVENTPREFERENCEGROUPID,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select newid(),
EP.NAME,
EP.SEQUENCE,
@ID,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.EVENTPREFERENCE EP
inner join EVENTPREFERENCEGROUP EG on EG.ID = EP.EVENTPREFERENCEGROUPID
where EG.ID = @PREFERENCEGROUPID
end
else
begin
declare @PREFERENCESGROUPTABLE table (OLDID uniqueidentifier, NEWID uniqueidentifier, NAME nvarchar(100));
insert into @PREFERENCESGROUPTABLE
select ID,
newid(),
NAME
from dbo.PROGRAMPREFERENCEGROUP
where PROGRAMID = @PROGRAMID
insert into dbo.EVENTPREFERENCEGROUP
(
ID,
EVENTID,
NAME,
ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
)
select
NEWID,
@EVENTID,
NAME,
@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from @PREFERENCESGROUPTABLE
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
end
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
end