Codeunit 7002 "Price Calculation - V16"
Base Application · Microsoft.Pricing.Calculation
Across versions
- BC23-24present
- BC251 procedures removed, 1 events added
- BC26-30unchanged
Neighbourhood 4 connected objects and pages
Base Application · Microsoft.Pricing.Calculation · BC23-30 · source at ea08af5e · facts from BC29
Events published
OnAfterIsBetterLine(PriceListLine: Record "Price List Line"; AmountType: Enum "Price Amount Type"; BestPriceListLine: Record "Price List Line"; var Result: Boolean)(integration)OnAfterIsDegradedLine(PriceListLine: Record "Price List Line"; BestPriceListLine: Record "Price List Line"; var Result: Boolean)(integration)OnAfterIsImprovedLine(PriceListLine: Record "Price List Line"; BestPriceListLine: Record "Price List Line"; var Result: Boolean)(integration)OnAfterPickBestLine(AmountType: Enum "Price Amount Type"; PriceListLine: Record "Price List Line"; var BestPriceListLine: Record "Price List Line"; var FoundBestLine: Boolean)(integration)OnBeforeFindLines(AmountType: Enum "Price Amount Type"; var TempPriceListLine: Record "Price List Line" temporary; var PriceCalculationBufferMgt: Codeunit "Price Calculation Buffer Mgt."; ShowAll: Boolean; var FoundLines: Boolean; var IsHandled: Boolean)(integration)OnBeforePickBestLine(AmountType: Enum "Price Amount Type"; PriceListLine: Record "Price List Line"; var BestPriceListLine: Record "Price List Line"; var FoundBestLine: Boolean; var IsHandled: Boolean)(integration)OnBeforeCalcBestAmount(AmountType: Enum "Price Amount Type"; var PriceCalculationBufferMgt: Codeunit "Price Calculation Buffer Mgt."; var PriceListLine: Record "Price List Line")(integration)OnIsDisabled(var Disabled: Boolean)(integration)OnFindLinesOnBefoerPriceSourceListGetMinMaxLevel(var PriceAssetList: Codeunit "Price Asset List"; var PriceSourceList: Codeunit "Price Source List"; AmountType: Enum "Price Amount Type"; var PriceCalculationBufferMgt: Codeunit "Price Calculation Buffer Mgt."; ShowAll: Boolean)(integration)OnAfterCalcBestAmount(AmountType: Enum "Price Amount Type"; var PriceCalculationBufferMgt: Codeunit "Price Calculation Buffer Mgt."; var PriceListLine: Record "Price List Line"; var FoundBestPrice: Boolean)(integration)OnAfterFindLines(AmountType: Enum "Price Amount Type"; var TempPriceListLine: Record "Price List Line" temporary; var PriceCalculationBufferMgt: Codeunit "Price Calculation Buffer Mgt."; ShowAll: Boolean; var FoundLines: Boolean)(integration)OnBeforeShowPrices(var TempPriceListLine: Record "Price List Line"; LineWithPrice: Interface "Line With Price")(integration)OnApplyDiscountOnBeforeFillBestLine(var TempPriceListLine: Record "Price List Line" temporary; var PriceCalculationBufferMgt: Codeunit "Price Calculation Buffer Mgt.")+ BC25 (integration)
Event subscriptions
- OnFindImplementationHandler subscribes to Codeunit “Price Calculation Mgt.” OnFindSupportedSetup
- OnCompanyInitializeHandler subscribes to Codeunit “Company-Initialize” OnCompanyInitialize
Procedures
GetLine(var Line: Variant)Init(NewLineWithPrice: Interface "Line With Price"; PriceCalculationSetup: Record "Price Calculation Setup")ApplyDiscount()ApplyPrice(CalledByFieldNo: Integer)CountDiscount(ShowAll: Boolean): IntegerCountPrice(ShowAll: Boolean): IntegerFindDiscount(var TempPriceListLine: Record "Price List Line"; ShowAll: Boolean): BooleanFindPrice(var TempPriceListLine: Record "Price List Line"; ShowAll: Boolean): BooleanIsDiscountExists(ShowAll: Boolean): BooleanIsPriceExists(ShowAll: Boolean): BooleanPickDiscount()PickPrice()ShowPrices(var TempPriceListLine: Record "Price List Line")IsDegradedLine(PriceListLine: Record "Price List Line"; BestPriceListLine: Record "Price List Line"): BooleanIsImprovedLine(PriceListLine: Record "Price List Line"; BestPriceListLine: Record "Price List Line"): BooleanIsBetterLine(var PriceListLine: Record "Price List Line"; AmountType: Enum "Price Amount Type"; BestPriceListLine: Record "Price List Line"): BooleanFindLines(AmountType: Enum "Price Amount Type"; var TempPriceListLine: Record "Price List Line" temporary; var PriceCalculationBufferMgt: Codeunit "Price Calculation Buffer Mgt."; ShowAll: Boolean): BooleanCopyLinesBySource(var PriceListLine: Record "Price List Line"; PriceSource: Record "Price Source"; var PriceAssetList: Codeunit "Price Asset List"; var TempPriceListLine: Record "Price List Line" temporary): BooleanCopyLinesBySource(var PriceListLine: Record "Price List Line"; PriceSource: Record "Price Source"; PriceAsset: Record "Price Asset"; var TempPriceListLine: Record "Price List Line" temporary): BooleanCalcBestAmount(AmountType: Enum "Price Amount Type"; var PriceCalculationBufferMgt: Codeunit "Price Calculation Buffer Mgt."; var PriceListLine: Record "Price List Line"): Boolean
Plus 10 local procedures.
Triggers
OnRun
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 7008 “Price Calculation Buffer Mgt.” (13 calls:
ApplyDiscount → FillBestLine,ApplyPrice → FillBestLine,CalcBestAmount → ConvertAmount, …) - Codeunit 7007 “Price Asset List” (3 calls:
CopyLinesBySource → First,CopyLinesBySource → GetMinMaxLevel,CopyLinesBySource → Next) - Codeunit 7011 “Price Source List” (3 calls:
FindLines → First,FindLines → GetMinMaxLevel,FindLines → Next) - Codeunit 7001 “Price Calculation Mgt.” (1 call:
OnCompanyInitializeHandler → (object))
Implements
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "Price Calculation - V16"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.