USP_DATAFORMTEMPLATE_ADD_DISCOUNTADJUSTABLE

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

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@SALESORDERID 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.
@SALESORDERADJUSTABLEDISCOUNTID uniqueidentifier IN Sales order adjustable discount ID
@ISADJUSTABLEDISCOUNT bit IN
@ADJUSTABLEDISCOUNTALREADYONORDER bit IN
@CALCULATIONTYPECODE int IN Calculation type
@AMOUNT money IN Value
@PERCENT decimal(5, 2) IN Value
@DISCOUNTREASONCODEID uniqueidentifier IN Reason
@DISCOUNTNAME nvarchar(100) IN Discount name

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_DISCOUNTADJUSTABLE
                    (
                        @ID uniqueidentifier = null output,
                        @SALESORDERID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @SALESORDERADJUSTABLEDISCOUNTID uniqueidentifier = null,
                        @ISADJUSTABLEDISCOUNT bit = 0,
                        @ADJUSTABLEDISCOUNTALREADYONORDER bit = 0,
                        @CALCULATIONTYPECODE int = 0,
                        @AMOUNT money = 0,
                        @PERCENT decimal(5,2) = 0,
                        @DISCOUNTREASONCODEID uniqueidentifier = null,
                        @DISCOUNTNAME nvarchar(100) = null
                    )
                    as

                    set nocount on;

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

                    if @CHANGEAGENTID is null  
                        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                    declare @CURRENTDATE datetime
                    set @CURRENTDATE = getdate()

                    begin try
                        if @ADJUSTABLEDISCOUNTALREADYONORDER = 0
                            begin
                                insert into dbo.SALESORDERADJUSTABLEDISCOUNT(
                                    ID,
                                    SALESORDERID,
                                    CALCULATIONTYPECODE,
                                    [PERCENT],
                                    AMOUNT,
                                    DISCOUNTREASONCODEID,
                                    DISCOUNTNAME,
                                    [ADDEDBYID],
                                    [CHANGEDBYID],
                                    [DATEADDED],
                                    [DATECHANGED])                                        
                                values(
                                    @ID,
                                    @SALESORDERID,
                                    @CALCULATIONTYPECODE,
                                    @PERCENT,
                                    @AMOUNT,
                                    @DISCOUNTREASONCODEID,
                                    @DISCOUNTNAME,
                                    @CHANGEAGENTID,
                                    @CHANGEAGENTID,
                                    @CURRENTDATE,
                                    @CURRENTDATE)                                        
                            end
                        else
                            begin
                                -- Very hacky because this is an add form editing a record
                                set @ID = @SALESORDERADJUSTABLEDISCOUNTID;

                                update dbo.SALESORDERADJUSTABLEDISCOUNT set
                                    CALCULATIONTYPECODE = @CALCULATIONTYPECODE,
                                    [PERCENT] = @PERCENT,
                                    AMOUNT = @AMOUNT,
                                    DISCOUNTREASONCODEID = @DISCOUNTREASONCODEID,
                                    DISCOUNTNAME = @DISCOUNTNAME,
                                    [CHANGEDBYID] = @CHANGEAGENTID,
                                    [DATECHANGED] = @CURRENTDATE                                        
                                where
                                    SALESORDERID = @SALESORDERID
                            end    
                    end try

                    begin catch
                        exec dbo.USP_RAISE_ERROR
                        return 1
                    end catch

                    return 0