Skip to content

KVSPSACreateInvoiceFromInvSug#

Procedures#

GetSuitableInvoiceResource(Code[20], Code[20]) : Code[20]#

Summary: Find a suitable billing resource for the given Gen. Prod. Posting Group. where "KVSPSABilling Resource" and "KVSPSAUseable in Sales" are set to "true" and "Blocked" is set to "false".

procedure GetSuitableInvoiceResource(GenProdPostingGroup: Code[20]; ResourceNoOrResourceGroupNo: Code[20]): Code[20]

Parameters:

  • GenProdPostingGroup: Gen. Prod. Posting Group from the source resource / resource group
  • ResourceNoOrResourceGroupNo: No. from the source resource / resource group

Returns:

MainFunction(Code[20], Code[20]) :#

Summary: Main function to create invoices from invoice suggestions. This function prepares sales orders, creates shipments, and invoices based on the invoice suggestions. It handles existing invoice ledger entries, checks sales lines for job invoices, and updates invoices. It also creates invoices for job payment plans and opens the created documents. The function uses various global variables to keep track of the created documents and counters. It also handles the case where there are unposted invoice ledger entries in sales orders. The function is designed to be called with a worksheet template and worksheet name, which are used to filter the invoice suggestions.

procedure MainFunction(WorksheetTemplate: Code[20]; WorksheetName: Code[20]): 

Parameters:

  • WorksheetTemplate: The template of the worksheet to be used for filtering invoice suggestions.
  • WorksheetName: The name of the worksheet to be used for filtering invoice suggestions.

SetSalesLineTypeAndNoByWorkPackage(Record Sales Line, Record KVSPSAWork Package) :#

Summary: Set the Invoice Type and Invoice No. by validate the fields with values from the WorkPackage.

procedure SetSalesLineTypeAndNoByWorkPackage(var SalesLine: Record "Sales Line"; WorkPackage: Record "KVSPSAWork Package"): 

Parameters:

  • SalesLine:
  • WorkPackage:

SetSalesLineTypeAndNoForInvoiceLedgerEntryTypeGLAccount(Record Sales Line, Record KVSPSAInvoice Ledger Entry) : Boolean#

Summary: The functions calls the Procedure SetSalesLineTypeAndNoByWorkPackage to set Type and No. based on Invoice Values. After that it may update the description from the PSP

