USP_DATAFORMTEMPLATE_ADD_COMBINATION

The save procedure used by the add dataform template "Combination Add Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@NAME nvarchar(100) IN Name
@DESCRIPTION nvarchar(255) IN Description
@EVENTSSAMEDAY bit IN Selected events must occur on same day
@PRICETYPES xml IN Prices

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_COMBINATION
(
    @ID uniqueidentifier = null output,                        
    @CHANGEAGENTID uniqueidentifier = null,
    @NAME nvarchar(100),
    @DESCRIPTION nvarchar(255) = '',
    @EVENTSSAMEDAY bit = 1,
    @PRICETYPES xml = null
)
as
    set nocount on;

    if @ID is null begin
        set @ID = newid();
    end

    if @CHANGEAGENTID is null begin
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
    end

    declare @CURRENTDATE datetime = getdate();

    begin try
        insert into dbo.COMBINATION (
            ID,
            NAME,
            DESCRIPTION,
            EVENTSSAMEDAY,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
        ) values (
            @ID,
            @NAME,
            @DESCRIPTION,
            @EVENTSSAMEDAY,
            @CHANGEAGENTID
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE
        );

        --populate the prices
        exec dbo.USP_COMBINATION_GETPRICETYPES_ADDFROMXML @ID, @PRICETYPES, @CHANGEAGENTID, @CURRENTDATE;

        declare @COMBINATIONAVAILABILITYID uniqueidentifier = newid();

        -- Using default values so that the Combination Add always matches the defaults of Combination Availability Add
        exec dbo.USP_DATAFORMTEMPLATE_ADD_COMBINATIONAVAILABILITY
            @COMBINATIONAVAILABILITYID,
            @CHANGEAGENTID,
            @ID;
    end try

    begin catch
        exec dbo.USP_RAISE_ERROR;
        return 1;
    end catch

    return 0;