UFN_SALESORDER_GETORDERADJUSTMENTTOTAL

Returns the adjustment total for an order.

Return

Return Type
money

Parameters

Parameter Parameter Type Mode Description
@SALESORDERID uniqueidentifier IN

Definition

Copy


        CREATE function dbo.UFN_SALESORDER_GETORDERADJUSTMENTTOTAL
        (
            @SALESORDERID uniqueidentifier
        )
        returns money
        as begin
            declare @ORDERFEETOTAL money
            declare @ORDERTAXTOTAL money
            declare @ORDERDISCOUNTTOTAL money

            select 
                @ORDERFEETOTAL = coalesce(
                    (select sum([FEESOI].[TOTAL]) 
                    from dbo.[SALESORDERITEM] FEESOI
                    inner join dbo.[SALESORDERITEMFEE]
                        on [FEESOI].[ID] = [SALESORDERITEMFEE].[ID]
                    left join dbo.SALESORDERITEM AFFECTEDSOI on 
                        SALESORDERITEMFEE.SALESORDERITEMID = AFFECTEDSOI.ID
                    where 
                        [FEESOI].[SALESORDERID] = @SALESORDERID and 
                        ( [SALESORDERITEMFEE].[APPLIESTOCODE] = 0 or
                          FEESOI.PRICINGSTRUCTURECODE = 1 or
                          AFFECTEDSOI.PRICINGSTRUCTURECODE = 1 )
                    ), 0)

            select 
                @ORDERTAXTOTAL = coalesce(
                    (select sum([SALESORDERITEM].[TOTAL]) 
                    from dbo.[SALESORDERITEM]
                    where 
                        [SALESORDERITEM].[SALESORDERID] = @SALESORDERID and 
                        [SALESORDERITEM].[TYPECODE] = 4
                    ), 0)

            select
                @ORDERDISCOUNTTOTAL = coalesce(
                    (select sum([SALESORDERITEM].[TOTAL])
                    from dbo.[SALESORDERITEM]
                    where 
                        [SALESORDERITEM].[SALESORDERID] = @SALESORDERID and
                        [SALESORDERITEM].[TYPECODE] = 5
                    ), 0)

            return (@ORDERFEETOTAL + @ORDERTAXTOTAL) - @ORDERDISCOUNTTOTAL;
        end