USP_INVITEE_COPY

Copies invitees from one event to another event.

Parameters

Parameter Parameter Type Mode Description
@SOURCEINVITATIONID uniqueidentifier IN
@DESTINATIONEVENTID uniqueidentifier IN
@DESTINATIONINVITATIONID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@INCLUDEDECLINEDINVITEES bit IN
@INCLUDEREGISTEREDINVITEES bit IN

Definition

Copy


            CREATE procedure dbo.USP_INVITEE_COPY
            (
                @SOURCEINVITATIONID uniqueidentifier,
                @DESTINATIONEVENTID uniqueidentifier,
                @DESTINATIONINVITATIONID uniqueidentifier,                            
                @CHANGEAGENTID uniqueidentifier = null,
                @INCLUDEDECLINEDINVITEES bit = 0,
                @INCLUDEREGISTEREDINVITEES bit = 0                
            )
            with execute as caller
            as
                set nocount on;

                -- Cannot copy if the source invitation does not exist

                if not exists (select ID from dbo.INVITATION where ID = @SOURCEINVITATIONID)
                    raiserror('The source invitation specified does not exist.',13,1);

                declare @CURRENTDATE datetime;
                set @CURRENTDATE = getdate();

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

                insert into dbo.INVITEE
                (
                    CONSTITUENTID,
                    EVENTID,
                    INVITATIONID,                            
                    ADDEDBYID,
                    CHANGEDBYID,
                    DATEADDED,
                    DATECHANGED
                )
                select
                    INVITEE.CONSTITUENTID,
                    @DESTINATIONEVENTID,
                    @DESTINATIONINVITATIONID,                                   
                    @CHANGEAGENTID,
                    @CHANGEAGENTID,
                    @CURRENTDATE,
                    @CURRENTDATE
                from
                    dbo.INVITEE 
                    left join dbo.REGISTRANT
                        on INVITEE.CONSTITUENTID = REGISTRANT.CONSTITUENTID
                        and INVITEE.EVENTID = REGISTRANT.EVENTID                                    
                where
                    INVITEE.INVITATIONID = @SOURCEINVITATIONID
                    and
                    ((@INCLUDEDECLINEDINVITEES = 1 or INVITEE.DECLINED = 0)
                    and
                    (@INCLUDEREGISTEREDINVITEES = 1 or REGISTRANT.CONSTITUENTID is null))
                    and not exists 
                    (
                        select
                            ID
                        from
                            dbo.INVITEE INNERINVITEE
                        where
                            INNERINVITEE.CONSTITUENTID = INVITEE.CONSTITUENTID
                            and INNERINVITEE.INVITATIONID = @DESTINATIONINVITATIONID
                    );

                return 0;