USP_DATAFORMTEMPLATE_EDITLOAD_RESERVATIONRATESCALE

The load procedure used by the edit dataform template "Reservation Rate Scale 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.
@INITIALRATESCALEID uniqueidentifier INOUT
@RATESCALEID uniqueidentifier INOUT Flat rate scale
@RATESCALEPRICES xml INOUT

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_RESERVATIONRATESCALE
                (
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @TSLONG bigint = 0 output,
                    @INITIALRATESCALEID uniqueidentifier = null output,
                    @RATESCALEID uniqueidentifier = null output,
                    @RATESCALEPRICES xml = null output
                )
                as
                    set nocount on;

                    set @DATALOADED = 0
                    set @TSLONG = 0

                    select
                        @DATALOADED = 1,
                        @TSLONG = TSLONG,
                        @RATESCALEID = RATESCALEID
                    from dbo.RESERVATIONRATESCALE
                    where ID = @ID

                    if @DATALOADED = 1
                    begin
                        set @INITIALRATESCALEID = @RATESCALEID

                        declare @TOTALVISITORS smallint
                        select
                            @TOTALVISITORS = isnull(sum(QUANTITY),0)
                        from dbo.ITINERARYATTENDEE
                        inner join dbo.ITINERARY on
                            ITINERARY.ID = ITINERARYATTENDEE.ITINERARYID
                        where ITINERARY.RESERVATIONID = @ID

                        set @RATESCALEPRICES = (
                            select
                                RATESCALEID,
                                AMOUNT,
                                GROUPMINIMUM,
                                GROUPMAXIMUM,
                                USEPERTICKETAFTERMAX
                            from
                                dbo.RATESCALEPRICE
                                inner join dbo.RATESCALE on RATESCALE.ID = RATESCALEPRICE.RATESCALEID
                            where
                                @TOTALVISITORS >= GROUPMINIMUM and
                                (
                                    @TOTALVISITORS <= GROUPMAXIMUM or
                                    GROUPMAXIMUM = -1
                                )
                            for xml raw('ITEM'), type, elements, root('RATESCALEPRICES'), binary base64
                        );
                    end

                    return 0;