Table of Contents

KVSKBASalesProformainvoice

Procedures

AddItemTrackingLines() :

Summary: Adds item tracking heading and line rows inline beneath the current document line when GlobalShowItemTracking = DocLines.

procedure AddItemTrackingLines(): 

Remarks: Called from the DocLines OnAfterGetRecord trigger (after OnBeforeAddItemTrackingLines) when TempTrackingSpecBuffer has entries for the current line. TempTrackingSpecBuffer must already be filtered to the current line's Source Ref. No. before calling. The procedure first iterates TempTrackingSpecBuffer to determine which captions (LotNo, SerialNo, Quantity) are needed, then calls OnBeforeAddItemTrackingHeading / MasterDoc.AddItemTrackingHeading, and then iterates again calling OnBeforeAddItemTrackingLine / MasterDoc.AddItemTrackingLine for each entry. Declared as a public procedure (no access modifier) so that extension codeunits can call it when subscribing to OnBeforeAddItemTrackingLines.

OnUpdateRequestPageSettings(Enum KVSKBADocumentInitEventType, Boolean, Integer, Boolean, Boolean, Boolean, Boolean, Boolean, Option, Boolean, Boolean, Option) :

OBSOLETE

This Element will be removed or changed with a future Version of the App.

Summary: Raised at multiple stages of request page initialization so that subscribers can read or modify report option settings.

[Obsolete('Not intended for public use. Will be internal in future releases. This does only affect procedure caller not subscribers. The event remains in place.', '26.4')]
[IntegrationEvent(true, false)]
procedure OnUpdateRequestPageSettings(InitEventType: Enum "KVSKBADocumentInitEventType"; RequestPageAlreadyOpen: Boolean; var NoOfCopies: Integer; var ShowInternalInfo: Boolean; var ArchiveDocument: Boolean; var LogInteraction: Boolean; var PrintOnNotePaper: Boolean; var DisplayAssemblyInfo: Boolean; var ShowItemTracking: Option; var ShowTariffNo: Boolean; var ShowCountryOfOrigin: Boolean; var QuantityType: Option): 

Parameters:

  • InitEventType: Identifies the lifecycle stage at which the event is raised (e.g. OnOpenPage, OnClosePage, OnBeforeOnPreReport, OnAfterOnPreReport).
  • RequestPageAlreadyOpen: Indicates whether the request page has already been shown to the user in the current session (managed via KVSKBADocDispSingleInstance).
  • NoOfCopies: The number of additional copies to print. Modifiable by subscribers.
  • ShowInternalInfo: Specifies whether internal information should be printed. Modifiable by subscribers.
  • ArchiveDocument: Specifies whether the document should be archived. Modifiable by subscribers.
  • LogInteraction: Specifies whether the print action should be logged as an interaction. Modifiable by subscribers.
  • PrintOnNotePaper: Specifies whether the report should suppress the company logo so that pre-printed letterhead paper can be used. Modifiable by subscribers.
  • DisplayAssemblyInfo: Specifies whether assembly BOM information is shown on report lines. Modifiable by subscribers.
  • ShowItemTracking: Controls how serial/lot numbers are displayed (None / DocLines / ItemTrackingTable). Modifiable by subscribers.
  • ShowTariffNo: Specifies whether the tariff/commodity code is printed on item lines. Modifiable by subscribers.
  • ShowCountryOfOrigin: Specifies whether the country/region of origin is printed on item lines. Modifiable by subscribers.
  • QuantityType: Controls which quantity field is used for GetSalesLines (General / Qty. to Invoice / Qty. to Ship). Applied only when the document type is Order; Invoice type always uses General (0). Modifiable by subscribers.

Remarks: This event is declared as public but is marked Obsolete; it will be changed to internal in a future release. Subscribers are not affected by the Obsolete tag. Raised in OnOpenPage, OnClosePage, OnPreReport (before and after applying DocumentDispSingleInstance.GetPrintWithLogo logic). For preview-without-logo scenarios the overrides are applied between the two OnPreReport raises. Unlike the Pro Forma Credit Memo report, this event includes the QuantityType parameter.

