Codeunit 57 "Document Totals"
Base Application · Microsoft.Utilities
Across versions
- BC23present
- BC242 events added, 1 procedures added
- BC252 events added
- BC262 events added, 1 procedures removed
- BC271 events added, 1 events removed
- BC28unchanged
- BC292 procedures added
- BC30unchanged
Neighbourhood 47 connected objects and pages
Base Application · Microsoft.Utilities · BC23-30 · source at ea08af5e · facts from BC29
Events published
OnAfterCalculatePostedSalesInvoiceTotals(var SalesInvoiceHeader: Record "Sales Invoice Header"; SalesInvoiceLine: Record "Sales Invoice Line"; var VATAmount: Decimal)(integration)OnAfterCalculatePostedSalesCreditMemoTotals(var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; SalesCrMemoLine: Record "Sales Cr.Memo Line"; var VATAmount: Decimal)(integration)OnAfterCalculateSalesSubPageTotals(var TotalSalesHeader: Record "Sales Header"; var TotalSalesLine: Record "Sales Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal; var TotalSalesLine2: Record "Sales Line")(integration)OnAfterCalculatePostedPurchCreditMemoTotals(var PurchCrMemoHdr: Record "Purch. Cr. Memo Hdr."; var VATAmount: Decimal; var PurchCrMemoLine: Record "Purch. Cr. Memo Line")(integration)OnAfterCalculatePostedPurchInvoiceTotals(var PurchInvHeader: Record "Purch. Inv. Header"; var VATAmount: Decimal; var PurchInvLine: Record "Purch. Inv. Line")(integration)OnAfterCalculatePurchaseSubPageTotals(var TotalPurchHeader: Record "Purchase Header"; var TotalPurchLine: Record "Purchase Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal; var TotalPurchaseLine2: Record "Purchase Line")(integration)OnAfterCalculateTotalPurchaseLineAndVATAmount(PurchaseHeader: Record "Purchase Header"; var VATAmount: Decimal; var TempTotalPurchaseLine: Record "Purchase Line" temporary)(integration)OnAfterSalesCheckIfDocumentChanged(SalesLine: Record "Sales Line"; xSalesLine: Record "Sales Line"; var TotalsUpToDate: Boolean)(integration)OnAfterSalesLineSetFilters(var TotalSalesLine: Record "Sales Line"; SalesLine: Record "Sales Line")(integration)OnAfterSalesRedistributeInvoiceDiscountAmounts(var TempSalesLine: Record "Sales Line" temporary; var TempTotalSalesLine: Record "Sales Line" temporary; var VATAmount: Decimal)(integration)OnAfterPurchaseCheckIfDocumentChanged(PurchaseLine: Record "Purchase Line"; xPurchaseLine: Record "Purchase Line"; var TotalsUpToDate: Boolean)(integration)OnAfterPurchaseLineSetFilters(var TotalPurchaseLine: Record "Purchase Line"; PurchaseLine: Record "Purchase Line")(integration)OnAfterPurchaseRedistributeInvoiceDiscountAmounts(var TempPurchaseLine: Record "Purchase Line" temporary; var TempTotalPurchaseLine: Record "Purchase Line" temporary; var VATAmount: Decimal)(integration)OnAfterPurchDeltaUpdateTotals(var PurchaseLine: Record "Purchase Line"; var xPurchaseLine: Record "Purchase Line"; var TotalPurchaseLine: Record "Purchase Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal)(integration)OnAfterSalesDeltaUpdateTotals(var SalesLine: Record "Sales Line"; var xSalesLine: Record "Sales Line"; var TotalSalesLine: Record "Sales Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal)(integration)OnBeforeSalesDeltaUpdateTotals(var SalesLine: Record "Sales Line"; var xSalesLine: Record "Sales Line"; var TotalSalesLine: Record "Sales Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal; var IsHandled: Boolean)(integration)OnBeforeSalesUpdateTotals(var SalesHeader: Record "Sales Header"; PreviousTotalSalesHeader: Record "Sales Header"; var ForceTotalsRecalculation: Boolean; PreviousTotalSalesVATDifference: Decimal; var Result: Boolean; var IsHandled: Boolean)(integration)OnBeforeCalculatePostedPurchCreditMemoTotals(var PurchCrMemoHdr: Record "Purch. Cr. Memo Hdr."; var VATAmount: Decimal; PurchCrMemoLine: Record "Purch. Cr. Memo Line"; var IsHandled: Boolean)(integration)OnBeforeCalculatePostedPurchInvoiceTotals(var PurchInvHeader: Record "Purch. Inv. Header"; var VATAmount: Decimal; PurchInvLine: Record "Purch. Inv. Line"; var IsHandled: Boolean)(integration)OnBeforeCalculatePostedSalesCreditMemoTotals(var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; var VATAmount: Decimal; SalesCrMemoLine: Record "Sales Cr.Memo Line"; var IsHandled: Boolean)(integration)OnBeforeCalculatePostedSalesInvoiceTotals(var SalesInvoiceHeader: Record "Sales Invoice Header"; var VATAmount: Decimal; SalesInvoiceLine: Record "Sales Invoice Line"; var IsHandled: Boolean)(integration)OnBeforeCalculatePurchaseSubPageTotals(var TotalPurchaseHeader: Record "Purchase Header"; var TotalPurchaseLine: Record "Purchase Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal; var IsHandled: Boolean)(integration)OnBeforeCalculateSalesSubPageTotals(var TotalSalesHeader: Record "Sales Header"; var TotalSalesLine: Record "Sales Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal; var IsHandled: Boolean; var TotalsUpToDate: Boolean; var NeedRefreshSalesLine: Boolean)+ BC27 − BC27 (integration)OnBeforeSalesRedistributeInvoiceDiscountAmounts(var TempSalesLine: Record "Sales Line" temporary; var VATAmount: Decimal; var TempTotalSalesLine: Record "Sales Line" temporary; var IsHandled: Boolean)(integration)OnBeforeSalesUpdateTotalsControls(var SalesHeader: Record "Sales Header"; var InvDiscAmountEditable: Boolean; var IsHandled: Boolean)(integration)OnBeforePurchaseRedistributeInvoiceDiscountAmounts(var TempPurchaseLine: Record "Purchase Line" temporary; var VATAmount: Decimal; var TempTotalPurchaseLine: Record "Purchase Line" temporary; var IsHandled: Boolean)(integration)OnBeforePurchUpdateTotalsControls(var PurchaseHeader: Record "Purchase Header"; var InvDiscAmountEditable: Boolean; var IsHandled: Boolean)(integration)OnBeforePurchaseDeltaUpdateTotals(var PurchaseLine: Record "Purchase Line"; var xPurchaseLine: Record "Purchase Line"; var TotalPurchaseLine: Record "Purchase Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal; var IsHandled: Boolean)(integration)OnBeforePurchaseUpdateTotalsControls(CurrentPurchaseLine: Record "Purchase Line"; var TotalPurchaseHeader: Record "Purchase Header"; var TotalsPurchaseLine: Record "Purchase Line"; var RefreshMessageEnabled: Boolean; var ControlStyle: Text; var RefreshMessageText: Text; var InvDiscAmountEditable: Boolean; var VATAmount: Decimal; var IsHandled: Boolean)(integration)OnCalculateSalesSubPageTotalsOnAfterSetFilters(var SalesLine: Record "Sales Line"; SalesHeader: Record "Sales Header")(integration)- subscribers: Codeunit 8001 “Sub. Contr. Renewal Subcribers” ExcludeLinesFromSalesDocumentTotal
OnCalculatePurchaseSubPageTotalsOnAfterRecalculate(var TotalPurchaseLine2: Record "Purchase Line")(integration)OnSalesUpdateTotalsControlsOnBeforeCheckDocumentNo(CurrentSalesLine: Record "Sales Line"; var TotalSalesHeader: Record "Sales Header"; var TotalsSalesLine: Record "Sales Line"; var RefreshMessageEnabled: Boolean; var ControlStyle: Text; var RefreshMessageText: Text; var InvDiscAmountEditable: Boolean; CurrPageEditable: Boolean; var VATAmount: Decimal; var IsHandled: Boolean)(integration)OnCalculatePurchaseSubPageTotalsOnAfterSetFilter(var PurchaseLine: Record "Purchase Line"; PurchaseHeader: Record "Purchase Header")(integration)OnBeforePurchaseCheckNumberOfLinesLimit(var PurchaseHeader: Record "Purchase Header"; var Result: Boolean; var IsHandled: Boolean)(integration)OnBeforeSalesCheckNumberOfLinesLimit(var SalesHeader: Record "Sales Header"; var Result: Boolean; var IsHandled: Boolean)+ BC24 (integration)OnCalculatePurchasePageTotalsOnAfterCalculateVATAmount(var TotalPurchaseLine: Record "Purchase Line"; var VATAmount: Decimal; var PurchaseLine: Record "Purchase Line"; var TotalPurchaseLine2: Record "Purchase Line")+ BC24 (integration)OnAfterSalesCalculateTotalsWithInvoiceRounding(var SalesHeader: Record "Sales Header")+ BC25 (integration)OnBeforePurchaseUpdateTotals(var PurchaseHeader: Record "Purchase Header"; var PreviousTotalPurchaseHeader: Record "Purchase Header"; CurrentPurchaseLine: Record "Purchase Line"; var TotalsPurchaseLine: Record "Purchase Line"; var VATAmount: Decimal; Force: Boolean; var IsHandled: Boolean; var Result: Boolean)+ BC25 (integration)OnBeforeCalculateSalesTotals(var TotalSalesLine: Record "Sales Line")+ BC26 (integration)OnBeforeCalcTotalSalesAmountOnlyDiscountAllowed(var TotalSalesLine: Record "Sales Line")+ BC26 (integration)
Procedures
CalculateSalesPageTotals(var TotalSalesLine: Record "Sales Line"; var VATAmount: Decimal; var SalesLine: Record "Sales Line")CalculateSalesTotals(var TotalSalesLine: Record "Sales Line"; var VATAmount: Decimal; var SalesLine: Record "Sales Line")CalculateSalesSubPageTotals(var TotalSalesHeader: Record "Sales Header"; var TotalSalesLine: Record "Sales Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal)CalculatePostedSalesInvoiceTotals(var SalesInvoiceHeader: Record "Sales Invoice Header"; var VATAmount: Decimal; SalesInvoiceLine: Record "Sales Invoice Line")CalculatePostedSalesCreditMemoTotals(var SalesCrMemoHeader: Record "Sales Cr.Memo Header"; var VATAmount: Decimal; SalesCrMemoLine: Record "Sales Cr.Memo Line")CalcTotalPurchAmountOnlyDiscountAllowed(PurchLine: Record "Purchase Line"): DecimalCalcTotalSalesAmountOnlyDiscountAllowed(SalesLine: Record "Sales Line"): DecimalRefreshSalesLine(var SalesLine: Record "Sales Line")RefreshPurchaseLine(var PurchaseLine: Record "Purchase Line")SalesUpdateTotalsControls(CurrentSalesLine: Record "Sales Line"; var TotalSalesHeader: Record "Sales Header"; var TotalsSalesLine: Record "Sales Line"; var RefreshMessageEnabled: Boolean; var ControlStyle: Text; var RefreshMessageText: Text; var InvDiscAmountEditable: Boolean; CurrPageEditable: Boolean; var VATAmount: Decimal)SalesRedistributeInvoiceDiscountAmounts(var TempSalesLine: Record "Sales Line" temporary; var VATAmount: Decimal; var TempTotalSalesLine: Record "Sales Line" temporary)SalesRedistributeInvoiceDiscountAmountsOnDocument(SalesHeader: Record "Sales Header")SalesDocTotalsNotUpToDate()SalesCheckIfDocumentChanged(var SalesLine: Record "Sales Line"; var xSalesLine: Record "Sales Line")SalesCheckAndClearTotals(var SalesLine: Record "Sales Line"; var xSalesLine: Record "Sales Line"; var TotalSalesLine: Record "Sales Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal)SalesDeltaUpdateTotals(var SalesLine: Record "Sales Line"; var xSalesLine: Record "Sales Line"; var TotalSalesLine: Record "Sales Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal)PurchaseUpdateTotalsControls(CurrentPurchaseLine: Record "Purchase Line"; var TotalPurchaseHeader: Record "Purchase Header"; var TotalsPurchaseLine: Record "Purchase Line"; var RefreshMessageEnabled: Boolean; var ControlStyle: Text; var RefreshMessageText: Text; var InvDiscAmountEditable: Boolean; var VATAmount: Decimal)PurchaseUpdateTotalsControlsForceable(CurrentPurchaseLine: Record "Purchase Line"; var TotalPurchaseHeader: Record "Purchase Header"; var TotalsPurchaseLine: Record "Purchase Line"; var RefreshMessageEnabled: Boolean; var ControlStyle: Text; var RefreshMessageText: Text; var InvDiscAmountEditable: Boolean; var VATAmount: Decimal; Force: Boolean)PurchaseCalculateTotalsWithInvoiceRounding(var TempCurrentPurchaseLine: Record "Purchase Line" temporary; var VATAmount: Decimal; var TempTotalPurchaseLine: Record "Purchase Line" temporary)PurchaseRedistributeInvoiceDiscountAmounts(var TempPurchaseLine: Record "Purchase Line" temporary; var VATAmount: Decimal; var TempTotalPurchaseLine: Record "Purchase Line" temporary)PurchaseRedistributeInvoiceDiscountAmountsOnDocument(PurchaseHeader: Record "Purchase Header")PurchaseDocTotalsNotUpToDate()PurchaseCheckIfDocumentChanged(var PurchaseLine: Record "Purchase Line"; var xPurchaseLine: Record "Purchase Line")PurchaseCheckAndClearTotals(var PurchaseLine: Record "Purchase Line"; var xPurchaseLine: Record "Purchase Line"; var TotalPurchaseLine: Record "Purchase Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal)PurchaseDeltaUpdateTotals(var PurchaseLine: Record "Purchase Line"; var xPurchaseLine: Record "Purchase Line"; var TotalPurchaseLine: Record "Purchase Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal)CalculatePurchasePageTotals(var TotalPurchaseLine: Record "Purchase Line"; var VATAmount: Decimal; var PurchaseLine: Record "Purchase Line")CalculatePurchaseTotals(var TotalPurchaseLine: Record "Purchase Line"; var VATAmount: Decimal; var PurchaseLine: Record "Purchase Line")CalculatePurchaseSubPageTotals(var TotalPurchaseHeader: Record "Purchase Header"; var TotalPurchaseLine: Record "Purchase Line"; var VATAmount: Decimal; var InvoiceDiscountAmount: Decimal; var InvoiceDiscountPct: Decimal)CalculatePostedPurchInvoiceTotals(var PurchInvHeader: Record "Purch. Inv. Header"; var VATAmount: Decimal; PurchInvLine: Record "Purch. Inv. Line")CalculatePostedPurchCreditMemoTotals(var PurchCrMemoHdr: Record "Purch. Cr. Memo Hdr."; var VATAmount: Decimal; PurchCrMemoLine: Record "Purch. Cr. Memo Line")GetTotalVATCaption(CurrencyCode: Code[10]): TextGetTotalInclVATCaption(CurrencyCode: Code[10]): TextGetTotalExclVATCaption(CurrencyCode: Code[10]): TextGetTotalSalesHeaderAndCurrency(var SalesLine: Record "Sales Line"; var TotalSalesHeader: Record "Sales Header"; var Currency: Record Currency)GetTotalPurchaseHeaderAndCurrency(var PurchaseLine: Record "Purchase Line"; var TotalPurchaseHeader: Record "Purchase Header"; var Currency: Record Currency)GetInvoiceDiscAmountWithVATCaption(IncludesVAT: Boolean): TextGetInvoiceDiscAmountWithVATAndCurrencyCaption(InvDiscAmountCaptionClassWithVAT: Text; CurrencyCode: Code[10]): TextGetTotalLineAmountWithVATAndCurrencyCaption(CurrencyCode: Code[10]; IncludesVAT: Boolean): TextSalesCheckNumberOfLinesLimit(SalesHeader: Record "Sales Header"): BooleanPurchaseCheckNumberOfLinesLimit(PurchaseHeader: Record "Purchase Header"): Boolean
Plus 16 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 56 “Sales - Calc Discount By Type” (3 calls:
SalesRedistributeInvoiceDiscountAmounts → (object),SalesUpdateTotalsControls → InvoiceDiscIsAllowed,SalesUpdateTotalsControls → ShouldRedistributeInvoiceDiscountAmount) - Codeunit 66 “Purch - Calc Disc. By Type” (3 calls:
PurchaseRedistributeInvoiceDiscountAmounts → (object),PurchaseUpdateTotalsControlsForceable → InvoiceDiscIsAllowed,PurchaseUpdateTotalsControlsForceable → ShouldRedistributeInvoiceDiscountAmount) - Codeunit 80 “Sales-Post” (2 calls:
CalculateTotalSalesLineAndVATAmount → GetSalesLines,CalculateTotalSalesLineAndVATAmount → SumSalesLinesTemp) - Codeunit 90 “Purch.-Post” (2 calls:
CalculateTotalPurchaseLineAndVATAmount → GetPurchLines,CalculateTotalPurchaseLineAndVATAmount → SumPurchLinesTemp) - Codeunit 398 “Sales Tax Calculate” (1 call:
CalculateSalesTaxForTempTotalPurchaseLine → CalculateTax) - Codeunit 60 “Sales-Calc. Discount” (1 call:
CalculateSalesSubPageTotals → CalculateInvoiceDiscountOnLine) - Codeunit 70 “Purch.-Calc.Discount” (1 call:
CalculatePurchaseSubPageTotals → CalculateInvoiceDiscountOnLine)
Called by
- Page 6631 “Sales Return Order Subform” (15 calls:
ApproveCalcInvDisc → SalesDocTotalsNotUpToDate,CalcInvDisc → SalesDocTotalsNotUpToDate,CalculateTotals → CalculateSalesSubPageTotals, …) - Page 98 “Purch. Cr. Memo Subform” (15 calls:
ApproveCalcInvDisc → PurchaseDocTotalsNotUpToDate,CalcInvDisc → PurchaseDocTotalsNotUpToDate,CalculateTotals → CalculatePurchaseSubPageTotals, …) - Page 46 “Sales Order Subform” (14 calls:
ApproveCalcInvDisc → SalesDocTotalsNotUpToDate,CalcInvDisc → SalesDocTotalsNotUpToDate,CalculateTotals → CalculateSalesSubPageTotals, …) - Page 47 “Sales Invoice Subform” (14 calls:
ApproveCalcInvDisc → SalesDocTotalsNotUpToDate,CalcInvDisc → SalesDocTotalsNotUpToDate,CalculateTotals → CalculateSalesSubPageTotals, …) - Page 55 “Purch. Invoice Subform” (14 calls:
ApproveCalcInvDisc → PurchaseDocTotalsNotUpToDate,CalculateTotals → CalculatePurchaseSubPageTotals,CalculateTotals → PurchaseCheckIfDocumentChanged, …) - Page 6641 “Purchase Return Order Subform” (14 calls:
ApproveCalcInvDisc → PurchaseDocTotalsNotUpToDate,CalculateTotals → CalculatePurchaseSubPageTotals,CalculateTotals → PurchaseCheckIfDocumentChanged, …) - Page 95 “Sales Quote Subform” (14 calls:
ApproveCalcInvDisc → SalesDocTotalsNotUpToDate,CalcInvDisc → SalesDocTotalsNotUpToDate,CalculateTotals → CalculateSalesSubPageTotals, …) - Page 96 “Sales Cr. Memo Subform” (14 calls:
ApproveCalcInvDisc → SalesDocTotalsNotUpToDate,CalcInvDisc → SalesDocTotalsNotUpToDate,CalculateTotals → CalculateSalesSubPageTotals, …) - Page 508 “Blanket Sales Order Subform” (13 calls:
ApproveCalcInvDisc → SalesDocTotalsNotUpToDate,CalculateTotals → CalculateSalesSubPageTotals,CalculateTotals → RefreshSalesLine, …) - Page 510 “Blanket Purchase Order Subform” (13 calls:
ApproveCalcInvDisc → PurchaseDocTotalsNotUpToDate,CalculateTotals → CalculatePurchaseSubPageTotals,CalculateTotals → PurchaseCheckIfDocumentChanged, …) - Page 54 “Purchase Order Subform” (13 calls:
ApproveCalcInvDisc → PurchaseDocTotalsNotUpToDate,CalculateTotals → CalculatePurchaseSubPageTotals,CalculateTotals → PurchaseCheckIfDocumentChanged, …) - Page 97 “Purchase Quote Subform” (13 calls:
ApproveCalcInvDisc → PurchaseDocTotalsNotUpToDate,CalculateTotals → CalculatePurchaseSubPageTotals,CalculateTotals → PurchaseCheckIfDocumentChanged, …) - Codeunit 5477 “Sales Invoice Aggregator” (2 calls:
AssignTotalsFromSalesInvoiceLine → CalculatePostedSalesInvoiceTotals,AssignTotalsFromSalesLine → CalculateSalesTotals) - Codeunit 5508 “Graph Mgt - Sal. Cr. Memo Buf.” (2 calls:
AssignTotalsFromSalesCreditMemoLine → CalculatePostedSalesCreditMemoTotals,AssignTotalsFromSalesLine → CalculateSalesTotals) - Codeunit 5511 “Graph Mgt - Purch. Cr. Memo” (2 calls:
AssignTotalsFromPurchaseCreditMemoLine → CalculatePostedPurchCreditMemoTotals,AssignTotalsFromPurchaseLine → CalculatePurchaseTotals) - Codeunit 5529 “Purch. Inv. Aggregator” (2 calls:
AssignTotalsFromPurchaseInvoiceLine → CalculatePostedPurchInvoiceTotals,AssignTotalsFromPurchaseLine → CalculatePurchaseTotals) - Codeunit 1218 “Map Incoming Doc to Purch Doc” (1 call:
VerifyTotals → PurchaseCalculateTotalsWithInvoiceRounding) - Codeunit 442 “Sales-Post Prepayments” (1 call:
Code → SalesRedistributeInvoiceDiscountAmountsOnDocument) - Codeunit 5341 “CRM Int. Table. Subscriber” (1 call:
UpdateCRMInvoiceAfterInsertRecord → CalculatePostedSalesInvoiceTotals) - Codeunit 5496 “Graph Mgt - Sales Order Buffer” (1 call:
AssignTotalsFromSalesLine → CalculateSalesTotals) - Codeunit 5497 “Graph Mgt - Purch Order Buffer” (1 call:
AssignTotalsFromPurchaseLine → CalculatePurchaseTotals) - Codeunit 5506 “Graph Mgt - Sales Quote Buffer” (1 call:
AssignTotalsFromSalesLine → CalculateSalesTotals) - Page 133 “Posted Sales Invoice Subform” (1 call:
OnAfterGetCurrRecord → CalculatePostedSalesInvoiceTotals) - Page 135 “Posted Sales Cr. Memo Subform” (1 call:
OnAfterGetCurrRecord → CalculatePostedSalesCreditMemoTotals) - Page 139 “Posted Purch. Invoice Subform” (1 call:
OnAfterGetCurrRecord → CalculatePostedPurchInvoiceTotals) - Page 141 “Posted Purch. Cr. Memo Subform” (1 call:
OnAfterGetCurrRecord → CalculatePostedPurchCreditMemoTotals) - Page 41 “Sales Quote” (1 call:
SaveInvoiceDiscountAmount → SalesRedistributeInvoiceDiscountAmountsOnDocument) - Page 42 “Sales Order” (1 call:
SaveInvoiceDiscountAmount → SalesRedistributeInvoiceDiscountAmountsOnDocument) - Page 43 “Sales Invoice” (1 call:
SaveInvoiceDiscountAmount → SalesRedistributeInvoiceDiscountAmountsOnDocument) - Page 44 “Sales Credit Memo” (1 call:
SaveInvoiceDiscountAmount → SalesRedistributeInvoiceDiscountAmountsOnDocument) - Page 49 “Purchase Quote” (1 call:
SaveInvoiceDiscountAmount → PurchaseRedistributeInvoiceDiscountAmountsOnDocument) - Page 50 “Purchase Order” (1 call:
SaveInvoiceDiscountAmount → PurchaseRedistributeInvoiceDiscountAmountsOnDocument) - Page 507 “Blanket Sales Order” (1 call:
SaveInvoiceDiscountAmount → SalesRedistributeInvoiceDiscountAmountsOnDocument) - Page 509 “Blanket Purchase Order” (1 call:
SaveInvoiceDiscountAmount → PurchaseRedistributeInvoiceDiscountAmountsOnDocument) - Page 51 “Purchase Invoice” (1 call:
SaveInvoiceDiscountAmount → PurchaseRedistributeInvoiceDiscountAmountsOnDocument) - Page 52 “Purchase Credit Memo” (1 call:
SaveInvoiceDiscountAmount → PurchaseRedistributeInvoiceDiscountAmountsOnDocument) - Page 6630 “Sales Return Order” (1 call:
SaveInvoiceDiscountAmount → SalesRedistributeInvoiceDiscountAmountsOnDocument) - Page 6640 “Purchase Return Order” (1 call:
SaveInvoiceDiscountAmount → PurchaseRedistributeInvoiceDiscountAmountsOnDocument) - Table 38 “Purchase Header” (1 call:
IsTotalValid → PurchaseCalculateTotalsWithInvoiceRounding)
Recent changes
- 2026-09-14 #10798 [29x]-Mismatch between Purchase Invoice Total in Lines and Statistics after VAT adjustment (releases/29.x, BC29, fix)
- 2026-08-31 #10736 [Main]- Mismatch between Purchase Invoice Total in Lines and Statistics after VAT adjustment (main, BC30, fix)
- 2026-07-20 #9585 [master] Description Field value gets automatically reverted the original value after changing it. (main, BC30, fix)
Countries that replace it
Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).
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: "Document Totals"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.