USP_DATAFORMTEMPLATE_ADD_PROGRAMGROUP

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

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@COMBINATIONID uniqueidentifier IN Input parameter indicating the context ID for the record being 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
@USESELECTION bit IN Get programs from selection
@IDSETREGISTERID uniqueidentifier IN Selection
@PROGRAMS xml IN Programs
@PRICES xml IN Prices

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_PROGRAMGROUP
(
    @ID uniqueidentifier = null output,
    @COMBINATIONID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @NAME nvarchar(100) = null,
    @DESCRIPTION nvarchar(255) = '',
    @USESELECTION bit = 0,
    @IDSETREGISTERID uniqueidentifier = null,
    @PROGRAMS xml = null,
    @PRICES 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
        if dbo.UFN_COMBINATION_HASONLINEAVAILABILITY(@COMBINATIONID) = 1 and (
                @USESELECTION = 1
                or (select count(*) from dbo.UFN_PROGRAMGROUP_GETPROGRAMS_FROMITEMLISTXML(@PROGRAMS)) > 1
        ) begin
            raiserror('BBERR_PROGRAMGROUP_ONLYONEPROGRAMALLOWED', 13, 1);
        end

        insert into dbo.PROGRAMGROUP
            (ID, COMBINATIONID, NAME, DESCRIPTION, IDSETREGISTERID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
        values
            (@ID,@COMBINATIONID, @NAME, @DESCRIPTION, case @USESELECTION when 1 then @IDSETREGISTERID else null end, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

        -- Insert into program group programs
        if @PROGRAMS is not null and @USESELECTION = 0 begin
            exec dbo.USP_PROGRAMGROUP_GETPROGRAMS_ADDFROMXML @ID, @PROGRAMS, @CHANGEAGENTID, @CURRENTDATE;
        end

        -- Insert into program group price
        if @PRICES is not null begin
            exec dbo.USP_PROGRAMGROUP_GETPRICES_ADDFROMXML @ID, @PRICES, @CHANGEAGENTID, @CURRENTDATE;
        end
    end try

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

    return 0;