USP_DATAFORMTEMPLATE_ADD_EVENTREGISTRATIONINFORMATION

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@EVENTID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@REGISTRATIONINFORMATIONTYPECODE tinyint IN
@REGISTRATIONSECTIONCODEID uniqueidentifier IN
@REGISTRATIONINFORMATIONID uniqueidentifier IN
@REQUIRED bit IN

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_EVENTREGISTRATIONINFORMATION (
    @ID uniqueidentifier = null output,
    @EVENTID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,

    @REGISTRATIONINFORMATIONTYPECODE tinyint = 1, --Question
    @REGISTRATIONSECTIONCODEID uniqueidentifier,
    @REGISTRATIONINFORMATIONID uniqueidentifier,
    @REQUIRED bit = 0
) as
    set nocount on;

    if @ID is null
        set @ID = newid()

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    begin try
        if @REGISTRATIONINFORMATIONTYPECODE = 0 --Announcement
            set @REQUIRED = 0

        declare @PROGRAMEVENTREGISTRATIONSECTIONID uniqueidentifier = (select top 1 ID from dbo.PROGRAMEVENTREGISTRATIONSECTION where (EVENTID = @EVENTID) and (REGISTRATIONSECTIONCODEID = @REGISTRATIONSECTIONCODEID))

        if @PROGRAMEVENTREGISTRATIONSECTIONID is null begin
            declare @MAXSECTIONSEQUENCE int = (select isnull(max(SEQUENCE), 0) from dbo.PROGRAMEVENTREGISTRATIONSECTION where (EVENTID = @EVENTID))

            set @PROGRAMEVENTREGISTRATIONSECTIONID = newid()
            insert into dbo.PROGRAMEVENTREGISTRATIONSECTION (ID, EVENTID, REGISTRATIONSECTIONCODEID, SEQUENCE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED) 
            values (@PROGRAMEVENTREGISTRATIONSECTIONID, @EVENTID, @REGISTRATIONSECTIONCODEID, @MAXSECTIONSEQUENCE + 1, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)                
        end

        declare @MAXITEMSEQUENCE int = (select isnull(max(SEQUENCE), 0) from dbo.PROGRAMEVENTREGISTRATIONSECTIONREGISTRATIONINFORMATION where (PROGRAMEVENTREGISTRATIONSECTIONID = @PROGRAMEVENTREGISTRATIONSECTIONID))

        insert into dbo.PROGRAMEVENTREGISTRATIONSECTIONREGISTRATIONINFORMATION (PROGRAMEVENTREGISTRATIONSECTIONID, REGISTRATIONINFORMATIONID, SEQUENCE, [REQUIRED], ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED) 
        values (@PROGRAMEVENTREGISTRATIONSECTIONID, @REGISTRATIONINFORMATIONID, @MAXITEMSEQUENCE + 1, @REQUIRED, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
    end try

    begin catch
        exec dbo.USP_RAISE_ERROR
        return 1
    end catch

    return 0