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

Codeunit 56 "Sales - Calc Discount By Type"

Base Application · Microsoft.Sales.Document

Across versions

  1. BC23present
  2. BC242 events added
  3. BC252 procedures added, 1 procedures changed
  4. BC26-30unchanged

Neighbourhood 34 connected objects and pages

Table 37 "Sales Line" (relates to)Sales LineCodeunit 5477 "Sales Invoice Aggregator" (event subscribers)Sales Invoice AggregatorCodeunit 5496 "Graph Mgt - Sales Order Buffer" (event subscribers)Graph Mgt - Sales Order BufferCodeunit 5506 "Graph Mgt - Sales Quote Buffer" (event subscribers)Graph Mgt - Sales Quote BufferCodeunit 5508 "Graph Mgt - Sal. Cr. Memo Buf." (event subscribers)Graph Mgt - Sal. Cr. Memo Buf.Codeunit 57 "Document Totals" (calls, 3 links)Document TotalsCodeunit 60 "Sales-Calc. Discount" (calls, 3 links)Sales-Calc. DiscountCodeunit 86 "Sales-Quote to Order" (calls, 2 links)Sales-Quote to OrderCodeunit 87 "Blanket Sales Order to Order" (calls, 2 links)Blanket Sales Order to OrderPage 95 "Sales Quote Subform" (calls, 2 links)Sales Quote SubformCodeunit 5341 "CRM Int. Table. Subscriber" (calls)Codeunit 5343 "CRM Sales Order to Sales Order" (calls)CRM Sales Order to Sales OrderCodeunit 5348 "CRM Quote to Sales Quote" (calls)CRM Quote to Sales QuoteCodeunit 5477 "Sales Invoice Aggregator" (calls)Sales Invoice AggregatorCodeunit 5496 "Graph Mgt - Sales Order Buffer" (calls)Codeunit 5506 "Graph Mgt - Sales Quote Buffer" (calls)Codeunit 5508 "Graph Mgt - Sal. Cr. Memo Buf." (calls)Graph Mgt - Sal. Cr. Memo Buf.Codeunit 65 "Discount Notification Mgt." (calls)Codeunit 9179 "Application Area Mgmt. Facade" (calls)Page 160 "Sales Statistics" (calls)Page 20012 "APIV1 - Sales Invoices" (calls)Page 20028 "APIV1 - Sales Orders" (calls)Page 20037 "APIV1 - Sales Quotes" (calls)Page 20038 "APIV1 - Sales Credit Memos" (calls)Page 30012 "APIV2 - Sales Invoices" (calls)Page 30028 "APIV2 - Sales Orders" (calls)Page 30037 "APIV2 - Sales Quotes" (calls)Page 30038 "APIV2 - Sales Credit Memos" (calls)Page 402 "Sales Order Statistics" (calls)Page 46 "Sales Order Subform" (calls)Page 47 "Sales Invoice Subform" (calls)Page 508 "Blanket Sales Order Subform" (calls)Page 6631 "Sales Return Order Subform" (calls)Page 96 "Sales Cr. Memo Subform" (calls)

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

Properties

Property Value
TableNo Sales Line

Events published

  • OnAfterResetRecalculateInvoiceDisc(var SalesHeader: Record "Sales Header") (integration)
  • OnBeforeApplyDefaultInvoiceDiscount(var SalesHeader: Record "Sales Header"; var IsHandled: Boolean; InvoiceDiscountAmount: Decimal) (integration)
  • OnBeforeApplyInvDiscBasedOnAmt(InvoiceDiscountAmount: Decimal; var SalesHeader: Record "Sales Header") (integration)
  • OnBeforeShouldRedistributeInvoiceDiscountAmount(var SalesHeader: Record "Sales Header"; var IsHandled: Boolean) (integration)
  • OnGetCustInvoiceDiscountPctOnCaseInvDiscCalcPercent(var SkipCustInvDiscCheck: Boolean) + BC24 (integration)
  • OnShouldRedistributeInvoiceDiscountAmountOnCaseInvDiscCalculationNone(SalesHeader: Record "Sales Header"; var ShouldRedistributeInvDiscAmt: Boolean) + BC24 (integration)

Procedures

  • ApplyDefaultInvoiceDiscount(InvoiceDiscountAmount: Decimal; var SalesHeader: Record "Sales Header"): Applies the default invoice discount to the sales header.
  • ApplyDefaultInvoiceDiscount(InvoiceDiscountAmount: Decimal; var SalesHeader: Record "Sales Header"; ModifyBeforeApplying: Boolean) (internal)
  • ApplyInvDiscBasedOnAmt(InvoiceDiscountAmount: Decimal; var SalesHeader: Record "Sales Header"): Applies invoice discount based on a specific amount.
  • GetCustInvoiceDiscountPct(SalesLine: Record "Sales Line"): Decimal: Gets the customer invoice discount percentage for a sales line.
  • ShouldRedistributeInvoiceDiscountAmount(var SalesHeader: Record "Sales Header"): Boolean: Determines whether the invoice discount amount should be redistributed.
  • ResetRecalculateInvoiceDisc(SalesHeader: Record "Sales Header"): Resets the recalculate invoice discount flag on all sales lines.
  • CustInvDiscRecExists(InvDiscCode: Code[20]): Boolean Δ BC25: Checks if a customer invoice discount record exists for the given code.
  • InvoiceDiscIsAllowed(InvDiscCode: Code[20]): Boolean: Checks if invoice discount is allowed for the given discount code.
  • CalcInvoiceDiscOnLine(CalcInvoiceDiscountOnLine: Boolean): Sets the flag to calculate invoice discount on a specific line.

Plus 4 local procedures.

Triggers

OnRun

Relations

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.

Called by

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 - Calc Discount By Type"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.

Evidence 1 sources