USP_DATAFORMTEMPLATE_EDIT_REGISTRANTLODGING

The save procedure used by the edit dataform template "Registrant Lodging Edit Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@EVENTLODGINGID uniqueidentifier IN Lodging location
@PHONENUMBER nvarchar(50) IN Phone number
@EVENTLODGINGROOMID uniqueidentifier IN Room type
@ROOMNUMBER nvarchar(10) IN Room number
@CONFIRMATIONNUMBER nvarchar(10) IN Confirmation number
@CHECKINDATE datetime IN Check-in date
@CHECKINTIME UDT_HOURMINUTE IN Time
@CHECKOUTDATE datetime IN Check-out date
@CHECKOUTTIME UDT_HOURMINUTE IN Time

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REGISTRANTLODGING (
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null
    ,@EVENTLODGINGID uniqueidentifier 
    ,@PHONENUMBER nvarchar(50)
    ,@EVENTLODGINGROOMID uniqueidentifier
    ,@ROOMNUMBER nvarchar(10)
    ,@CONFIRMATIONNUMBER nvarchar(10)
    ,@CHECKINDATE datetime
    ,@CHECKINTIME UDT_HOURMINUTE
    ,@CHECKOUTDATE datetime
    ,@CHECKOUTTIME UDT_HOURMINUTE
)
as

    set nocount on;

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

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    declare @REGISTRANTCANLODGE bit = 0;
    declare @REGISTRANTCONSTITUENTID uniqueidentifier;
    declare @MAINEVENTID uniqueidentifier;

    -- Lodging information is unique to a constituent and a main event coupling, 
    -- not to a registrant record.
    select
        @REGISTRANTCANLODGE = 1,
        @REGISTRANTCONSTITUENTID = REGISTRANT.CONSTITUENTID,
        @MAINEVENTID =
            case    
            when EVENT.MAINEVENTID is null then EVENT.ID
            else EVENT.MAINEVENTID 
            end
    from
        dbo.REGISTRANT
    inner join    
        dbo.EVENT on EVENT.ID = REGISTRANT.EVENTID
    where
        REGISTRANT.ID = @ID;

    if @REGISTRANTCANLODGE = 1
    begin

        declare @REGISTRANTLODGINGID uniqueidentifier;

        select
            @REGISTRANTLODGINGID = ID
        from    
            dbo.REGISTRANTLODGING
        where
            REGISTRANTLODGING.REGISTRANTCONSTITUENTID = @REGISTRANTCONSTITUENTID
            and
            REGISTRANTLODGING.MAINEVENTID = @MAINEVENTID;

        if @REGISTRANTLODGINGID is null
            exec dbo.[USP_REGISTRANTLODGING_ADD] 
                null
                ,@CHANGEAGENTID
                ,@CURRENTDATE
                ,@REGISTRANTCONSTITUENTID
                ,@MAINEVENTID
                ,@PHONENUMBER
                ,@EVENTLODGINGROOMID
                ,@ROOMNUMBER
                ,@CONFIRMATIONNUMBER
                ,@CHECKINDATE
                ,@CHECKINTIME
                ,@CHECKOUTDATE
                ,@CHECKOUTTIME
                ,@EVENTLODGINGID;
        else
            declare @EVENTLODGINGROOMINSTANCEID uniqueidentifier;
            exec dbo.USP_EVENTLODGINGROOMINSTANCE_ADDORUPDATE @ROOMNUMBER, @EVENTLODGINGID, @EVENTLODGINGROOMID,  null, null, @EVENTLODGINGROOMINSTANCEID output, @REGISTRANTLODGINGID;

            update dbo.[REGISTRANTLODGING]
                set
                    [PHONENUMBER] = @PHONENUMBER
                    ,[CONFIRMATIONNUMBER] = @CONFIRMATIONNUMBER
                    ,[CHECKINDATE] = @CHECKINDATE
                    ,[CHECKINTIME] = @CHECKINTIME
                    ,[CHECKOUTDATE] = @CHECKOUTDATE
                    ,[CHECKOUTTIME] = @CHECKOUTTIME
                    ,[CHANGEDBYID] = @CHANGEAGENTID
                    ,[DATECHANGED] = @CURRENTDATE
                    ,[EVENTLODGINGID] = @EVENTLODGINGID
                    ,[EVENTLODGINGROOMINSTANCEID] = @EVENTLODGINGROOMINSTANCEID
                where
                    REGISTRANTLODGING.ID = @REGISTRANTLODGINGID;
    end


return 0;