USP_EVENT_COPYREGISTRATIONINFORMATION

Parameters

Parameter Parameter Type Mode Description
@SOURCEEVENTID uniqueidentifier IN
@TARGETEVENTID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CURRENTDATE datetime IN

Definition

Copy


create procedure dbo.USP_EVENT_COPYREGISTRATIONINFORMATION
(
    @SOURCEEVENTID uniqueidentifier,
    @TARGETEVENTID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @CURRENTDATE datetime = null
)
as
begin
    set nocount on;

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

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

        declare @REGISTRATIONSECTIONS table (OLDID uniqueidentifier, NEWID uniqueidentifier, REGISTRATIONSECTIONCODEID uniqueidentifier, SEQUENCE int);

        insert into @REGISTRATIONSECTIONS (OLDID, NEWID, REGISTRATIONSECTIONCODEID, SEQUENCE)
            select
                ID,
                newID(),
                REGISTRATIONSECTIONCODEID,
                SEQUENCE
            from dbo.PROGRAMEVENTREGISTRATIONSECTION
            where EVENTID = @SOURCEEVENTID;

        insert into dbo.PROGRAMEVENTREGISTRATIONSECTION (ID, PROGRAMID, EVENTID, REGISTRATIONSECTIONCODEID, SEQUENCE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)                    
            select 
                NEWID,
                null,
                @TARGETEVENTID,
                REGISTRATIONSECTIONCODEID,
                SEQUENCE,
                @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE                            
            from @REGISTRATIONSECTIONS;

        insert into dbo.PROGRAMEVENTREGISTRATIONSECTIONREGISTRATIONINFORMATION (ID, PROGRAMEVENTREGISTRATIONSECTIONID, REGISTRATIONINFORMATIONID, SEQUENCE, REQUIRED, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            select
                newID(),
                REGISTRATIONSECTIONS.NEWID,
                PROGRAMEVENTREGISTRATIONSECTIONREGISTRATIONINFORMATION.REGISTRATIONINFORMATIONID,
                PROGRAMEVENTREGISTRATIONSECTIONREGISTRATIONINFORMATION.SEQUENCE,
                PROGRAMEVENTREGISTRATIONSECTIONREGISTRATIONINFORMATION.REQUIRED,
                @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
            from @REGISTRATIONSECTIONS REGISTRATIONSECTIONS
            inner join dbo.PROGRAMEVENTREGISTRATIONSECTIONREGISTRATIONINFORMATION
                on REGISTRATIONSECTIONS.OLDID = PROGRAMEVENTREGISTRATIONSECTIONREGISTRATIONINFORMATION.PROGRAMEVENTREGISTRATIONSECTIONID;
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch    
end