codeunitFinanceofficial - Microsoftderived - from the source, no model text

Codeunit 398 "Sales Tax Calculate"

Base Application · Microsoft.Finance.SalesTax

Across versions

  1. BC23-30present

Neighbourhood 7 connected objects and pages

Codeunit 12 "Gen. Jnl.-Post Line" (calls, 4 links)Gen. Jnl.-Post LineTable 5902 "Service Line" (calls, 3 links)Service LineTable 290 "VAT Amount Line" (calls, 2 links)VAT Amount LineTable 37 "Sales Line" (calls, 2 links)Sales LineTable 39 "Purchase Line" (calls, 2 links)Purchase LineCodeunit 57 "Document Totals" (calls)Document TotalsCodeunit 816 "Purch. Post Invoice" (calls)Purch. Post Invoice

Open in the neighbourhood explorer

One hop out, from the extracted relations and call graph. Up to 40 shown; the sections below list them all.

Base Application · Microsoft.Finance.SalesTax · BC23-30 · source at ea08af5e · facts from BC29

Events published

  • OnBeforeCalculateTaxProcedure(TaxAreaCode: Code[20]; TaxGroupCode: Code[20]; TaxLiable: Boolean; Date: Date; Amount: Decimal; Quantity: Decimal; ExchangeRate: Decimal; var TaxAmount: Decimal; var IsHandled: Boolean) (integration): Integration event raised before starting the main tax calculation procedure. Enables custom tax calculation logic or external tax service integration.
  • OnBeforeInitSalesTaxLines(var TaxAreaCode: Code[20]; var TaxGroupCode: Code[20]; TaxLiable: Boolean; Amount: Decimal; Quantity: Decimal; Date: Date; DesiredTaxAmount: Decimal; var TMPTaxDetail: Record "Tax Detail"; var IsHandled: Boolean; var Initialised: Boolean; var FirstLine: Boolean; var TotalForAllocation: Decimal) (integration): Integration event raised before initializing sales tax lines for detailed calculations. Enables custom tax line initialization or external tax service integration.

Procedures

  • CalculateTax(TaxAreaCode: Code[20]; TaxGroupCode: Code[20]; TaxLiable: Boolean; Date: Date; Amount: Decimal; Quantity: Decimal; ExchangeRate: Decimal): Decimal: Calculates total sales tax amount for a transaction based on tax area and group codes. Handles multiple jurisdictions, tax-on-tax scenarios, and currency conversion.
  • ReverseCalculateTax(TaxAreaCode: Code[20]; TaxGroupCode: Code[20]; TaxLiable: Boolean; Date: Date; TotalAmount: Decimal; Quantity: Decimal; ExchangeRate: Decimal): Decimal: Reverse calculates the net amount from a total amount including tax. Determines the base amount when given an amount that includes sales tax.
  • InitSalesTaxLines(TaxAreaCode: Code[20]; TaxGroupCode: Code[20]; TaxLiable: Boolean; Amount: Decimal; Quantity: Decimal; Date: Date; DesiredTaxAmount: Decimal): Initializes detailed sales tax lines for allocation across multiple tax jurisdictions. Prepares temporary tax detail records for posting and distribution calculations.
  • GetSalesTaxLine(var TaxDetail2: Record "Tax Detail"; var ReturnTaxAmount: Decimal; var ReturnTaxBaseAmount: Decimal): Boolean: Retrieves the next sales tax line from initialized tax details for posting allocation. Returns individual tax jurisdiction amounts with proper rounding adjustments.

Triggers

OnRun

Called by

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.

Countries that replace it

CA, ES, MX, US

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: "Sales Tax Calculate"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.

Evidence 1 sources