KVSKBAServiceCreditMemo
Events
OnUpdateRequestPageSettings(Enum KVSKBADocumentInitEventType, Boolean, Integer, Boolean, Boolean, Boolean, Boolean) :
Summary: Raised during request page lifecycle events to allow customization of report options.
[IntegrationEvent(true, false)]
local procedure OnUpdateRequestPageSettings(InitEventType: Enum "KVSKBADocumentInitEventType"; RequestPageAlreadyOpen: Boolean; var NoOfCopies: Integer; var ShowInternalInfo: Boolean; var PrintOnNotePaper: Boolean; var ShowTariffNo: Boolean; var ShowCountryOfOrigin: Boolean):
Parameters:
InitEventType: The lifecycle event type that triggered this call (OnOpenPage, OnClosePage, OnBeforeOnPreReport, OnAfterOnPreReport).RequestPageAlreadyOpen: Indicates whether the request page has already been opened in this session.NoOfCopies: The number of additional copies to print. Can be modified by subscribers.ShowInternalInfo: Specifies whether internal information is shown. Can be modified by subscribers.PrintOnNotePaper: Specifies whether the report prints on business letterhead paper. Can be modified by subscribers.ShowTariffNo: Specifies whether the tariff number is printed beneath each item line. Can be modified by subscribers.ShowCountryOfOrigin: Specifies whether the country/region of origin is printed beneath each item line. Can be modified by subscribers.
Remarks: Fired on OnOpenPage, OnClosePage, OnBeforeOnPreReport and OnAfterOnPreReport. Unlike the sales document reports, this event has 7 parameters (no ArchiveDocument, LogInteraction, DisplayAssemblyInfo, ShowItemTracking, or QuantityType). This event is local (not a public procedure), so no #pragma warning suppression is needed.
OnBeforeCreateDocumentHeader(Record KVSKBADocumentHeaderBuffer, Boolean, Record Service Cr.Memo Header, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(true, false)]
local procedure OnBeforeCreateDocumentHeader(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var Handled: Boolean; var DocumentHeader: Record "Service Cr.Memo Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnBeforeCreateDocumentAddress(Record KVSKBADocumentHeaderBuffer, Boolean, Record Service Cr.Memo Header, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(true, false)]
local procedure OnBeforeCreateDocumentAddress(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var Handled: Boolean; var DocumentHeader: Record "Service Cr.Memo Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnBeforeAddDocHeader(Record KVSKBADocumentHeaderBuffer, Record Service Cr.Memo Header, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(true, false)]
local procedure OnBeforeAddDocHeader(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Service Cr.Memo Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnBeforeCreateDocumentHeading(Record KVSKBADocumentHeaderBuffer, Boolean, Record Service Cr.Memo Header, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(true, false)]
local procedure OnBeforeCreateDocumentHeading(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var Handled: Boolean; var DocumentHeader: Record "Service Cr.Memo Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnAfterCreateDocumentHeading(Record KVSKBADocumentHeaderBuffer, Record Service Cr.Memo Header, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(true, false)]
local procedure OnAfterCreateDocumentHeading(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Service Cr.Memo Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnBeforeSetLanguageFormatAddress(Record Service Cr.Memo Header, Boolean) :
Summary: Raised before FormatAddress.SetLanguageCode is called with the service credit memo header's language code.
[IntegrationEvent(false, false)]
local procedure OnBeforeSetLanguageFormatAddress(var DocHeader: Record "Service Cr.Memo Header"; var IsHandled: Boolean):
Parameters:
DocHeader: The service credit memo header record currently being processed.IsHandled: Set to true to skip the default FormatAddress.SetLanguageCode call.
Remarks: Fired in the DocHeader OnAfterGetRecord trigger before document header and heading creation begin.
OnBeforeResetLanguageFormatAddress(Record Service Cr.Memo Header, Boolean) :
Summary: Raised before FormatAddress.SetLanguageCode is called with an empty string to reset the address language after heading creation.
[IntegrationEvent(false, false)]
local procedure OnBeforeResetLanguageFormatAddress(DocHeader: Record "Service Cr.Memo Header"; var GlobalIsHandled: Boolean):
Parameters:
DocHeader: The service credit memo header record currently being processed.GlobalIsHandled: Set to true to skip the default FormatAddress.SetLanguageCode('') reset call.
Remarks: Fired in the DocHeader OnAfterGetRecord trigger after CreateDocumentHeading and OnAfterCreateDocumentHeading have run.
OnPreDataItemDocHeaderText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Service Cr.Memo 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 "Service Cr.Memo Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnPostDataItemDocHeaderText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Service Cr.Memo Header, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(true, false)]
local procedure OnPostDataItemDocHeaderText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Service Cr.Memo Header"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnPreDataItemDocFooterText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Service Cr.Memo Header, Codeunit KVSKBAMasterDoc) :
OnPostDataItemDocFooterText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Service Cr.Memo Header, Codeunit KVSKBAMasterDoc) :
OnDocFooterFinished(Record KVSKBADocumentHeaderBuffer, Record Service Cr.Memo Header, Codeunit KVSKBAMasterDoc) :
OnAfterGetLineType(Record Service Cr.Memo Line, Enum KVSKBADocumentLineType) :
Summary: Raised after the document line type has been determined for the current service credit memo line.
[IntegrationEvent(false, false)]
local procedure OnAfterGetLineType(ServiceCrMemoLine: Record "Service Cr.Memo Line"; var KVSKBADocumentLineType: Enum "KVSKBADocumentLineType"):
Parameters:
ServiceCrMemoLine: The service credit memo line record for which the line type was resolved.KVSKBADocumentLineType: The resolved document line type. Can be modified by subscribers to override the default type assignment.
Remarks: The default logic maps the service line type to a KVSKBADocumentLineType using ReportUtils.GetServiceDocLineTypeByServiceLineType. Lines with a non-empty KVSKBANotBillable value (feature-flag-dependent) or a non-"No" KVSKBANullPosition value are assigned LineType::NullPosition. Use this event to override the type for specific line conditions not covered by the default mapping.
OnBeforeCheckForPageAndBlockBreak(Record KVSKBADocumentHeaderBuffer, Record Service Cr.Memo Header, Record Service Cr.Memo Line, Boolean, Boolean, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(false, false)]
local procedure OnBeforeCheckForPageAndBlockBreak(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentHeader: Record "Service Cr.Memo Header"; var DocumentLine: Record "Service Cr.Memo Line"; var SkipLine: Boolean; var IsHandled: Boolean; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnBeforeAddDocumentLine(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Service Cr.Memo Header, Record Service Cr.Memo Line, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(false, false)]
local procedure OnBeforeAddDocumentLine(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Service Cr.Memo Header"; var DocumentLine: Record "Service Cr.Memo Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnAfterAddDocumentLine(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Service Cr.Memo Header, Record Service Cr.Memo Line, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(false, false)]
local procedure OnAfterAddDocumentLine(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Service Cr.Memo Header"; var DocumentLine: Record "Service Cr.Memo Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnPreDataItemHeadLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Service Cr.Memo Header, Record Service Cr.Memo Line, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(false, false)]
local procedure OnPreDataItemHeadLineText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Service Cr.Memo Header"; var DocumentLine: Record "Service Cr.Memo Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnPostDataItemHeadLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Service Cr.Memo Header, Record Service Cr.Memo Line, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(false, false)]
local procedure OnPostDataItemHeadLineText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Service Cr.Memo Header"; var DocumentLine: Record "Service Cr.Memo Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnPreDataItemFootLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Service Cr.Memo Header, Record Service Cr.Memo Line, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(false, false)]
local procedure OnPreDataItemFootLineText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var isHandled: Boolean; var DocumentHeader: Record "Service Cr.Memo Header"; var DocumentLine: Record "Service Cr.Memo Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnPostDataItemFootLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Service Cr.Memo Header, Record Service Cr.Memo Line, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(false, false)]
local procedure OnPostDataItemFootLineText(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var DocumentHeader: Record "Service Cr.Memo Header"; var DocumentLine: Record "Service Cr.Memo Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnBeforeAddTariffNoAndCountryOfOriginInfo(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Boolean, Record Service Cr.Memo Header, Record Service Cr.Memo Line, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(false, false)]
local procedure OnBeforeAddTariffNoAndCountryOfOriginInfo(var DocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var DocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; var IsHandled: Boolean; var DocumentHeader: Record "Service Cr.Memo Header"; var DocumentLine: Record "Service Cr.Memo Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnAfterTransferTotalAmount(Record KVSKBADocumentHeaderBuffer, Record VAT Amount Line) :
Summary: Raised after all VAT total amounts have been transferred to the document header buffer in the DocLine OnPostDataItem trigger.
[IntegrationEvent(false, false)]
local procedure OnAfterTransferTotalAmount(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var TempVATAmountLine: Record "VAT Amount Line" temporary):
Parameters:
TempDocumentHeaderBuffer: The temporary document header buffer, already updated with VAT Amount, Total excl. VAT, Total incl. VAT, Total LCY, Total LineAmount, Inv. Disc. Amount, and VAT Amount Caption.TempVATAmountLine: The temporary VAT amount line buffer containing the accumulated totals.
Remarks: Fired before MasterDoc.UpdateDocHeader. Unlike the sales document reports, this report does not set Payment Disc. on VAT, Prepayment Total Amount, or Prepayment VAT Amount in the transfer. Use this event to modify or extend the total fields on DocumentHeaderBuffer before they are committed to the master document.
OnBeforeAddTariffNoAndCountryOfOriginInfoDocLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Service Cr.Memo Header, Record Service Cr.Memo Line, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(false, false)]
local procedure OnBeforeAddTariffNoAndCountryOfOriginInfoDocLineText(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var TempDocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; DocumentHeader: Record "Service Cr.Memo Header"; DocumentLine: Record "Service Cr.Memo Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnAfterAddTariffNoAndCountryOfOriginInfoDocLineText(Record KVSKBADocumentHeaderBuffer, Record KVSKBADocumentLineBuffer, Record Service Cr.Memo Header, Record Service Cr.Memo Line, Codeunit KVSKBAMasterDoc) :
[IntegrationEvent(false, false)]
local procedure OnAfterAddTariffNoAndCountryOfOriginInfoDocLineText(var TempDocumentHeaderBuffer: Record "KVSKBADocumentHeaderBuffer" temporary; var TempDocumentLineBuffer: Record "KVSKBADocumentLineBuffer" temporary; DocumentHeader: Record "Service Cr.Memo Header"; DocumentLine: Record "Service Cr.Memo Line"; var MasterDoc: Codeunit "KVSKBAMasterDoc"):
OnCasePrintVatSpecificationOnCaseElse(Enum KVSKBAPrintVatSpecification, Record VAT Amount Line, Boolean) :
Summary: Raised in the else-branch of the VAT specification case statement, allowing subscribers to define custom suppression logic for non-standard KVSKBAPrintVatSpecification values.
[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 matched the else-branch.TempVATAmountLine: The temporary VAT amount line buffer. Can be filtered or modified by subscribers.SkipVATSpecVerification: Set to true to break the VATSpec data item (suppress the VAT specification block) for this custom value.
Remarks: The VATSpec check uses GetTotalVATAmount() = 0 (break) and Count() ≤ 1 (break) as the built-in conditions. VATClauseSpec uses the same TempGlobalVATAmountLine buffer. VATSpecLCY uses a simpler condition: not (GLSetup."Print VAT specification in LCY") or empty currency or GetTotalVATAmount() = 0, without a SkipVATSpecVerification parameter.
Protected Variables
GlobalPrintOnNotePaper
Type: Boolean
GlobalShowCountryOfOrigin
Type: Boolean
GlobalShowInternalInfo
Type: Boolean
GlobalShowTariffNo
Type: Boolean
GlobalNoOfCopies
Type: Integer