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