Interface Price Calculation

App
Base Application
Namespace
Microsoft.Pricing.Calculation
Versions
17-28

Procedures, 13

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/Pricing/Calculation/PriceCalculation.Interface.al95 lines, Copyright (c) Microsoft Corporation. MIT

// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Pricing.Calculation;

using Microsoft.Pricing.PriceList;

interface "Price Calculation"
{
    /// <summary>
    /// Save the source line as an interface variable inside the price calculation codeunit
    /// </summary>
    /// <param name="LineWithPrice">The interface parameter for the document or journal line.</param>
    /// <returns>The updated source line.</returns>
    procedure Init(LineWithPrice: Interface "Line With Price"; PriceCalculationSetup: Record "Price Calculation Setup")

    /// <summary>
    /// After the calculation is done by calling ApplyPrice() or ApplyDiscount() 
    /// the updated line is retrieved by this method. 
    /// </summary>
    /// <param name="Line">The updated source line.</param>
    procedure GetLine(var Line: Variant)

    /// <summary>
    /// Executes the calcluation of the discount amount. 
    /// </summary>
    procedure ApplyDiscount()

    /// <summary>
    /// Executes the calculation of the price or cost.
    /// </summary>
    /// <param name="CalledByFieldNo">The id of the field that caused the calculation.</param>
    procedure ApplyPrice(CalledByFieldNo: Integer)

    /// <summary>
    /// Returns the number of price list lines with discounts that fit the source line.
    /// </summary>
    /// <param name="ShowAll">If true it widens the filters set to the price list line.</param>
    /// <returns>Number of price list lines with discounts that fit the source line.</returns>
    procedure CountDiscount(ShowAll: Boolean) Result: Integer;

    /// <summary>
    /// Returnes the number of price list lines with prices that fit the source line.
    /// </summary>
    /// <param name="ShowAll">If true it widens the filters set to the price list line.</param>
    /// <returns>Number of price list lines with prices that fit the source line.</returns>
    procedure CountPrice(ShowAll: Boolean) Result: Integer;

    /// <summary>
    /// Returns the list of price list lines with discount that fit the source line.
    /// </summary>
    /// <param name="TempPriceListLine">the temporary buffer containing the price list line that fit the source line.</param>
    /// <param name="ShowAll">If true it widens the filters set to the price list line.</param>
    /// <returns>true if any price list line is found</returns>
    procedure FindDiscount(var TempPriceListLine: Record "Price List Line"; ShowAll: Boolean) Found: Boolean;

    /// <summary>
    /// Returns the list of price list lines with prices ot costs that fit the source line.
    /// </summary>
    /// <param name="TempPriceListLine">the temporary buffer containing the price list line that fit the source line.</param>
    /// <param name="ShowAll">If true it widens the filters set to the price list line.</param>
    /// <returns>true if any price list line is found</returns>
    procedure FindPrice(var TempPriceListLine: Record "Price List Line"; ShowAll: Boolean) Found: Boolean;

    /// <summary>
    /// Returns true if exists any price list line with discount that fit the source line. 
    /// </summary>
    /// <param name="ShowAll">If true it widens the filters set to the price list line.</param>
    /// <returns>true if any price list line is found</returns>
    procedure IsDiscountExists(ShowAll: Boolean) Result: Boolean;

    /// <summary>
    /// Returns true if exists any price list line with price or cost that fit the source line. 
    /// </summary>
    /// <param name="ShowAll">If true it widens the filters set to the price list line.</param>
    /// <returns>true if any price list line is found</returns>
    procedure IsPriceExists(ShowAll: Boolean) Result: Boolean;

    /// <summary>
    /// Allows to pick from the list of price list lines with disocunt that fit the source line.
    /// </summary>
    procedure PickDiscount()

    /// <summary>
    /// Allows to pick from the list of price list lines with price or cost that fit the source line.
    /// </summary>
    procedure PickPrice()

    /// <summary>
    /// Opens the list page for reviewing existing prices. 
    /// </summary>
    /// <param name="TempPriceListLine">The buffer with the found price list lines.</param>
    procedure ShowPrices(var TempPriceListLine: Record "Price List Line")
}