USP_DATAFORMTEMPLATE_VIEW_COMBINATION

The load procedure used by the view dataform template "Combination View 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.
@NAME nvarchar(100) INOUT Name
@DESCRIPTION nvarchar(255) INOUT Description
@EVENTSSAMEDAY bit INOUT Same day event
@ISACTIVE bit INOUT Status
@PRICES xml INOUT Prices
@ISAPPROVEDFORWEB bit INOUT
@RECORDID uniqueidentifier INOUT
@HASCUSTOMACKNOWLEDGEMENTTEMPLATE bit INOUT
@ISCUSTOMACKNOWLEDGEMENTENABLED bit INOUT
@MICROSITEEMAILTEMPLATEID uniqueidentifier INOUT

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_COMBINATION
(
    @ID uniqueidentifier,
    @DATALOADED bit = 0 output,
    @NAME nvarchar(100) = null output,
    @DESCRIPTION nvarchar(255) = null output,
    @EVENTSSAMEDAY bit = null output,
    @ISACTIVE bit = null output,
    @PRICES xml = null output,
    @ISAPPROVEDFORWEB bit = null output,
    @RECORDID uniqueidentifier = null output,  -- This will be exactly the same as @ID. Because Infinity. actionhost.js: "The context record ID cannot be retrieved when using a direct handler. Use the host's getFieldValue, getPageFieldValue or getParameterValue method to retrieve the required value instead."
    @HASCUSTOMACKNOWLEDGEMENTTEMPLATE bit = null output,
    @ISCUSTOMACKNOWLEDGEMENTENABLED bit = null output,
    @MICROSITEEMAILTEMPLATEID uniqueidentifier = null output
)
as
    set nocount on;

    set @DATALOADED = 0;

    select
        @DATALOADED = 1,
        @NAME = NAME,
        @DESCRIPTION = DESCRIPTION,
        @EVENTSSAMEDAY = EVENTSSAMEDAY,
        @ISACTIVE = ISACTIVE,
        @RECORDID = ID
    from
        dbo.COMBINATION
    where
        ID = @ID;

    -- Total program groups in the combination
    declare @TOTALPROGRAMGROUPS int;

    select @TOTALPROGRAMGROUPS = count(*)
    from dbo.PROGRAMGROUP
    where COMBINATIONID = @ID;

    set @PRICES = (
        select
            COMBINATIONPRICETYPE.ID,
            dbo.UFN_PRICETYPECODE_GETDESCRIPTION(COMBINATIONPRICETYPE.PRICETYPECODEID) as PRICETYPE,
            case count(PROGRAMGROUPPRICE.ID)
                when @TOTALPROGRAMGROUPS then sum(PROGRAMGROUPPRICE.FACEPRICE)
                else null
            end as FACEPRICE,
            COMBINATIONPRICETYPE.SEQUENCE
        from
            dbo.COMBINATIONPRICETYPE
        left join
            dbo.PROGRAMGROUPPRICE on COMBINATIONPRICETYPE.ID = PROGRAMGROUPPRICE.COMBINATIONPRICETYPEID
        where
            COMBINATIONPRICETYPE.COMBINATIONID = @ID
        group by
            COMBINATIONPRICETYPE.ID, COMBINATIONPRICETYPE.PRICETYPECODEID, SEQUENCE
        order by
            COMBINATIONPRICETYPE.SEQUENCE
        for xml raw ('ITEM'), type, elements, root('PRICES'), BINARY BASE64
    );

    set @ISAPPROVEDFORWEB = dbo.UFN_COMBINATION_HASONLINEAVAILABILITY(@ID);

    select
        @HASCUSTOMACKNOWLEDGEMENTTEMPLATE = 0,
        @ISCUSTOMACKNOWLEDGEMENTENABLED = 0;

    select
        @HASCUSTOMACKNOWLEDGEMENTTEMPLATE = 1,
        @ISCUSTOMACKNOWLEDGEMENTENABLED = ACTIVE,
        @MICROSITEEMAILTEMPLATEID = ID
    from dbo.COMBINATION_MICROSITEEMAILTEMPLATE where COMBINATIONID = @ID;

    return 0;