USP_DATAFORMTEMPLATE_EDITLOAD_REGISTRANTLODGING

The load 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 used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@TSLONG bigint INOUT Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record.
@EVENTLODGINGID uniqueidentifier INOUT Lodging location
@PHONENUMBER nvarchar(50) INOUT Phone number
@EVENTLODGINGROOMID uniqueidentifier INOUT Room type
@ROOMNUMBER nvarchar(10) INOUT Room number
@CONFIRMATIONNUMBER nvarchar(10) INOUT Confirmation number
@CHECKINDATE datetime INOUT Check-in date
@CHECKINTIME UDT_HOURMINUTE INOUT Time
@CHECKOUTDATE datetime INOUT Check-out date
@CHECKOUTTIME UDT_HOURMINUTE INOUT Time
@EVENTID uniqueidentifier INOUT

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_REGISTRANTLODGING
(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @TSLONG bigint = 0 output,
    @EVENTLODGINGID uniqueidentifier = null output,
    @PHONENUMBER nvarchar(50) = null output,
    @EVENTLODGINGROOMID uniqueidentifier = null output,
    @ROOMNUMBER nvarchar(10) = null output,
    @CONFIRMATIONNUMBER nvarchar(10) = null output,
    @CHECKINDATE datetime = null output,
    @CHECKINTIME UDT_HOURMINUTE = null output,
    @CHECKOUTDATE datetime = null output,
    @CHECKOUTTIME UDT_HOURMINUTE = null output,
    @EVENTID uniqueidentifier = null output
)
as

    set nocount on;

    set @DATALOADED = 0
    set @TSLONG = 0

    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
        @DATALOADED = 1,
        @REGISTRANTCANLODGE = 1,
        @REGISTRANTCONSTITUENTID = REGISTRANT.CONSTITUENTID,
        @MAINEVENTID = coalesce(EVENT.MAINEVENTID, EVENT.ID)
    from
        dbo.REGISTRANT
    inner join
        dbo.EVENT on EVENT.ID = REGISTRANT.EVENTID
    where
        REGISTRANT.ID = @ID;

    if @REGISTRANTCANLODGE = 1
    begin
        select
            @EVENTLODGINGID = REGISTRANTLODGING.EVENTLODGINGID,
            @EVENTLODGINGROOMID = EVENTLODGINGROOMINSTANCE.EVENTLODGINGROOMID,
            @PHONENUMBER = REGISTRANTLODGING.PHONENUMBER,
            @ROOMNUMBER = EVENTLODGINGROOMINSTANCE.ROOMNUMBER,
            @CONFIRMATIONNUMBER = REGISTRANTLODGING.CONFIRMATIONNUMBER,
            @CHECKINDATE = REGISTRANTLODGING.CHECKINDATE,
            @CHECKINTIME = REGISTRANTLODGING.CHECKINTIME,
            @CHECKOUTDATE = REGISTRANTLODGING.CHECKOUTDATE,
            @CHECKOUTTIME= REGISTRANTLODGING.CHECKOUTTIME
        from    
            dbo.REGISTRANTLODGING
        left join
            dbo.EVENTLODGINGROOMINSTANCE on EVENTLODGINGROOMINSTANCE.ID = REGISTRANTLODGING.EVENTLODGINGROOMINSTANCEID
        where
            REGISTRANTLODGING.REGISTRANTCONSTITUENTID = @REGISTRANTCONSTITUENTID
            and
            (
                REGISTRANTLODGING.MAINEVENTID = @MAINEVENTID --MAINEVENTID is no longer used, keep it here just in case
                or REGISTRANTLODGING.EVENTID = @MAINEVENTID
            );

        set @EVENTID = @MAINEVENTID;
    end

    return 0;