USP_PROGRAMEVENTCONFLICT_INSERTPREFERENCES

Inserts program event preferences into conflict tables.

Parameters

Parameter Parameter Type Mode Description
@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_PROGRAMEVENTCONFLICT_INSERTPREFERENCES
            (
                @EVENTCONFLICTID uniqueidentifier = null,
                @PROGRAMID uniqueidentifier = null,
                @PREFERENCEGROUPID uniqueidentifier = null,
                @PREFERENCEGROUPNAME nvarchar(100) = null,
                @CHANGEAGENTID uniqueidentifier = null,
                @CURRENTDATE datetime = null
            )
            as
            begin
                declare @ID uniqueidentifier = newid();

                if @CURRENTDATE is null
                    set @CURRENTDATE = getdate();

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

                begin try

                    if exists (select 1 from dbo.PROGRAM where @PROGRAMID = ID and ISPREREGISTERED = 1)
                    begin
                        if @PREFERENCEGROUPID is not null
                        begin
                            insert into dbo.PREFERENCEGROUPCONFLICT
                            (
                                ID, 
                                EVENTCONFLICTID, 
                                NAME, 
                                ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
                            )
                            values
                            (
                                @ID,
                                @EVENTCONFLICTID,
                                @PREFERENCEGROUPNAME,
                                @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
                            )

                            insert into dbo.PREFERENCECONFLICT
                            (
                                ID, 
                                NAME, 
                                SEQUENCE,
                                PREFERENCEGROUPCONFLICTID,
                                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.PREFERENCEGROUPCONFLICT
                            (
                                ID, 
                                EVENTCONFLICTID, 
                                NAME, 
                                ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED
                            )
                            select
                                NEWID,
                                @EVENTCONFLICTID,
                                NAME,
                                @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
                            from @PREFERENCESGROUPTABLE

                            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 @PREFERENCESGROUPTABLE PGT
                                on PGT.OLDID = PP.PROGRAMPREFERENCEGROUPID
                        end
                    end
                end try
                begin catch
                    exec dbo.USP_RAISE_ERROR
                    return 1
                end catch    
            end