USP_DATAFORMTEMPLATE_EDITLOAD_RATESCALE

The load procedure used by the edit dataform template "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.
@NAME nvarchar(100) INOUT Name
@DESCRIPTION nvarchar(255) INOUT Description
@ISDEFAULT bit INOUT Set as default rate scale
@ISACTIVE bit INOUT Active
@ISSINGLEPRICE bit INOUT
@AMOUNT money INOUT Group of any size pays
@PRICES xml INOUT Prices
@APPLICATIONS xml INOUT Applications
@GROUPSALESGROUPTYPECODEID uniqueidentifier INOUT Group type
@USEPERTICKETAFTERMAX bit INOUT Group over size pays

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_RATESCALE(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @TSLONG bigint = 0 output,
    @NAME nvarchar(100) = null output,
    @DESCRIPTION nvarchar(255) = null output,
    @ISDEFAULT bit = null output,
    @ISACTIVE bit = null output,
    @ISSINGLEPRICE bit = null output,
    @AMOUNT money = null output,
    @PRICES xml = null output,
    @APPLICATIONS xml = null output,
    @GROUPSALESGROUPTYPECODEID uniqueidentifier = null output,
    @USEPERTICKETAFTERMAX bit = null output
)
as

    set nocount on;

    set @DATALOADED = 0
    set @TSLONG = 0

    select
        @DATALOADED = 1,
        @TSLONG = TSLONG,
        @NAME = NAME,
        @DESCRIPTION = DESCRIPTION,
        @ISDEFAULT = ISDEFAULT,
        @ISACTIVE = ISACTIVE,
        @GROUPSALESGROUPTYPECODEID = GROUPSALESGROUPTYPECODEID,
        @USEPERTICKETAFTERMAX = USEPERTICKETAFTERMAX
    from dbo.RATESCALE
    where ID = @ID

    if @DATALOADED = 1
    begin
        if @ISACTIVE = 0
            set @ISDEFAULT = 0

        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
            set @ISSINGLEPRICE = 1

        select
            @AMOUNT = AMOUNT
        from dbo.RATESCALEPRICE
        where 
            RATESCALEID = @ID and
            GROUPMAXIMUM = -1

        set @APPLICATIONS = dbo.UFN_RATESCALE_GETRATESCALEAPPLICATIONS_TOITEMLISTXML(@ID);

    end

    return 0;