USP_DATAFORMTEMPLATE_ADD_COMBINATIONAVAILABILITY

The save procedure used by the add dataform template "Combination Availability 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.
@COMBINATIONID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@ALLOWDAILYSALES bit IN
@ALLOWADVANCESALES bit IN
@ALLOWONLINESALES bit IN Online
@ALLOWMONDAY bit IN Monday
@ALLOWTUESDAY bit IN Tuesday
@ALLOWWEDNESDAY bit IN Wednesday
@ALLOWTHURSDAY bit IN Thursday
@ALLOWFRIDAY bit IN Friday
@ALLOWSATURDAY bit IN Saturday
@ALLOWSUNDAY bit IN Sunday
@ALLOWCOMBINATIONDATEFROM datetime IN From
@ALLOWCOMBINATIONDATETO datetime IN To
@ALLOWCOMBINATIONTIMEFROM UDT_HOURMINUTE IN From
@ALLOWCOMBINATIONTIMETO UDT_HOURMINUTE IN To

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_COMBINATIONAVAILABILITY
(
    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @COMBINATIONID uniqueidentifier,
    @ALLOWDAILYSALES bit = 1,
    @ALLOWADVANCESALES bit = 1,
    @ALLOWONLINESALES bit = 0,
    @ALLOWMONDAY bit = 1,
    @ALLOWTUESDAY bit = 1,
    @ALLOWWEDNESDAY bit = 1,
    @ALLOWTHURSDAY bit = 1,
    @ALLOWFRIDAY bit = 1,
    @ALLOWSATURDAY bit = 1,
    @ALLOWSUNDAY bit = 1,
    @ALLOWCOMBINATIONDATEFROM datetime = null,
    @ALLOWCOMBINATIONDATETO datetime = null,
    @ALLOWCOMBINATIONTIMEFROM dbo.UDT_HOURMINUTE = '',
    @ALLOWCOMBINATIONTIMETO dbo.UDT_HOURMINUTE = ''
)
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.COMBINATIONAVAILABILITY (
            ID,
            COMBINATIONID,
            ALLOWMONDAY,
            ALLOWTUESDAY,
            ALLOWWEDNESDAY,
            ALLOWTHURSDAY,
            ALLOWFRIDAY,
            ALLOWSATURDAY,
            ALLOWSUNDAY,
            ALLOWCOMBINATIONDATEFROM,
            ALLOWCOMBINATIONDATETO,
            ALLOWCOMBINATIONTIMEFROM,
            ALLOWCOMBINATIONTIMETO,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
        ) values (
            @ID,
            @COMBINATIONID,
            @ALLOWMONDAY,
            @ALLOWTUESDAY,
            @ALLOWWEDNESDAY,
            @ALLOWTHURSDAY,
            @ALLOWFRIDAY,
            @ALLOWSATURDAY,
            @ALLOWSUNDAY,
            @ALLOWCOMBINATIONDATEFROM,
            @ALLOWCOMBINATIONDATETO,
            @ALLOWCOMBINATIONTIMEFROM,
            @ALLOWCOMBINATIONTIMETO,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE
        );

        declare @SALESMETHODID uniqueidentifier;

        if @ALLOWDAILYSALES = 1 begin
            set @SALESMETHODID = dbo.UFN_SALESMETHOD_GETIDFROMTYPECODE(0);  -- Daily Sales

            insert into dbo.COMBINATIONAVAILABILITYSALESMETHOD (
                ID,
                COMBINATIONAVAILABILITYID,
                SALESMETHODID,
                ADDEDBYID,
                CHANGEDBYID,
                DATEADDED,
                DATECHANGED
            ) values (
                newid(),
                @ID,
                @SALESMETHODID,
                @CHANGEAGENTID,
                @CHANGEAGENTID,
                @CURRENTDATE,
                @CURRENTDATE
            );
        end

        if @ALLOWADVANCESALES = 1 begin
            set @SALESMETHODID = dbo.UFN_SALESMETHOD_GETIDFROMTYPECODE(1);  -- Advance Sales

            insert into dbo.COMBINATIONAVAILABILITYSALESMETHOD (
                ID,
                COMBINATIONAVAILABILITYID,
                SALESMETHODID,
                ADDEDBYID,
                CHANGEDBYID,
                DATEADDED,
                DATECHANGED
            ) values (
                newid(),
                @ID,
                @SALESMETHODID,
                @CHANGEAGENTID,
                @CHANGEAGENTID,
                @CURRENTDATE,
                @CURRENTDATE
            );
        end

        if @ALLOWONLINESALES = 1 begin
            if dbo.UFN_COMBINATION_CANBEONLINE(@COMBINATIONID) = 0 begin
                raiserror('BBERR_COMBINATIONAVAILABILITY_NOTALLOWEDONLINE', 13, 1);
            end

            set @SALESMETHODID = dbo.UFN_SALESMETHOD_GETIDFROMTYPECODE(2);  -- Online Sales

            insert into dbo.COMBINATIONAVAILABILITYSALESMETHOD (
                ID,
                COMBINATIONAVAILABILITYID,
                SALESMETHODID,
                ADDEDBYID,
                CHANGEDBYID,
                DATEADDED,
                DATECHANGED
            ) values (
                newid(),
                @ID,
                @SALESMETHODID,
                @CHANGEAGENTID,
                @CHANGEAGENTID,
                @CURRENTDATE,
                @CURRENTDATE
            );
        end
    end try

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

    return 0;