USP_REGISTRANT_COPY

Copies registrants from one event to another event as invitees.

Parameters

Parameter Parameter Type Mode Description
@SOURCEEVENTID uniqueidentifier IN
@DESTINATIONEVENTID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            create procedure dbo.USP_REGISTRANT_COPY
            (
                @SOURCEEVENTID uniqueidentifier,
                @DESTINATIONEVENTID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier = null
            )
            with execute as caller
            as
                set nocount on;

                -- Cannot copy if the source event does not exist

                if not exists (select ID from dbo.EVENT where ID = @SOURCEEVENTID)
                    raiserror('The source event 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,
                    ADDEDBYID,
                    CHANGEDBYID,
                    DATEADDED,
                    DATECHANGED
                )
                select
                    REGISTRANT.CONSTITUENTID,
                    @DESTINATIONEVENTID,
                    @CHANGEAGENTID,
                    @CHANGEAGENTID,
                    @CURRENTDATE,
                    @CURRENTDATE
                from
                    dbo.REGISTRANT
                where
                    REGISTRANT.EVENTID = @SOURCEEVENTID
                    and REGISTRANT.CONSTITUENTID is not null
                    and not exists 
                    (
                        select
                            ID
                        from
                            dbo.INVITEE
                        where
                            INVITEE.CONSTITUENTID = REGISTRANT.CONSTITUENTID
                            and INVITEE.EVENTID = @DESTINATIONEVENTID
                    );

                return 0;