Events

OnUpdateRequestPageSettings(Enum KVSKBADocumentInitEventType, Boolean, Integer, Boolean, Boolean, Boolean, Boolean, Boolean, Option, Boolean, Boolean, Option) :

OBSOLETE

This Element will be removed or changed with a future Version of the App.

Summary: Raised at multiple stages of request page initialization so that subscribers can read or modify report option settings.

[Obsolete('Not intended for public use. Will be internal in future releases. This does only affect procedure caller not subscribers. The event remains in place.', '26.4')]
[IntegrationEvent(true, false)]
procedure OnUpdateRequestPageSettings(InitEventType: Enum "KVSKBADocumentInitEventType"; RequestPageAlreadyOpen: Boolean; var NoOfCopies: Integer; var ShowInternalInfo: Boolean; var ArchiveDocument: Boolean; var LogInteraction: Boolean; var PrintOnNotePaper: Boolean; var DisplayAssemblyInfo: Boolean; var ShowItemTracking: Option; var ShowTariffNo: Boolean; var ShowCountryOfOrigin: Boolean; var QuantityType: Option): 

Parameters:

  • InitEventType: Identifies the lifecycle stage at which the event is raised (e.g. OnOpenPage, OnClosePage, OnBeforeOnPreReport, OnAfterOnPreReport).
  • RequestPageAlreadyOpen: Indicates whether the request page has already been shown to the user in the current session (managed via KVSKBADocDispSingleInstance).
  • NoOfCopies: The number of additional copies to print. Modifiable by subscribers.
  • ShowInternalInfo: Specifies whether internal information should be printed. Modifiable by subscribers.
  • ArchiveDocument: Specifies whether the document should be archived. Modifiable by subscribers.
  • LogInteraction: Specifies whether the print action should be logged as an interaction. Modifiable by subscribers.
  • PrintOnNotePaper: Specifies whether the report should suppress the company logo so that pre-printed letterhead paper can be used. Modifiable by subscribers.
  • DisplayAssemblyInfo: Specifies whether assembly BOM information is shown on report lines. Modifiable by subscribers.
  • ShowItemTracking: Controls how serial/lot numbers are displayed (None / DocLines / ItemTrackingTable). Modifiable by subscribers.
  • ShowTariffNo: Specifies whether the tariff/commodity code is printed on item lines. Modifiable by subscribers.
  • ShowCountryOfOrigin: Specifies whether the country/region of origin is printed on item lines. Modifiable by subscribers.
  • QuantityType: Controls which quantity field is used for GetSalesLines (General / Qty. to Invoice / Qty. to Ship). Applied only when the document type is Order; Invoice type always uses General (0). Modifiable by subscribers.

Remarks: This event is declared as public but is marked Obsolete; it will be changed to internal in a future release. Subscribers are not affected by the Obsolete tag. Raised in OnOpenPage, OnClosePage, OnPreReport (before and after applying DocumentDispSingleInstance.GetPrintWithLogo logic). For preview-without-logo scenarios the overrides are applied between the two OnPreReport raises. Unlike the Pro Forma Credit Memo report, this event includes the QuantityType parameter.

OnBeforeCheckDocStructureOnAfterGetRecord(Record Sales Header, Boolean, Boolean) :

Summary: Raised before the document structure validation logic is executed in the DocHeader OnAfterGetRecord trigger.

[IntegrationEvent(true, false)]
local procedure OnBeforeCheckDocStructureOnAfterGetRecord(var DocumentHeader: Record "Sales Header"; var Handled: Boolean; PrintOutput: Boolean): 

Parameters:

  • DocumentHeader: The sales header currently being processed (Order or Invoice).
  • Handled: Set to true to skip the standard structure validation (position-number calculation and check, SalesLib.CheckTotalStructureInSalesLine).
  • PrintOutput: Indicates whether the report will produce print output. False when the report runs in preview or e-mail-body context.

Remarks: This event includes the PrintOutput parameter, which is unique among the header events of this report family. Subscribers that need to conditionally suppress validation for non-print runs should check PrintOutput before setting Handled.

