USP_DATAFORMTEMPLATE_ADD_DISCOUNTBYSIZE

The save procedure used by the add dataform template "Discount By Group Size 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
@APPLIESTOCODE tinyint IN Applies to
@APPLICATIONTYPECODE tinyint IN Selected for use
@DISCOUNTTYPECODE tinyint IN Add a standard discount
@CALCULATIONTYPECODE tinyint IN Calculation type
@PERCENT decimal(5, 2) IN Value
@AMOUNT money IN Value
@NUMBERTOPURCHASE int IN Quantity at full price
@NUMBERTODISCOUNTTYPECODE tinyint IN Quantity discounted
@NUMBERTODISCOUNT int IN Number to discount
@LIMITDISCOUNTSPERORDER bit IN Limit the number of times this discount may be applied
@NUMBEROFDISCOUNTSPERORDER int IN Uses allowed
@BOGOCALCULATIONTYPECODE tinyint IN Type
@BOGOLIMITDISCOUNTSPERORDER bit IN Limit the number of times this discount may be applied in an order
@BOGONUMBEROFDISCOUNTSPERORDER int IN Uses allowed
@DISCOUNTTICKETSFORCODE tinyint IN Limit discount to
@ALLOWWALKUPSALES bit IN Walk up
@WALKUPID uniqueidentifier IN Walk Up Sales ID
@WALKUPACTIVE bit IN Walk Up Sales Active
@ALLOWADVANCEDSALES bit IN Advance sales
@ADVANCEDID uniqueidentifier IN Advanced Sales ID
@ADVANCEDACTIVE bit IN Advanced Sales Active
@ALLOWONLINESALES bit IN Online
@ONLINEID uniqueidentifier IN Online Sales ID
@ONLINEACTIVE bit IN Online Sales Active
@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
@ALLOWDISCOUNTDATEFROM datetime IN From
@ALLOWDISCOUNTDATETO datetime IN To
@ALLOWDISCOUNTTIMEFROM UDT_HOURMINUTE IN From
@ALLOWDISCOUNTTIMETO UDT_HOURMINUTE IN To
@ITEMAMOUNT money IN Value
@ITEMPERCENT decimal(5, 2) IN Value
@PROMOTIONALCODES xml IN Promotion codes
@DISCOUNTQUALIFYINGPRICETYPES xml IN Buy these price types
@DISCOUNTPRICETYPES xml IN Apply discounts to these price types
@DISCOUNTPROGRAMS xml IN Select programs for discount
@DISCOUNTMEMBERS xml IN Restrict discount ot these memberships
@DISCOUNTCONSTITUENCYCODES xml IN Restrict discount to these constituencies
@ADDRESSSELECTIONID uniqueidentifier IN Include
@GROUPSIZES xml IN Group size details
@GROUPSALESID uniqueidentifier IN
@GROUPSALESACTIVE bit IN
@ALLOWGROUPSALES bit IN Group sales
@APPLIESTOMERCHANDISECODE tinyint IN Applies to
@DISCOUNTMERCHANDISEDEPARTMENTS xml IN Departments
@DISCOUNTMERCHANDISEITEMS xml IN Items
@APPLICATIONCODE tinyint IN Applies to

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_DISCOUNTBYSIZE

    @ID uniqueidentifier = null output,
    @CHANGEAGENTID uniqueidentifier = null,
    @NAME nvarchar(100),
    @DESCRIPTION nvarchar(255) = '',
    @APPLIESTOCODE tinyint = 1,
    @APPLICATIONTYPECODE tinyint = 0,
    @DISCOUNTTYPECODE tinyint = 2,
    @CALCULATIONTYPECODE tinyint = 2,
    @PERCENT decimal(5,2) = 0.0,
    @AMOUNT money = 0,
    @NUMBERTOPURCHASE int = 1,
    @NUMBERTODISCOUNTTYPECODE tinyint = 0,
    @NUMBERTODISCOUNT int = 1,
    @LIMITDISCOUNTSPERORDER bit = 0,
    @NUMBEROFDISCOUNTSPERORDER int = 1,
    @BOGOCALCULATIONTYPECODE tinyint = 0,
    @BOGOLIMITDISCOUNTSPERORDER bit = 0,
    @BOGONUMBEROFDISCOUNTSPERORDER int = 1,
    @DISCOUNTTICKETSFORCODE tinyint = 0,
    @ALLOWWALKUPSALES bit = 1,
    @WALKUPID uniqueidentifier = null,
    @WALKUPACTIVE bit = 1,
    @ALLOWADVANCEDSALES bit = 1,
    @ADVANCEDID uniqueidentifier = null,
    @ADVANCEDACTIVE bit = 1,
    @ALLOWONLINESALES bit = 1,
    @ONLINEID uniqueidentifier = null,
    @ONLINEACTIVE bit = 1,
    @ALLOWMONDAY bit=1,
    @ALLOWTUESDAY bit=1,
    @ALLOWWEDNESDAY bit=1,
    @ALLOWTHURSDAY bit=1,
    @ALLOWFRIDAY bit=1,
    @ALLOWSATURDAY bit=1,
    @ALLOWSUNDAY bit=1,
    @ALLOWDISCOUNTDATEFROM  datetime = null,
    @ALLOWDISCOUNTDATETO  datetime = null,
    @ALLOWDISCOUNTTIMEFROM  dbo.UDT_HOURMINUTE = null,
    @ALLOWDISCOUNTTIMETO  dbo.UDT_HOURMINUTE = null,
    @ITEMAMOUNT money = 0,
    @ITEMPERCENT decimal (5,2) = 0.0,
    @PROMOTIONALCODES xml = null,
    @DISCOUNTQUALIFYINGPRICETYPES xml = null,
    @DISCOUNTPRICETYPES xml = null,
    @DISCOUNTPROGRAMS xml = null,
    @DISCOUNTMEMBERS xml = null,
    @DISCOUNTCONSTITUENCYCODES xml = null,
    @ADDRESSSELECTIONID uniqueidentifier = null,
    @GROUPSIZES xml = null,
    @GROUPSALESID uniqueidentifier = null,
    @GROUPSALESACTIVE bit = null,
    @ALLOWGROUPSALES bit = 0,
    @APPLIESTOMERCHANDISECODE tinyint = 0,
    @DISCOUNTMERCHANDISEDEPARTMENTS xml = null,
    @DISCOUNTMERCHANDISEITEMS xml = null,
    @APPLICATIONCODE tinyint = 0
)
as
    set nocount on;

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

    begin try

        declare @APPLIESTOTICKETS bit = 0
        declare @APPLIESTOMERCHANDISE bit = 0
        declare @DISCOUNTITEMTYPECODE tinyint = 0

        if @APPLICATIONCODE = 0
            set @APPLIESTOTICKETS = 1
        else
        begin
            set @APPLIESTOMERCHANDISE = 1
            set @DISCOUNTITEMTYPECODE = 1

            if @APPLIESTOMERCHANDISECODE = 1 and not exists 
                (select 1 
                    from @DISCOUNTMERCHANDISEDEPARTMENTS.nodes('/DISCOUNTMERCHANDISEDEPARTMENTS/ITEM') T(merch)
                )

                raiserror('BBERR_MISSINGDEPARTMENTS', 13, 1);

            if @APPLIESTOMERCHANDISECODE = 2 and not exists
                (select 1 
                    from @DISCOUNTMERCHANDISEITEMS.nodes('/DISCOUNTMERCHANDISEITEMS/ITEM') T(merch)
                )
                raiserror('BBERR_MISSINGITEMS', 13, 1);            
        end

        exec dbo.USP_DISCOUNT_ADD
                @ID,
                @CHANGEAGENTID,
                @NAME,
                @DESCRIPTION,
                @APPLIESTOCODE,
                @APPLICATIONTYPECODE,
                @DISCOUNTTYPECODE,
                @CALCULATIONTYPECODE,
                @PERCENT,
                @AMOUNT,
                @NUMBERTOPURCHASE,
                @NUMBERTODISCOUNTTYPECODE,
                @NUMBERTODISCOUNT,
                @LIMITDISCOUNTSPERORDER,
                @NUMBEROFDISCOUNTSPERORDER,
                @BOGOCALCULATIONTYPECODE,
                @BOGOLIMITDISCOUNTSPERORDER,
                @BOGONUMBEROFDISCOUNTSPERORDER,                        
                @DISCOUNTTICKETSFORCODE,
                @ALLOWWALKUPSALES,
                @WALKUPID,
                @WALKUPACTIVE,
                @ALLOWADVANCEDSALES,
                @ADVANCEDID,
                @ADVANCEDACTIVE,                        
                @ALLOWONLINESALES,
                @ONLINEID,
                @ONLINEACTIVE,                        
                @ALLOWMONDAY,
                @ALLOWTUESDAY,
                @ALLOWWEDNESDAY,
                @ALLOWTHURSDAY,
                @ALLOWFRIDAY,
                @ALLOWSATURDAY,
                @ALLOWSUNDAY,
                @ALLOWDISCOUNTDATEFROM,
                @ALLOWDISCOUNTDATETO,
                @ALLOWDISCOUNTTIMEFROM,
                @ALLOWDISCOUNTTIMETO,
                @ITEMAMOUNT,
                @ITEMPERCENT,                        
                @PROMOTIONALCODES,
                @DISCOUNTQUALIFYINGPRICETYPES,
                @DISCOUNTPRICETYPES,
                @DISCOUNTPROGRAMS,
                @DISCOUNTMEMBERS,
                @DISCOUNTCONSTITUENCYCODES,
                @ADDRESSSELECTIONID,
                @GROUPSIZES,
                @GROUPSALESID,
                @GROUPSALESACTIVE,
                @ALLOWGROUPSALES,
                @APPLIESTOTICKETS,
                @APPLIESTOMERCHANDISE,
                @APPLIESTOMERCHANDISECODE,
                @DISCOUNTMERCHANDISEDEPARTMENTS,
                @DISCOUNTMERCHANDISEITEMS,
                0, -- merchandise amount

                0, -- merchandise percent

                null, -- qualifying xml

                null, -- qualifying xml,

                0, -- qualifying item type code

                @DISCOUNTITEMTYPECODE

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


    return 0;