USP_DATAFORMTEMPLATE_EDITLOAD_RATESCALE_PRICES

The load procedure used by the edit dataform template "Rate Scale Prices 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.
@AMOUNT money INOUT Group of any size pays
@ISSINGLEPRICE bit INOUT
@PRICES xml INOUT Prices
@USEPERTICKETAFTERMAX bit INOUT Group over size pays

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_RATESCALE_PRICES
                (
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @TSLONG bigint = 0 output,
                    @AMOUNT money = null output,
                    @ISSINGLEPRICE bit = null output,
                    @PRICES xml = null output,
                    @USEPERTICKETAFTERMAX bit = null output
                )
                as

                    set nocount on;

                    set @DATALOADED = 0
                    set @TSLONG = 0

                    select
                        @DATALOADED = 1,
                        @TSLONG = TSLONG,
                        @USEPERTICKETAFTERMAX = USEPERTICKETAFTERMAX
                    from dbo.RATESCALE
                    where ID = @ID

                    if @DATALOADED = 1
                    begin                    
                        declare @PRICECOUNT smallint
                        select
                            @PRICECOUNT = count(ID)
                        from
                            dbo.RATESCALEPRICE
                        where RATESCALEID = @ID

                        if @PRICECOUNT > 1
                        begin
                            set @ISSINGLEPRICE = 0
                            set @PRICES = (
                                select
                                    ID,
                                    GROUPMAXIMUM as SIZE,
                                    AMOUNT
                                from dbo.RATESCALEPRICE
                                where 
                                    RATESCALEID = @ID and
                                    GROUPMAXIMUM <> -1
                                order by GROUPMAXIMUM            
                                for xml raw('ITEM'),type,elements,root('PRICES'),binary base64
                            )
                        end
                        else
                        begin
                            set @ISSINGLEPRICE = 1
                        end

                        select
                            @AMOUNT = AMOUNT
                        from dbo.RATESCALEPRICE
                        where 
                            RATESCALEID = @ID and
                            GROUPMAXIMUM = -1
                    end
                    return 0;