OnBeforeCalculateInvoiceNo(Record KVSKBADocumentHeaderBuffer, Record Sales Header, Code[20], Code[20], Text[50], Boolean, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnBeforeCalculateInvoiceNo(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var InvoiceNo: Code[20]; var OrderNo: Code[20]; var OrderNoCaption: Text[50]; var Handled: Boolean; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeCreateDocumentHeader(Record KVSKBADocumentHeaderBuffer, Boolean, Record Sales Header, Codeunit KVSKBAMasterDoc, Code[20], Code[20], Text[50]) :

[IntegrationEvent(true, false)]
local procedure OnBeforeCreateDocumentHeader(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var Handled: Boolean; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"; var InvoiceNo: Code[20]; var OrderNo: Code[20]; var OrderNoCaption: Text[50]): 

OnBeforeCreateDocumentAddress(Record KVSKBADocumentHeaderBuffer, Boolean, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnBeforeCreateDocumentAddress(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var Handled: Boolean; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddDocHeader(Record KVSKBADocumentHeaderBuffer, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnBeforeAddDocHeader(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeCreateDocumentHeading(Record KVSKBADocumentHeaderBuffer, Boolean, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnBeforeCreateDocumentHeading(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var Handled: Boolean; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterCreateDocumentHeading(Record KVSKBADocumentHeaderBuffer, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnAfterCreateDocumentHeading(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPreDataItemDocHeaderText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPreDataItemDocHeaderText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPostDataItemDocHeaderText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPostDataItemDocHeaderText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPreDataItemDocFooterText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPreDataItemDocFooterText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPostDataItemDocFooterText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPostDataItemDocFooterText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnDocFooterFinished(Record KVSKBADocumentHeaderBuffer, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnDocFooterFinished(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeCheckForPageAndBlockBreak(Record KVSKBADocumentHeaderBuffer, Record Sales Header, Record Sales Line, Boolean, Boolean, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeCheckForPageAndBlockBreak(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var skipLine: Boolean; var isHandled: Boolean; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddDocumentLine(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddDocumentLine(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterAddDocumentLine(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnAfterAddDocumentLine(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeInitBySalesLine(Record KVSKBADocumentLineBuffer, Record KVSKBADocumentHeaderBuffer, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeInitBySalesLine(var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterInitBySalesLine(Record KVSKBADocumentLineBuffer, Record KVSKBADocumentHeaderBuffer, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnAfterInitBySalesLine(var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddTariffNoAndCountryOfOriginInfo(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc, Boolean, Boolean) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddTariffNoAndCountryOfOriginInfo(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"; var ShowCountryOfOrigin: Boolean; var ShowTariffNo: Boolean): 

OnBeforeAddItemAttributeInfo(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddItemAttributeInfo(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddSubscriptionLineInfo(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Sales Header, Record Sales Line, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddSubscriptionLineInfo(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var IsHandled: Boolean; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; TempServiceCommitmentForLine: Record "Sales Line" temporary; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddChargeAssignmentInfo(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Sales Header, Record Sales Line, Record Item Charge Assignment (Sales), Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddChargeAssignmentInfo(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var ItemChargeAssignment: Record "Item Charge Assignment (Sales)"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterAddDocLineInfo(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnAfterAddDocLineInfo(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPreDataItemHeadLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPreDataItemHeadLineText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPostDataItemHeadLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPostDataItemHeadLineText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPreDataItemFootLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPreDataItemFootLineText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPostDataItemFootLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnPostDataItemFootLineText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddSubscriptionTotalInfo(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Sales Header, Record Name/Value Buffer, Record Name/Value Buffer, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddSubscriptionTotalInfo(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var IsHandled: Boolean; var DocumentHeader: Record "Sales Header"; var TempServiceCommitmentsGroup: Record "Name/Value Buffer" temporary; var TempServiceCommitmentsGroupPerPeriod: Record "Name/Value Buffer" temporary; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddShipmentMethod(Record KVSKBADocumentHeaderBuffer, Record Shipment Method, Boolean, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddShipmentMethod(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var ShipmentMethod: Record "Shipment Method"; var isHandled: Boolean; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterAddShipmentMethod(Record KVSKBADocumentHeaderBuffer, Record Shipment Method, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnAfterAddShipmentMethod(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var ShipmentMethod: Record "Shipment Method"; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddPaymentTerms(Record KVSKBADocumentHeaderBuffer, Record Payment Terms, Boolean, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddPaymentTerms(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var PaymentTerms: Record "Payment Terms"; var isHandled: Boolean; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterAddPaymentTerms(Record KVSKBADocumentHeaderBuffer, Record Payment Terms, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnAfterAddPaymentTerms(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var PaymentTerms: Record "Payment Terms"; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnCasePrintVatSpecificationOnCaseElse(Enum KVSKBAPrintVatSpecification, Record VAT Amount Line, Boolean) :

Summary: Raised in the case-else branch of the KVSKBAPrintVatSpecificonDocs evaluation inside the VATSpec OnPreDataItem trigger.

[IntegrationEvent(false, false)]
local procedure OnCasePrintVatSpecificationOnCaseElse(PrintVatSpecification: Enum "KVSKBAPrintVatSpecification"; var TempVATAmountLine: Record "VAT Amount Line" temporary; var SkipVATSpecVerification: Boolean): 

Parameters:

  • PrintVatSpecification: The current value of CompanyInfo.KVSKBAPrintVatSpecificonDocs that triggered the case-else branch.
  • TempVATAmountLine: The temporary VAT amount line buffer. Modifiable by subscribers (e.g. to apply custom filters).
  • SkipVATSpecVerification: Set to true to break the VATSpec data item iteration (suppress the VAT spec table) for the matched case-else value.

Remarks: The standard case block handles only KVSKBAPrintVatSpecificonDocs::OnlywithdiffVATIdentifier. All other enum values fall into the case-else and raise this event. Subscribers can implement custom suppression logic for their own KVSKBAPrintVatSpecificonDocs enum extensions. Setting SkipVATSpecVerification = true causes CurrReport.Break to be called.

OnPreDataItemVATSpec(Record KVSKBADocumentHeaderBuffer, Record Sales Header, Record VAT Amount Line, Boolean, Boolean, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnPreDataItemVATSpec(var KVSKBADocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var TempVATAmountLine: Record "VAT Amount Line" temporary; var SkipVATSpecVerification: Boolean; var IsHandled: Boolean; var KVSKBAMasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddDocVATSpecLine(Record KVSKBADocumentHeaderBuffer, Record Sales Header, Record VAT Amount Line, Boolean, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddDocVATSpecLine(var KVSKBADocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var TempVATAmountLine: Record "VAT Amount Line" temporary; var IsHandled: Boolean; var KVSKBAMasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPreDataItemVATSpecLCY(Record KVSKBADocumentHeaderBuffer, Record Sales Header, Record VAT Amount Line, Boolean, Boolean, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnPreDataItemVATSpecLCY(var KVSKBADocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var TempVATAmountLine: Record "VAT Amount Line" temporary; var SkipVATSpecVerification: Boolean; var IsHandled: Boolean; var KVSKBAMasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddDocVATSpecLineLCY(Record KVSKBADocumentHeaderBuffer, Record Sales Header, Record VAT Amount Line, Boolean, Text[50], Decimal, Decimal, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddDocVATSpecLineLCY(var KVSKBADocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var TempVATAmountLine: Record "VAT Amount Line" temporary; var IsHandled: Boolean; var VALExchRate: Text[50]; var VALVATBaseLCY: Decimal; var VALVATAmountLCY: Decimal; var KVSKBAMasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnPreDataItemVATClauseSpec(Record KVSKBADocumentHeaderBuffer, Record Sales Header, Record VAT Amount Line, Boolean, Record VAT Clause, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnPreDataItemVATClauseSpec(var KVSKBADocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var TempVATAmountLine: Record "VAT Amount Line" temporary; var IsHandled: Boolean; var VATClause: Record "VAT Clause"; var KVSKBAMasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddDocVATClause(Record KVSKBADocumentHeaderBuffer, Record Sales Header, Record VAT Amount Line, Boolean, Record VAT Clause, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddDocVATClause(var KVSKBADocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var TempVATAmountLine: Record "VAT Amount Line" temporary; var IsHandled: Boolean; var VATClause: Record "VAT Clause"; var KVSKBAMasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddItemTrackingAppendix(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Sales Header, Option, Record Tracking Specification, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(true, false)]
local procedure OnBeforeAddItemTrackingAppendix(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var TempDocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var IsHandled: Boolean; var DocumentHeader: Record "Sales Header"; var ShowItemTracking: Option; var TempTrackingSpecBuffer: Record "Tracking Specification" temporary; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddItemTrackingAppendixLine(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Sales Header, Record Sales Invoice Line, Record Tracking Specification, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddItemTrackingAppendixLine(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var TempDocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var IsHandled: Boolean; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Invoice Line"; var TempTrackingSpecBuffer: Record "Tracking Specification" temporary; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddItemTrackingLines(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Sales Header, Record Sales Line, Record Tracking Specification, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddItemTrackingLines(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var TempDocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var IsHandled: Boolean; var DocumentHeader: Record "Sales Header"; var DocumentLine: Record "Sales Line"; var TempTrackingSpecBuffer: Record "Tracking Specification" temporary; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddItemTrackingHeading(Record KVSKBADocumentHeaderBuffer, Enum KVSKBADocumentTableType, Integer, Text[250], Text[50], Text[50], Text[30], Record Tracking Specification, Boolean, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddItemTrackingHeading(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; DocumentTableType: Enum "KVSKBADocumentTableType"; var LineNo: Integer; Format: Text[250]; var LotNoCaption: Text[50]; var SerialNoCaption: Text[50]; var QuantityCaption: Text[30]; var TempTrackingSpecification: Record "Tracking Specification" temporary; var SkipStandardCode: Boolean; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddItemTrackingLine(Record KVSKBADocumentHeaderBuffer, Enum KVSKBADocumentTableType, Integer, Text[250], Code[20], Text[250], Code[20], Record Tracking Specification, Text[30], Boolean, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddItemTrackingLine(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; DocumentTableType: Enum "KVSKBADocumentTableType"; var LineNo: Integer; Format: Text[250]; PositionNo: Code[20]; Description: Text[250]; ItemNo: Code[20]; var TempTrackingSpecification: Record "Tracking Specification" temporary; SortTrigger: Text[30]; var SkipStandardCode: Boolean; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterGetRecordCopyLoop(Record KVSKBADocumentHeaderBuffer, Record Sales Header, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnAfterGetRecordCopyLoop(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterGetRecordCopyLoop2(Record KVSKBADocumentHeaderBuffer, Record Sales Header, Codeunit KVSKBAMasterDoc, Integer) :

[IntegrationEvent(false, false)]
local procedure OnAfterGetRecordCopyLoop2(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Sales Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"; CopyLoopNumber: Integer): 

OnAfterGetSalesPostGetSalesLines(Record Sales Header, Record Sales Line, Integer) :

Summary: Raised after SalesPost.GetSalesLines has populated TempGlobalSalesLine for the current document.

[IntegrationEvent(false, false)]
local procedure OnAfterGetSalesPostGetSalesLines(DocHeader: Record "Sales Header"; var TempSalesLine: Record "Sales Line" temporary; QtyType: Integer): 

Parameters:

  • DocHeader: The sales header being processed (Order or Invoice).
  • TempSalesLine: The temporary sales line buffer populated by SalesPost.GetSalesLines. Modifiable by subscribers. Changes affect all subsequent line processing including VAT calculation.
  • QtyType: The quantity type code passed to GetSalesLines. For Document Type = Order this equals GlobalQuantityType (0 = General, 1 = Qty. to Invoice, 2 = Qty. to Ship); for Document Type = Invoice this is always 0 (General). Not modifiable but provided for context.

Remarks: This event provides a hook to add, remove or modify lines in TempGlobalSalesLine before the VAT amount lines are calculated (TempGlobalSalesLine.CalcVATAmountLines and UpdateVATOnLines). Subscribers must be aware that modifying TempSalesLine at this point affects all downstream processing including totals, VAT and the line output loop.

OnBeforeSetLanguageFormatAddress(Record Sales Header, Boolean) :

Summary: Raised before the language code for FormatAddress is set from the document header in DocHeader OnAfterGetRecord.

[IntegrationEvent(false, false)]
local procedure OnBeforeSetLanguageFormatAddress(DocHeader: Record "Sales Header"; var IsHandled: Boolean): 

Parameters:

  • DocHeader: The sales header whose Language Code will be passed to FormatAddress.SetLanguageCode.
  • IsHandled: Set to true to skip the standard FormatAddress.SetLanguageCode(DocHeader."Language Code") call.

Remarks: This event allows subscribers to apply a different language or to prevent the language override entirely. The language reset (FormatAddress.SetLanguageCode('')) is controlled separately by OnBeforeResetLanguageFormatAddress.

OnBeforeResetLanguageFormatAddress(Record Sales Header, Boolean) :

Summary: Raised before FormatAddress language is reset to empty at the end of DocHeader OnAfterGetRecord processing.

[IntegrationEvent(false, false)]
local procedure OnBeforeResetLanguageFormatAddress(DocHeader: Record "Sales Header"; var GlobalIsHandled: Boolean): 

Parameters:

  • DocHeader: The sales header that has just been processed.
  • GlobalIsHandled: Set to true to skip the standard FormatAddress.SetLanguageCode('') reset call.

Remarks: The language is reset to empty after all header and heading processing is complete, and before FillServiceCommitmentsForLine and FillServiceCommitmentsGroupPerPeriod are called. Suppress the reset (set GlobalIsHandled = true) only if the remainder of the report must also operate in the document language.

OnAfterTransferTotalAmount(Record KVSKBADocumentHeaderBuffer, Record VAT Amount Line) :

Summary: Raised after the VAT total amounts have been transferred to the document header buffer in the RoundLoop OnPostDataItem trigger.

[IntegrationEvent(false, false)]
local procedure OnAfterTransferTotalAmount(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var TempVATAmountLine: Record "VAT Amount Line" temporary): 

Parameters:

  • TempDocumentHeaderBuffer: The document header buffer for the current document after the total amounts have been updated.
  • TempVATAmountLine: The temporary VAT amount line buffer containing the aggregated VAT totals.

Remarks: At this point NNC_ totals (NNC_TotalExclVAT, NNC_VATAmt, NNC_TotalInclVAT, etc.) have been updated and written into the document header buffer. Prepayment amounts (PrepmtVATAmount, PrepmtTotalAmountInclVAT) are also available at this point. If PrepmtTotalAmountInclVAT is non-zero and Prepmt. Payment Terms Code is set, TempDocHeaderBuffer."Prepayment Payment Terms" has already been populated. Subscribers can perform additional total calculations or audit the written amounts.

OnBeforeAddTariffNoAndCountryOfOriginInfoDocLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddTariffNoAndCountryOfOriginInfoDocLineText(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var TempDocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; DocumentHeader: Record "Sales Header"; DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterAddTariffNoAndCountryOfOriginInfoDocLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnAfterAddTariffNoAndCountryOfOriginInfoDocLineText(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var TempDocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; DocumentHeader: Record "Sales Header"; DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeAddChargeAssignmentInfoDocLine(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnBeforeAddChargeAssignmentInfoDocLine(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var TempDocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; DocumentHeader: Record "Sales Header"; DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnAfterAddChargeAssignmentInfoDocLine(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Sales Header, Record Sales Line, Codeunit KVSKBAMasterDoc) :

[IntegrationEvent(false, false)]
local procedure OnAfterAddChargeAssignmentInfoDocLine(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var TempDocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; DocumentHeader: Record "Sales Header"; DocumentLine: Record "Sales Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"): 

OnBeforeFillSubscriptionLinesForLine(Record Sales Header, Record Sales Line, Record Name/Value Buffer) :

Summary: Raised at the start of FillServiceCommitmentsForLine, before GlobalSalesReportPrintoutMgmt.FillServiceCommitmentsForLine is called.

[IntegrationEvent(false, false)]
local procedure OnBeforeFillSubscriptionLinesForLine(DocHeader: Record "Sales Header"; var SubscriptionLineForLine: Record "Sales Line"; var SubscriptionLineForLineCaption: Record "Name/Value Buffer"): 

Parameters:

  • DocHeader: The sales header for which subscription commitment lines are being collected.
  • SubscriptionLineForLine: The temporary "Sales Line" buffer that will receive the service commitment entries. Subscribers can pre-populate or clear this buffer before the standard fill runs.
  • SubscriptionLineForLineCaption: The temporary Name/Value Buffer that will receive the caption entries for the service commitment columns. Subscribers can add or override captions here.

Remarks: FillServiceCommitmentsForLine is called from DocHeader OnAfterGetRecord after the language reset. The buffers are cleared (DeleteAll) before this event fires. After this event, GlobalSalesReportPrintoutMgmt.FillServiceCommitmentsForLine appends the standard subscription entries. Subscribers can use this event to add custom subscription entries or to modify captions before the standard fill.

OnBeforeFillSubscriptionLinesGroupPerPeriod(Record Sales Header, Record Name/Value Buffer) :

Summary: Raised at the start of FillServiceCommitmentsGroupPerPeriod, before GlobalSalesReportPrintoutMgmt.FillServiceCommitmentsGroups is called.

[IntegrationEvent(false, false)]
local procedure OnBeforeFillSubscriptionLinesGroupPerPeriod(DocHeader: Record "Sales Header"; var SubscriptionLinesGroupPerPeriod: Record "Name/Value Buffer"): 

Parameters:

  • DocHeader: The sales header for which subscription commitment totals by billing period are being collected.
  • SubscriptionLinesGroupPerPeriod: The temporary Name/Value Buffer that will receive the subscription commitment totals broken down by billing period. Subscribers can pre-populate this buffer before the standard fill runs.

Remarks: FillServiceCommitmentsGroupPerPeriod is called from DocHeader OnAfterGetRecord after FillServiceCommitmentsForLine. Both TempGlobalServiceCommitmentsGroup and TempGlobalServiceCommitmentsGroupPerPeriod are cleared (DeleteAll) before this event fires. After this event, GlobalSalesReportPrintoutMgmt.FillServiceCommitmentsGroups appends the standard grouped totals. Subscribers can use this event to add custom period-grouped entries before the standard fill.

Protected Variables

Item

Type: Record Item

GlobalItemChargeAssignment

Type: Record Item Charge Assignment (Sales)

TempDocHeaderBuffer

Type: Record (KVSKBADocumentHeaderBuffer) temporary

TempDocLineBuffer

Type: Record (KVSKBADocumentLineBuffer) temporary

DocLineFormatRec

Type: Record (KVSKBADocumentLineFormat)

SalesSetup

Type: Record Sales & Receivables Setup

GlobalMasterDoc

Type: Codeunit (KVSKBAMasterDoc)

KFWMasterDocReportMgt

Type: Codeunit (KVSKBAMasterDocReportMgt)

ReportUtils

Type: Codeunit (KVSKBAReportUtilities)

GlobalArchiveDocument

Type: Boolean

GlobalDisplayAssemblyInfo

Type: Boolean

GlobalLogInteraction

Type: Boolean

GlobalPrintOnNotePaper

Type: Boolean

GlobalShowCountryOfOrigin

Type: Boolean

GlobalShowInternalInfo

Type: Boolean

GlobalShowTariffNo

Type: Boolean

CrossRefNo

Type: Code[50]

GlobalNoOfCopies

Type: Integer

LineCounter

Type: Integer

GlobalQuantityType

Type: Option

GlobalShowItemTracking

Type: Option

TextBuffer

Type: Text