---
title: "Codeunit 7010 Purch. Price Calc. Mgt."
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/codeunit/7010-purch-price-calc-mgt/
type: codeunit
id: 7010
name: "Purch. Price Calc. Mgt."
app: "Base Application"
namespace: Microsoft.Purchases.Pricing
versions: "17-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/codeunit/7010-purch-price-calc-mgt/source/29/"
checked: 2026-09-20
subject: "Microsoft Dynamics 365 Business Central"
license: "Content © 2026 Jonas Paprotka. Quote freely with attribution and a link."
---

# Codeunit 7010 Purch. Price Calc. Mgt.

Jonas Paprotka, https://jonas-paprotka.de/ref/codeunit/7010-purch-price-calc-mgt/

| | |
| --- | --- |
| App | Base Application |
| Namespace | Microsoft.Purchases.Pricing |
| Versions | 17-28 |
| Source file | Purchases/Pricing/PurchPriceCalcMgt.Codeunit.al |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| FindPurchLinePrice | (var Record Purchase Header, var Record Purchase Line, Integer) | - | public | 17-28 | - | - |
| FindItemJnlLinePrice | (var Record Item Journal Line, Integer) | - | public | 17-28 | - | - |
| FindReqLinePrice | (var Record Requisition Line, Integer) | - | public | 17-28 | - | - |
| FindPurchLineLineDisc | (var Record Purchase Header, var Record Purchase Line) | - | public | 17-28 | - | - |
| FindStdItemJnlLinePrice | (var Record Standard Item Journal Line, Integer) | - | public | 17-28 | - | - |
| FindReqLineDisc | (var Record Requisition Line) | - | public | 17-28 | - | - |
| CalcBestDirectUnitCost | (var Record Purchase Price) | - | public | 17-28 | - | - |
| CalcBestLineDisc | (var Record Purchase Line Discount) | - | public | 17-28 | - | - |
| FindPurchPrice | (var Record Purchase Price, Code[20], Code[20], Code[10], Code[10], Code[10], Date, Boolean) | - | public | 17-28 | - | - |
| FindPurchLineDisc | (var Record Purchase Line Discount, Code[20], Code[20], Code[10], Code[10], Code[10], Date, Boolean, Decimal, Decimal) | - | public | 17-28 | - | - |
| SetCurrency | (Code[10], Decimal, Date) | - | public | 17-28 | - | - |
| SetVAT | (Boolean, Decimal, Code[20]) | - | public | 17-28 | - | - |
| SetUoM | (Decimal, Decimal) | - | public | 17-28 | - | - |
| SetLineDisc | (Decimal) | - | public | 17-28 | - | - |
| PurchLinePriceExists | (var Record Purchase Header, var Record Purchase Line, Boolean) | Boolean | public | 17-28 | - | - |
| PurchLineLineDiscExists | (var Record Purchase Header, var Record Purchase Line, Boolean) | Boolean | public | 17-28 | - | - |
| FindJobPlanningLinePrice | (var Record Job Planning Line, Integer) | - | public | 17-28 | - | - |
| FindJobJnlLinePrice | (var Record Job Journal Line, Integer) | - | public | 17-28 | - | - |
| NoOfPurchLinePrice | (var Record Purchase Header, var Record Purchase Line, Boolean) | Integer | public | 17-28 | - | - |
| NoOfPurchLineLineDisc | (var Record Purchase Header, var Record Purchase Line, Boolean) | Integer | public | 17-28 | - | - |
| GetPurchLinePrice | (var Record Purchase Header, var Record Purchase Line) | - | public | 17-28 | - | - |
| GetPurchLineLineDisc | (var Record Purchase Header, var Record Purchase Line) | - | public | 17-28 | - | - |
| SetItem | (Code[20]) | - | public | 17-28 | - | - |
| SetVendor | (Code[20]) | - | public | 17-28 | - | - |
| FindResUnitCost | (var Record Res. Journal Line) | - | public | 17-28 | - | - |
| FindResUnitCost | (var Record Sales Line) | - | public | 17-28 | - | - |
| FindResUnitCost | (var Record Service Line) | - | public | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| FindInvtDocLinePrice | (var Record Invt. Document Line, Integer) | - | public | 18-28 | - | - |
| ConvertPriceLCYToFCY | (Code[10], var Decimal) | - | public | 22-28 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnAfterCalcBestDirectUnitCostFound | (var Record Purchase Price, var Boolean) | 17-18 | - | - |
| Integration event | OnAfterCalcBestLineDisc | (var Record Purchase Line Discount, var Record Purchase Line Discount) | 17-28 | - | - |
| Integration event | OnAfterFindJobJnlLinePrice | (var Record Job Journal Line, var Boolean) | 17-28 | - | - |
| Integration event | OnAfterFindJobJnlLinePriceItem | (var Record Job Journal Line) | 17-28 | - | - |
| Integration event | OnAfterFindJobJnlLinePriceResource | (var Record Job Journal Line) | 17-20 | - | - |
| Integration event | OnAfterFindPurchPrice | (var Record Purchase Price, Record Purchase Price, Code[20], Code[20], Code[10], Code[10], Code[10], Date, Boolean, Decimal, Decimal) | 17-28 | - | - |
| Integration event | OnAfterFindPurchLinePrice | (var Record Purchase Line, var Record Purchase Header, var Record Purchase Price, Integer, Boolean, Boolean) | 17-28 | - | - |
| Integration event | OnAfterFindPurchLineDisc | (var Record Purchase Line Discount, var Record Purchase Line Discount, Code[20], Decimal, Decimal, Boolean) | 17-28 | - | - |
| Integration event | OnAfterFindPurchLineLineDisc | (var Record Purchase Line, var Record Purchase Header, var Record Purchase Line Discount) | 17-28 | - | - |
| Integration event | OnAfterFindReqLinePrice | (var Record Requisition Line, var Record Purchase Price, Integer) | 17-28 | - | - |
| Integration event | OnAfterFindReqLineDisc | (var Record Requisition Line) | 17-28 | - | - |
| Integration event | OnAfterGetPurchLinePrice | (var Record Purchase Header, var Record Purchase Line, var Record Purchase Price) | 17-18 | - | - |
| Integration event | OnAfterGetPurchLineLineDisc | (var Record Purchase Line, var Record Purchase Line Discount) | 17-28 | - | - |
| Integration event | OnAfterJobJnlLineFindResCost | (var Record Job Journal Line, Integer, var Record Resource Cost) | 17-28 | - | - |
| Integration event | OnAfterJobPlanningLineFindResCost | (var Record Job Planning Line, Integer, var Record Resource Cost) | 17-28 | - | - |
| Integration event | OnAfterPurchLineLineDiscExists | (var Record Purchase Line) | 17-28 | - | - |
| Integration event | OnAfterPurchLinePriceExists | (var Record Purchase Line) | 17-28 | - | - |
| Integration event | OnBeforeCalcBestDirectUnitCost | (var Record Purchase Price, var Record Purchase Price, var Boolean, var Boolean) | 17-25 | - | - |
| Integration event | OnBeforeCalcBestLineDisc | (var Record Purchase Line Discount, Record Item, var Boolean) | 17-22 | - | - |
| Integration event | OnBeforeConvertPriceToVAT | (var Record VAT Posting Setup) | 17 | - | - |
| Integration event | OnBeforeFindItemJnlLinePrice | (var Record Item Journal Line, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindJobJnlLinePrice | (var Record Job Journal Line, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindJobPlanningLinePrice | (var Record Job Planning Line, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindPurchLinePrice | (var Record Purchase Line, var Record Purchase Header, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindPurchLineDsic | (var Record Purchase Line Discount, var Code[20], var Code[20], var Code[10], var Code[10], var Code[10], var Date, var Boolean, var Decimal, var Decimal) | 17-28 | - | - |
| Integration event | OnBeforeFindPurchPrice | (var Record Purchase Price, var Record Purchase Price, var Code[20], var Code[20], var Code[10], var Code[10], var Code[10], var Date, var Boolean, var Decimal, var Decimal) | 17-28 | - | - |
| Integration event | OnBeforeFindReqLinePrice | (var Record Purchase Price, var Record Requisition Line, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindReqLinePriceOnBeforeWith | (var Record Requisition Line, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindReqLineDisc | (var Record Requisition Line, var Record Purchase Line Discount, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindReqLineDiscOnBeforeWith | (var Record Requisition Line, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindStdItemJnlLinePrice | (var Record Standard Item Journal Line, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeGetPurchLineDisc | (var Record Purchase Header, var Record Purchase Line, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeGetPurchLinePrice | (var Record Purchase Header, var Record Purchase Line, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeNoOfPurchLineLineDisc | (var Record Purchase Header, var Record Purchase Line, Boolean, var Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeNoOfPurchLinePrice | (var Record Purchase Header, var Record Purchase Line, Boolean, var Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforePurchLinePriceExists | (var Record Purchase Line, var Record Purchase Header, var Record Purchase Price, Boolean, var Boolean, var Text[30]) | 17-28 | - | - |
| Integration event | OnBeforePurchLineLineDiscExists | (var Record Purchase Line, var Record Purchase Header, var Record Purchase Line Discount, Boolean, var Boolean, var Text[30]) | 17-28 | - | - |
| Integration event | OnBeforePurchHeaderStartDate | (var Record Purchase Header, var Text[30], var Date, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindPurchLineLineDisc | (var Record Purchase Line, var Record Purchase Header, var Boolean) | 17-28 | - | - |
| Integration event | OnCalcBestDirectUnitCostOnAfterSetUnitCost | (var Record Purchase Price) | 17-28 | - | - |
| Integration event | OnCalcBestDirectUnitCostOnBeforeConvertPriceToVAT | (var Record Purchase Price) | 17-28 | - | - |
| Integration event | OnCalcBestDirectUnitCostOnBeforeNoPriceFound | (var Record Purchase Price, Record Item, var Boolean) | 17-27 | - | - |
| Integration event | OnFindJobPlanningLinePriceOnBeforeResourceFindCost | (Record Job Planning Line, var Record Resource Cost) | 17-28 | - | - |
| Integration event | OnFindJobJnlLinePriceOnBeforeResourceFindCost | (Record Job Journal Line, var Record Resource Cost) | 17-28 | - | - |
| Integration event | OnGetPurchLinePriceOnAfterLookup | (Record Purchase Header, var Record Purchase Line, var Record Purchase Price) | 17-28 | - | - |
| Integration event | OnGetPurchLineLineDiscOnAfterLookup | (Record Purchase Header, var Record Purchase Line, var Record Purchase Line Discount) | 17-28 | - | - |
| Integration event | OnFindItemJnlLinePriceOnBeforeCalcBestDirectUnitCost | (var Record Item Journal Line, var Record Purchase Price) | 17-28 | - | - |
| Integration event | OnFindPurchLineDiscOnAfterSetFilters | (var Record Purchase Line Discount) | 17-28 | - | - |
| Integration event | OnFindPurchLinePriceOnBeforeRunResourceFindCost | (var Record Resource Cost) | 17-28 | - | - |
| Integration event | OnFindJobJnlLinePriceOnBeforeCalcBestDirectUnitCost | (var Record Job Journal Line, var Record Purchase Price) | 17-28 | - | - |
| Integration event | OnBeforeConvertPriceToVAT | (var Record VAT Posting Setup, Code[20], Code[20], Decimal, Boolean, var Boolean) | 18-28 | - | - |
| Integration event | OnBeforeIsInMinQty | (var Record Item, Code[10], Decimal, var Boolean, var Boolean) | 18-28 | - | - |
| Integration event | OnAfterCalcBestDirectUnitCostFound | (var Record Purchase Price, var Boolean, var Boolean) | 19-28 | - | - |
| Integration event | OnAfterGetPurchLinePrice | (var Record Purchase Header, var Record Purchase Line, var Record Purchase Price, Decimal) | 19-28 | - | - |
| Integration event | OnBeforeCalcLineAmount | (var Record Purchase Price, Decimal, var Decimal, var Boolean) | 19-28 | - | - |
| Integration event | OnAfterSetCurrency | (var Decimal, var Date, var Boolean, var Boolean, var Decimal, var Code[20], var Text[30], var Boolean, var Boolean) | 20-28 | - | - |
| Integration event | OnAfterFindJobPlanningLinePrice | (var Record Job Planning Line, var Record Resource Cost) | 21-28 | - | - |
| Integration event | OnAfterFindJobJnlLinePriceResource | (var Record Job Journal Line, var Record Resource Cost) | 21-28 | - | - |
| Integration event | OnBeforeCalcBestLineDisc | (var Record Purchase Line Discount, Record Item, var Boolean, Decimal, Decimal) | 23-28 | - | - |
| Integration event | OnBeforeCalcBestDirectUnitCost | (var Record Purchase Price, var Record Purchase Price, var Boolean, var Boolean, var Record Stockkeeping Unit, var Record Item) | 26-28 | - | - |
| Integration event | OnCalcBestDirectUnitCostOnBeforeNoPriceFound | (var Record Purchase Price, Record Item, var Boolean, var Boolean, var Record Stockkeeping Unit) | 28 | - | - |
| Integration event | OnCalcBestDirectUnitCostOnAfterIsInMinQty | (var Record Purchase Price, Decimal, Decimal, var Boolean) | 28 | - | - |
| Integration event | OnCalcBestDirectUnitCostOnBeforeCaseStatement | (var Record Purchase Price, var Record Purchase Price, var Boolean, var Boolean, Decimal) | 28 | - | - |

## Source

Symbols: Microsoft.BaseApplication.symbols.437dbf0e-84ff-417a-965d-ed2bb9650972, https://dynamicssmb2.pkgs.visualstudio.com/DynamicsBCPublicFeeds/_packaging/MSSymbols/nuget/v3/index.json, highest build per major on 2026-09-20.
AL source 29: https://github.com/microsoft/BCApps, MIT, releases/29.x at a66254c3b8b5bb1cea290dc8f9d097aec4381153.

Jonas Paprotka, 2026-09-20.