procedure SetSalesLineTypeAndNoForInvoiceLedgerEntryTypeGLAccount(var SalesLine: Record "Sales Line"; InvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry"): Boolean

Parameters:

  • SalesLine:
  • InvoiceLedgerEntry:

Returns:

Events#

KVSPSAOnAfterCopyInvoiceSuggestionLineFieldToSalesLine(Record Sales Line, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterCopyInvoiceSuggestionLineFieldToSalesLine(var SalesLine: Record "Sales Line"; InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterCopyInvoiceSuggestionLineFieldToSalesLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterCopyInvoiceSuggestionLineFieldToSalesLine(var SalesLine: Record "Sales Line"; InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnAfterCreateInvoiceEntryForPreparingSalesOrder(Record Sales Line, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterCreateInvoiceEntryForPreparingSalesOrder(var SalesLine: Record "Sales Line"; InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterCreateInvoiceEntryForPreparingSalesOrder', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterCreateInvoiceEntryForPreparingSalesOrder(var SalesLine: Record "Sales Line"; InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnAfterCreateInvoiceLine(Record Sales Line, Record Sales Header, Integer, Decimal, Record KVSPSAInvoice Ledger Entry) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterCreateInvoiceLine(var NewSalesLine: Record "Sales Line"; var TempSalesHeader: Record "Sales Header" temporary; NextLineNo: Integer; DeductionQty: Decimal; var TempInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterCreateInvoiceLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterCreateInvoiceLine(var NewSalesLine: Record "Sales Line"; var TempSalesHeader: Record "Sales Header" temporary; NextLineNo: Integer; DeductionQty: Decimal; var TempInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary)
begin
end;

KVSPSAOnAfterCreateInvoicesFromInvSugLines(Code[20], Code[20], Integer, Code[20], Code[20], Integer, Code[20], Integer, Code[20], Integer, Code[20], Code[20], Code[20]) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterCreateInvoicesFromInvSugLines(WorksheetTemplate: Code[20]; WorksheetName: Code[20]; var InvoiceCounter: Integer; var FirstInvoiceNo: Code[20]; var LastInvoiceNo: Code[20]; var PrepareCounter: Integer; var PreparedSalesOrderNo: Code[20]; var JobPaymInvoicesCounter: Integer; var JobPaymInvoiceNo: Code[20]; var JobPaymCrMemosCounter: Integer; var JobPaymCrMemoNo: Code[20]; var LastJobPaymentInvoiceNo: Code[20]; var LastJobPaymentCreditMemoNo: Code[20]): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterCreateInvoicesFromInvSugLines', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterCreateInvoicesFromInvSugLines(WorksheetTemplate: Code[20]; WorksheetName: Code[20]; var InvoiceCounter: Integer; var FirstInvoiceNo: Code[20]; var LastInvoiceNo: Code[20]; var PrepareCounter: Integer; var PreparedSalesOrderNo: Code[20]; var JobPaymInvoicesCounter: Integer; var JobPaymInvoiceNo: Code[20]; var JobPaymCrMemosCounter: Integer; var JobPaymCrMemoNo: Code[20]; var LastJobPaymentInvoiceNo: Code[20]; var LastJobPaymentCreditMemoNo: Code[20])
begin
end;

KVSPSAOnAfterDecideIfShouldCreateNewInvoiceInCreateInvoicesForJobPaymentPlan(Record KVSPSAInvoice Suggestion Line, Boolean, Record Sales Header, Code[20], Code[20], Record Sales Header) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterDecideIfShouldCreateNewInvoiceInCreateInvoicesForJobPaymentPlan(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var CreateNewInvoice: Boolean; var SalesHeader: Record "Sales Header"; var WorksheetTemplate: Code[20]; var WorksheetName: Code[20]; var TempSalesHeader: Record "Sales Header" temporary): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterDecideIfShouldCreateNewInvoiceInCreateInvoicesForJobPaymentPlan', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterDecideIfShouldCreateNewInvoiceInCreateInvoicesForJobPaymentPlan(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var CreateNewInvoice: Boolean; var SalesHeader: Record "Sales Header"; var WorksheetTemplate: Code[20]; var WorksheetName: Code[20]; var TempSalesHeader: Record "Sales Header" temporary)
begin
end;

KVSPSAOnAfterGetDescriptionFromBudgetLineForSalesInvoiceLineCreatedFromInvoiceSuggestionLine(Record KVSPSA Job Budget Line, Record Sales Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterGetDescriptionFromBudgetLineForSalesInvoiceLineCreatedFromInvoiceSuggestionLine(JobBudgetLine: Record "KVSPSA Job Budget Line"; var NewSalesLine: Record "Sales Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterGetDescriptionFromBudgetLineForSalesInvoiceLineCreatedFromInvoiceSuggestionLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterGetDescriptionFromBudgetLineForSalesInvoiceLineCreatedFromInvoiceSuggestionLine(JobBudgetLine: Record "KVSPSA Job Budget Line"; var NewSalesLine: Record "Sales Line")
begin
end;

KVSPSAOnAfterInsertInvoicesForJobPaymPlann(Record Sales Line, Record Sales Header, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterInsertInvoicesForJobPaymPlann(var SalesLine: Record "Sales Line"; SalesHeader: Record "Sales Header"; var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterInsertInvoicesForJobPaymPlann', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterInsertInvoicesForJobPaymPlann(var SalesLine: Record "Sales Line"; SalesHeader: Record "Sales Header"; var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnAfterPrepareSalesOrder(Record Sales Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterPrepareSalesOrder(var TempSalesLine: Record "Sales Line" temporary): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterPrepareSalesOrder', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterPrepareSalesOrder(var TempSalesLine: Record "Sales Line" temporary)
begin
end;

KVSPSAOnAfterRemoveFiltersOnItemOrGLAccountTempGlobalInvoiceLedgerEntryAfterCreateCollectiveInvoiceLine(Record KVSPSAInvoice Ledger Entry, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterRemoveFiltersOnItemOrGLAccountTempGlobalInvoiceLedgerEntryAfterCreateCollectiveInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterRemoveFiltersOnItemOrGLAccountTempGlobalInvoiceLedgerEntryAfterCreateCollectiveInvoiceLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterRemoveFiltersOnItemOrGLAccountTempGlobalInvoiceLedgerEntryAfterCreateCollectiveInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnAfterRemoveFiltersOnItemOrGLAccountTempGlobalInvoiceLedgerEntryAfterCreateInvoiceLine(Record KVSPSAInvoice Ledger Entry, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterRemoveFiltersOnItemOrGLAccountTempGlobalInvoiceLedgerEntryAfterCreateInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterRemoveFiltersOnItemOrGLAccountTempGlobalInvoiceLedgerEntryAfterCreateInvoiceLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterRemoveFiltersOnItemOrGLAccountTempGlobalInvoiceLedgerEntryAfterCreateInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnAfterRemoveFiltersOnResourceTempGlobalInvoiceLedgerEntryAfterCreateCollectiveInvoiceLine(Record KVSPSAInvoice Ledger Entry, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterRemoveFiltersOnResourceTempGlobalInvoiceLedgerEntryAfterCreateCollectiveInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterRemoveFiltersOnResourceTempGlobalInvoiceLedgerEntryAfterCreateCollectiveInvoiceLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterRemoveFiltersOnResourceTempGlobalInvoiceLedgerEntryAfterCreateCollectiveInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnAfterRemoveFiltersOnResourceTempGlobalInvoiceLedgerEntryAfterCreateInvoiceLine(Record KVSPSAInvoice Ledger Entry, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterRemoveFiltersOnResourceTempGlobalInvoiceLedgerEntryAfterCreateInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterRemoveFiltersOnResourceTempGlobalInvoiceLedgerEntryAfterCreateInvoiceLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterRemoveFiltersOnResourceTempGlobalInvoiceLedgerEntryAfterCreateInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnAfterSetFilterOnItemOrGLAccountTempGlobalInvoiceLedgerEntryBeforeCreateCollectiveInvoiceLine(Record KVSPSAInvoice Ledger Entry, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterSetFilterOnItemOrGLAccountTempGlobalInvoiceLedgerEntryBeforeCreateCollectiveInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterSetFilterOnItemOrGLAccountTempGlobalInvoiceLedgerEntryBeforeCreateCollectiveInvoiceLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterSetFilterOnItemOrGLAccountTempGlobalInvoiceLedgerEntryBeforeCreateCollectiveInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnAfterSetFilterOnItemOrGLAccountTempGlobalInvoiceLedgerEntryBeforeCreateInvoiceLine(Record KVSPSAInvoice Ledger Entry, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterSetFilterOnItemOrGLAccountTempGlobalInvoiceLedgerEntryBeforeCreateInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterSetFilterOnItemOrGLAccountTempGlobalInvoiceLedgerEntryBeforeCreateInvoiceLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterSetFilterOnItemOrGLAccountTempGlobalInvoiceLedgerEntryBeforeCreateInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnAfterSetFilterOnResourceTempGlobalInvoiceLedgerEntryBeforeCreateCollectiveInvoiceLine(Record KVSPSAInvoice Ledger Entry, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterSetFilterOnResourceTempGlobalInvoiceLedgerEntryBeforeCreateCollectiveInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterSetFilterOnResourceTempGlobalInvoiceLedgerEntryBeforeCreateCollectiveInvoiceLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterSetFilterOnResourceTempGlobalInvoiceLedgerEntryBeforeCreateCollectiveInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnAfterSetFilterOnResourceTempGlobalInvoiceLedgerEntryBeforeCreateInvoiceLine(Record KVSPSAInvoice Ledger Entry, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterSetFilterOnResourceTempGlobalInvoiceLedgerEntryBeforeCreateInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnAfterSetFilterOnResourceTempGlobalInvoiceLedgerEntryBeforeCreateInvoiceLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterSetFilterOnResourceTempGlobalInvoiceLedgerEntryBeforeCreateInvoiceLine(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnBeforeCreateInvoiceFromInvSug(Code[20], Code[20], Boolean) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeCreateInvoiceFromInvSug(WorksheetTemplate: Code[20]; WorksheetName: Code[20]; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeCreateInvoiceFromInvSug', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeCreateInvoiceFromInvSug(WorksheetTemplate: Code[20]; WorksheetName: Code[20]; var IsHandled: Boolean)
begin
end;

KVSPSAOnBeforeCreateInvoiceLine(Record Sales Header, Integer, Decimal, Record KVSPSAInvoice Ledger Entry, Boolean) :#

Obsolete

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

[Obsolete('This event is obsolete. Please use KVSPSAOnBeforeCreateInvoiceLine2 instead.', '23.4')]
[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeCreateInvoiceLine(var TempSalesHeader: Record "Sales Header" temporary; NextLineNo: Integer; DeductionQty: Decimal; var TempInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeCreateInvoiceLine', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeCreateInvoiceLine(var TempSalesHeader: Record "Sales Header" temporary; NextLineNo: Integer; DeductionQty: Decimal; var TempInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var IsHandled: Boolean)
begin
end;

KVSPSAOnBeforeCreateInvoiceLine2(Record Sales Header, Integer, Decimal, Record KVSPSAInvoice Ledger Entry, Boolean) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeCreateInvoiceLine2(var TempSalesHeader: Record "Sales Header" temporary; var NextLineNo: Integer; DeductionQty: Decimal; var TempInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeCreateInvoiceLine2', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeCreateInvoiceLine2(var TempSalesHeader: Record "Sales Header" temporary; var NextLineNo: Integer; DeductionQty: Decimal; var TempInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var IsHandled: Boolean)
begin
end;

KVSPSAOnBeforeCreateInvoicesFromInvSugLines(Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeCreateInvoicesFromInvSugLines(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeCreateInvoicesFromInvSugLines', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeCreateInvoicesFromInvSugLines(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnBeforeCreateSalesInvoiceLineFromInvoiceSuggestLine(Record KVSPSAInvoice Suggestion Line, Record Sales Header, Integer) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeCreateSalesInvoiceLineFromInvoiceSuggestLine(InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; SalesHeader: Record "Sales Header"; var NextLineNo: Integer): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeCreateSalesInvoiceLineFromInvoiceSuggestLine', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeCreateSalesInvoiceLineFromInvoiceSuggestLine(InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; SalesHeader: Record "Sales Header"; var NextLineNo: Integer)
begin
end;

KVSPSAOnBeforeFillSalesCrMemoHeaderFields(Record Sales Header, Record KVSPSAInvoice Suggestion Line, Boolean) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeFillSalesCrMemoHeaderFields(var SalesHeader: Record "Sales Header"; var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeFillSalesCrMemoHeaderFields', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeFillSalesCrMemoHeaderFields(var SalesHeader: Record "Sales Header"; var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var IsHandled: Boolean)
begin
end;

KVSPSAOnBeforeFillSalesInvHeaderFields(Record Sales Header, Record KVSPSAInvoice Suggestion Line, Boolean) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeFillSalesInvHeaderFields(var SalesHeader: Record "Sales Header"; InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeFillSalesInvHeaderFields', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeFillSalesInvHeaderFields(var SalesHeader: Record "Sales Header"; InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var IsHandled: Boolean)
begin
end;

KVSPSAOnBeforeFindTempSalesCrMemoHeaderWhenUpdateCreditMemos(Record Sales Header, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeFindTempSalesCrMemoHeaderWhenUpdateCreditMemos(var TempSalesHeader: Record "Sales Header" temporary; var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeFindTempSalesCrMemoHeaderWhenUpdateCreditMemos', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeFindTempSalesCrMemoHeaderWhenUpdateCreditMemos(var TempSalesHeader: Record "Sales Header" temporary; var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnBeforeFindTempSalesInvHeaderForPSP(Record Sales Header, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeFindTempSalesInvHeaderForPSP(var TempSalesHeader: Record "Sales Header" temporary; InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeFindTempSalesInvHeaderForPSP', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeFindTempSalesInvHeaderForPSP(var TempSalesHeader: Record "Sales Header" temporary; InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnBeforeFindTempSalesInvoiceHeaderWhenUpdateInvoices(Record Sales Header, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeFindTempSalesInvoiceHeaderWhenUpdateInvoices(var TempSalesHeader: Record "Sales Header" temporary; InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeFindTempSalesInvoiceHeaderWhenUpdateInvoices', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeFindTempSalesInvoiceHeaderWhenUpdateInvoices(var TempSalesHeader: Record "Sales Header" temporary; InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnBeforeModifySalesHeaderInCreateInvoicesForJobPaymentPlan(Record KVSPSAInvoice Suggestion Line, Boolean, Record Sales Header, Code[20], Code[20], Record Sales Header) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeModifySalesHeaderInCreateInvoicesForJobPaymentPlan(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var CreateNewInvoice: Boolean; var SalesHeader: Record "Sales Header"; var WorksheetTemplate: Code[20]; var WorksheetName: Code[20]; var TempSalesHeader: Record "Sales Header" temporary): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeModifySalesHeaderInCreateInvoicesForJobPaymentPlan', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeModifySalesHeaderInCreateInvoicesForJobPaymentPlan(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var CreateNewInvoice: Boolean; var SalesHeader: Record "Sales Header"; var WorksheetTemplate: Code[20]; var WorksheetName: Code[20]; var TempSalesHeader: Record "Sales Header" temporary)
begin
end;

KVSPSAOnBeforeMoreQtyNeededToShipSalesOrderLineErr(Record Sales Line, Decimal, Boolean) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeMoreQtyNeededToShipSalesOrderLineErr(SalesLine: Record "Sales Line"; QtyToInvoice: Decimal; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeMoreQtyNeededToShipSalesOrderLineErr', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeMoreQtyNeededToShipSalesOrderLineErr(SalesLine: Record "Sales Line"; QtyToInvoice: Decimal; var IsHandled: Boolean)
begin
end;

KVSPSAOnBeforeOpenDocument(Record Sales Header, Enum Sales Document Type, Code[20], Boolean) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeOpenDocument(GlobalSalesHeader: Record "Sales Header"; DocumentType: Enum "Sales Document Type"; DocumentNo: Code[20]; var Ishandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeOpenDocument', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeOpenDocument(GlobalSalesHeader: Record "Sales Header"; DocumentType: Enum "Sales Document Type"; DocumentNo: Code[20]; var Ishandled: Boolean)
begin
end;

KVSPSAOnBeforeSetCurrentKeyForInvoiceLines(Record KVSPSAInvoice Suggestion Line, Boolean) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeSetCurrentKeyForInvoiceLines(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeSetCurrentKeyForInvoiceLines', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeSetCurrentKeyForInvoiceLines(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var IsHandled: Boolean)
begin
end;

KVSPSAOnCreateDirectInvoiceHeaderOnBeforeCreateSeparateSalesLine(Record KVSPSAInvoice Suggestion Line, Record Sales Line, Boolean) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnCreateDirectInvoiceHeaderOnBeforeCreateSeparateSalesLine(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var TestSalesLine: Record "Sales Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnCreateDirectInvoiceHeaderOnBeforeCreateSeparateSalesLine', '', false, false)]
local procedure DoSomethingKVSPSAOnCreateDirectInvoiceHeaderOnBeforeCreateSeparateSalesLine(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var TestSalesLine: Record "Sales Line"; var IsHandled: Boolean)
begin
end;

KVSPSAOnFillSalesInvHeaderFieldsForPSP(Record Sales Header, Record KVSPSAInvoice Suggestion Line, Boolean) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnFillSalesInvHeaderFieldsForPSP(var SalesHeader: Record "Sales Header"; InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnFillSalesInvHeaderFieldsForPSP', '', false, false)]
local procedure DoSomethingKVSPSAOnFillSalesInvHeaderFieldsForPSP(var SalesHeader: Record "Sales Header"; InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var IsHandled: Boolean)
begin
end;

KVSPSAOnUpdateInvoicesOnAfterSetCurrentKeyOnTempGlobalInvoiceLedgerEntryFindSetForItemOrGLAccount(Record KVSPSAInvoice Ledger Entry, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnUpdateInvoicesOnAfterSetCurrentKeyOnTempGlobalInvoiceLedgerEntryFindSetForItemOrGLAccount(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnUpdateInvoicesOnAfterSetCurrentKeyOnTempGlobalInvoiceLedgerEntryFindSetForItemOrGLAccount', '', false, false)]
local procedure DoSomethingKVSPSAOnUpdateInvoicesOnAfterSetCurrentKeyOnTempGlobalInvoiceLedgerEntryFindSetForItemOrGLAccount(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnUpdateInvoicesOnAfterSetCurrentKeyOnTempGlobalInvoiceLedgerEntryFindSetForResource(Record KVSPSAInvoice Ledger Entry, Record KVSPSAInvoice Suggestion Line) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnUpdateInvoicesOnAfterSetCurrentKeyOnTempGlobalInvoiceLedgerEntryFindSetForResource(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnUpdateInvoicesOnAfterSetCurrentKeyOnTempGlobalInvoiceLedgerEntryFindSetForResource', '', false, false)]
local procedure DoSomethingKVSPSAOnUpdateInvoicesOnAfterSetCurrentKeyOnTempGlobalInvoiceLedgerEntryFindSetForResource(var TempGlobalInvoiceLedgerEntry: Record "KVSPSAInvoice Ledger Entry" temporary; var GlobalInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

KVSPSAOnBeforeUpdateInvoicesFromInvSugLines(Record KVSPSAInvoice Suggestion Line) :#

Summary: This Event will be raised before Invoices are updated from Invoice Suggestion Line

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeUpdateInvoicesFromInvSugLines(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSACreateInvoiceFromInvSug", 'KVSPSAOnBeforeUpdateInvoicesFromInvSugLines', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeUpdateInvoicesFromInvSugLines(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line")
begin
end;

Parameters:

  • InvoiceSuggestionLine: The Invoice Suggestion Line which is updating the Invoices