codeunitSales & Receivablesofficial - Microsoftderived - from the source, no model text

Codeunit 815 "Sales Post Invoice"

Base Application · Microsoft.Sales.Posting

Across versions

  1. BC23present
  2. BC241 procedures added, 1 procedures removed
  3. BC253 procedures added
  4. BC261 procedures changed, 1 procedures added
  5. BC27-30unchanged

Neighbourhood 7 connected objects and pages

Codeunit 825 "Sales Post Invoice Events" (calls, 59 links)Sales Post Invoice EventsCodeunit 1720 "Deferral Utilities" (calls, 4 links)Deferral UtilitiesCodeunit 12 "Gen. Jnl.-Post Line" (calls, 3 links)Gen. Jnl.-Post LineCodeunit 1001 "Job Post-Line" (calls, 2 links)Job Post-LineCodeunit 442 "Sales-Post Prepayments" (calls, 2 links)Sales-Post PrepaymentsCodeunit 408 "DimensionManagement" (calls)DimensionManagementCodeunit 6200 "Non-Deductible VAT" (calls)Non-Deductible VAT

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.Sales.Posting · BC23-30 · source at ea08af5e · facts from BC29

Properties

Property Value
Permissions TableData “Invoice Posting Buffer” = rimd

Procedures

  • Check(TableID: Integer): Validates that the correct table is being used for invoice posting.
  • SetPreviewMode(NewPreviewMode: Boolean): Sets whether the invoice posting is running in preview mode.
  • SetSuppressCommit(NewSuppressCommit: Boolean): Sets whether database commits should be suppressed during invoice posting.
  • SetHideProgressWindow(NewHideProgressWindow: Boolean): Sets whether the progress window should be hidden during invoice posting.
  • SetParameters(NewInvoicePostingParameters: Record "Invoice Posting Parameters"): Sets the invoice posting parameters to be used during posting.
  • SetTotalLines(TotalDocumentLine: Variant; TotalDocumentLineLCY: Variant): Sets the total lines used for posting the customer ledger entry.
  • ClearBuffers(): Clears all temporary buffers used for deferral and invoice posting.
  • PrepareLine(DocumentHeaderVar: Variant; DocumentLineVar: Variant; DocumentLineACYVar: Variant): Prepares a sales line for invoice posting by calculating amounts and creating invoice posting buffer entries.
  • SetSalesTax(var SalesLine: Record "Sales Line"; var InvoicePostingBuffer: Record "Invoice Posting Buffer") + BC25 (internal)
  • PrepareInvoicePostingBuffer(var SalesLine: Record "Sales Line"; var InvoicePostingBuffer: Record "Invoice Posting Buffer") + BC25 Δ BC26: Initializes the invoice posting buffer with values from the sales line.
  • PostLines(DocumentHeaderVar: Variant; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line"; var Window: Dialog; var TotalAmount: Decimal): Posts all invoice posting buffer lines to the general ledger.
  • PrepareJobLine(SalesHeaderVar: Variant; SalesLineVar: Variant; SalesLineACYVar: Variant): Prepares and posts job-related entries for the sales line.
  • CheckCreditLine(SalesHeaderVar: Variant; SalesLineVar: Variant): Validates the sales line for credit memo posting. Currently not implemented.
  • PostLedgerEntry(SalesHeaderVar: Variant; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line"): Posts the customer ledger entry for the sales invoice or credit memo.
  • PostBalancingEntry(SalesHeaderVariant: Variant; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line"): Posts the balancing entry to apply payment to the customer ledger entry when a balancing account is specified.
  • CalcDeferralAmounts(SalesHeaderVar: Variant; SalesLineVar: Variant; OriginalDeferralAmount: Decimal): Calculates the deferral amounts for the sales line based on the quantity being invoiced.
  • CreatePostedDeferralSchedule(SalesLineVar: Variant; NewDocumentType: Integer; NewDocumentNo: Code[20]; NewLineNo: Integer; PostingDate: Date): Creates the posted deferral schedule from the sales line deferral information.

Plus 17 local procedures.

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.

Implements

Recent changes

Countries that replace it

AU, CA, IT, MX, NZ, 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 Post Invoice"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.

Evidence 1 sources