Skip to content

KVSPSAGetInvoiceSuggestiLines#

Procedures#

CollectData(Code[10], Code[10]) :#

Summary: Collects data for invoice suggestion lines based on the provided template name and batch name. This procedure initializes the necessary setups, deletes existing invoice suggestion lines, and processes customer jobs to create new invoice suggestion lines. It also handles the display of a dialog to show progress and outputs a success message upon completion.

procedure CollectData(TemplateName: Code[10]; BatchName: Code[10]): 

Parameters:

  • TemplateName: The name of the worksheet template to use for the invoice suggestion lines.
  • BatchName: The name of the journal batch to use for the invoice suggestion lines.

InsertInvSugLine(Record KVSPSAJobPSPLine, Integer, Record KVSPSAInvoice Suggestion Line, Variant) :#

Summary: Inserts an invoice suggestion line based on the provided job PSP line and indentation level. The indentation level determines the type of invoice suggestion line to insert, such as customer, job text, job, PSP line, or job planning entry. If the indentation level does not match any predefined cases, it calls a custom event handler for further processing. This procedure also initializes the invoice suggestion line and sets its properties based on the job PSP line and source record variant. The created invoice suggestion line is returned through the CreatedInvoiceSuggestionLine parameter.

procedure InsertInvSugLine(var JobPSPLine: Record "KVSPSAJobPSPLine"; Indentation: Integer; var CreatedInvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; SourceRecordVariant: Variant): 

Parameters:

  • JobPSPLine: The job PSP line record to base the invoice suggestion line on.
  • Indentation: The indentation level for the invoice suggestion line, determining its type.
  • CreatedInvoiceSuggestionLine: The record to hold the created invoice suggestion line.
  • SourceRecordVariant: A variant representing the source record for the invoice suggestion line, used for additional context or data.

InsertPSPLine(Record KVSPSAJobPSPLine, Record KVSPSA Job Budget Line) :#

Summary: Inserts a PSP line into the invoice suggestion process. This procedure handles the insertion of a PSP line by checking various conditions such as whether the job is new, whether the PSP line is disabled for invoicing, and the type of invoicing associated with the PSP line. It also manages the creation of invoice suggestion lines based on the PSP line and job budget line. If the PSP line is not disabled for invoicing, it will create an invoice suggestion line and handle any related job payment plans.

procedure InsertPSPLine(var JobPSPLine: Record "KVSPSAJobPSPLine"; var JobBudgetLine: Record "KVSPSA Job Budget Line"): 

Parameters:

  • JobPSPLine: The job PSP line to be inserted.
  • JobBudgetLine: The job budget line associated with the PSP line.

SetFilters(Text, Text, Text, Text, Text, Boolean, Text) :#

Summary: Sets the filters for the invoice suggestion lines. This procedure allows setting various filters such as customer number, job number, responsibility center, person responsible, posting date, whether to delete invoice ledger entries in orders, and custom filters.

procedure SetFilters(NewCustomerNoFilter: Text; NewJobNoFilter: Text; NewResponsibilityCenterFilter: Text; NewPersonResponsibleFilter: Text; NewPostingDateFilter: Text; NewDeleteInvoiceLedgerEntriesInOrders: Boolean; NewCustomFilterArray: Text): 

Parameters:

  • NewCustomerNoFilter: The customer number filter to apply.
  • NewJobNoFilter: The job number filter to apply.
  • NewResponsibilityCenterFilter: The responsibility center filter to apply.
  • NewPersonResponsibleFilter: The person responsible filter to apply.
  • NewPostingDateFilter: The posting date filter to apply.
  • NewDeleteInvoiceLedgerEntriesInOrders: Indicates whether to delete invoice ledger entries in orders.
  • NewCustomFilterArray: An array of custom filters to apply.

SetSilent(Boolean) :#

Summary: Sets the silent mode for the invoice suggestion process. When silent mode is enabled, the process will not display any dialogs or messages to the user. Instead, it will run in the background without user interaction.

procedure SetSilent(NewSilent: Boolean): 

Parameters:

  • NewSilent: Indicates whether to enable or disable silent mode.

Events#

KVSPSAOnAfterCheckNoSalesOrderOnBudgetLineLevel(Record KVSPSA Job Budget Line, Boolean) :#

Summary: Event fired after checking for no sales order on budget line level in invoice suggestion processing. Allows extensions to react to the result and modify posting behavior.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterCheckNoSalesOrderOnBudgetLineLevel(var JobBudgetLine: Record "KVSPSA Job Budget Line"; var PostLine: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterCheckNoSalesOrderOnBudgetLineLevel', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterCheckNoSalesOrderOnBudgetLineLevel(var JobBudgetLine: Record "KVSPSA Job Budget Line"; var PostLine: Boolean)
begin
end;

Parameters:

  • JobBudgetLine: The job budget line being checked.
  • PostLine: Indicates whether the line should be posted. Can be modified by extensions.

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

Summary: Event fired after filtering sales line from invoice suggestion line in FindSalesLineForPSP. Allows extensions to adjust or trace the filtered sales line and suggestion line.

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

Parameters:

  • SalesLine: The sales line being filtered.
  • InvoiceSuggestionLine: The invoice suggestion line being processed.

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

Summary: Event fired after filtering sales line from budget line when handling PSP line by default price at budget level. Allows extensions to adjust or trace the filtered sales line and budget line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterFilterSalesLineFromBudgetLineHandlePSPLineByDefPriceBudgetLevelLine(var SalesLine: Record "Sales Line"; var JobBudgetLine: Record "KVSPSA Job Budget Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterFilterSalesLineFromBudgetLineHandlePSPLineByDefPriceBudgetLevelLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterFilterSalesLineFromBudgetLineHandlePSPLineByDefPriceBudgetLevelLine(var SalesLine: Record "Sales Line"; var JobBudgetLine: Record "KVSPSA Job Budget Line")
begin
end;

Parameters:

  • SalesLine: The sales line being filtered.
  • JobBudgetLine: The job budget line being processed.

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

Summary: Event fired after filtering sales line from budget line in FindSalesLineForPSPLine. Allows extensions to adjust or trace the filtered sales line and budget line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterFilterSalesLineFromBudgetLineInFindSalesLineForPSPLine(var SalesLine: Record "Sales Line"; var JobBudgetLine: Record "KVSPSA Job Budget Line"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterFilterSalesLineFromBudgetLineInFindSalesLineForPSPLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterFilterSalesLineFromBudgetLineInFindSalesLineForPSPLine(var SalesLine: Record "Sales Line"; var JobBudgetLine: Record "KVSPSA Job Budget Line")
begin
end;

Parameters:

  • SalesLine: The sales line being filtered.
  • JobBudgetLine: The job budget line being processed.

KVSPSAOnAfterFilterSalesLineFromPSPLineFindSalesLineForPSPLine(Record Sales Line, Record KVSPSAJobPSPLine) :#

Summary: Event fired after filtering sales line from PSP line in FindSalesLineForPSPLine. Allows extensions to adjust or trace the filtered sales line and PSP line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterFilterSalesLineFromPSPLineFindSalesLineForPSPLine(var SalesLine: Record "Sales Line"; var JobPSPLine: Record "KVSPSAJobPSPLine"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterFilterSalesLineFromPSPLineFindSalesLineForPSPLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterFilterSalesLineFromPSPLineFindSalesLineForPSPLine(var SalesLine: Record "Sales Line"; var JobPSPLine: Record "KVSPSAJobPSPLine")
begin
end;

Parameters:

  • SalesLine: The sales line being filtered.
  • JobPSPLine: The PSP line being processed.

KVSPSAOnAfterFilterSalesLineFromPSPLineNotPostedInvAmount(Record Sales Line, Record KVSPSAJobPSPLine) :#

Summary: Event fired after filtering sales line from PSP line for not posted invoice amount. Allows extensions to adjust or trace the filtered sales line and PSP line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterFilterSalesLineFromPSPLineNotPostedInvAmount(var SalesLine: Record "Sales Line"; var JobPSPLine: Record "KVSPSAJobPSPLine"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterFilterSalesLineFromPSPLineNotPostedInvAmount', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterFilterSalesLineFromPSPLineNotPostedInvAmount(var SalesLine: Record "Sales Line"; var JobPSPLine: Record "KVSPSAJobPSPLine")
begin
end;

Parameters:

  • SalesLine: The sales line being filtered.
  • JobPSPLine: The PSP line being processed.

KVSPSAOnAfterFilterSaleslineSalesLineNotComplInvoiced(Record Sales Line, Record KVSPSAJobPSPLine) :#

Summary: Event fired after filtering sales line for sales line not completely invoiced. Allows extensions to adjust or trace the filtered sales line and PSP line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterFilterSaleslineSalesLineNotComplInvoiced(var SalesLine: Record "Sales Line"; var JobPSPLine: Record "KVSPSAJobPSPLine"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterFilterSaleslineSalesLineNotComplInvoiced', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterFilterSaleslineSalesLineNotComplInvoiced(var SalesLine: Record "Sales Line"; var JobPSPLine: Record "KVSPSAJobPSPLine")
begin
end;

Parameters:

  • SalesLine: The sales line being filtered.
  • JobPSPLine: The PSP line being processed.

KVSPSAOnAfterFindPSPLineLoc(Record Job, Record KVSPSAJobPSPLine, Boolean, Text) :#

Summary: Event fired after finding a PSP line location in invoice suggestion processing. Allows extensions to react to the found PSP line and adjust logic as needed.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterFindPSPLineLoc(Job: Record "Job"; JobPSPLine: Record "KVSPSAJobPSPLine"; SkipedIterations: Boolean; PostingDateFilter: Text): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterFindPSPLineLoc', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterFindPSPLineLoc(Job: Record "Job"; JobPSPLine: Record "KVSPSAJobPSPLine"; SkipedIterations: Boolean; PostingDateFilter: Text)
begin
end;

Parameters:

  • Job: The job record being processed.
  • JobPSPLine: The PSP line found.
  • SkipedIterations: Indicates if iterations were skipped.
  • PostingDateFilter: The posting date filter applied.

KVSPSAOnAfterInsertInvSugLineCustomer(Record KVSPSAInvoice Suggestion Line) :#

Summary: Event fired after inserting an invoice suggestion line for a customer. Allows extensions to react to the inserted suggestion line.

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

Parameters:

  • InvoiceSuggestionLine: The invoice suggestion line inserted.

KVSPSAOnAfterInsertInvSugLineJob(Record KVSPSAInvoice Suggestion Line, Record KVSPSAJobPSPLine) :#

Summary: Event fired after inserting an invoice suggestion line for a job. Allows extensions to react to the inserted suggestion line and PSP line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterInsertInvSugLineJob(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var JobPSPLine: Record "KVSPSAJobPSPLine"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterInsertInvSugLineJob', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterInsertInvSugLineJob(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var JobPSPLine: Record "KVSPSAJobPSPLine")
begin
end;

Parameters:

  • InvoiceSuggestionLine: The invoice suggestion line inserted.
  • JobPSPLine: The PSP line associated with the suggestion line.

KVSPSAOnAfterInsertInvSugLineJobLedgerEntry(Record KVSPSAInvoice Suggestion Line, Record KVSPSAJobPSPLine, Record Job Ledger Entry) :#

Summary: Event fired after inserting an invoice suggestion line for a job ledger entry. Allows extensions to react to the inserted suggestion line, PSP line, and ledger entry.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterInsertInvSugLineJobLedgerEntry(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var JobPSPLine: Record "KVSPSAJobPSPLine"; var JobLedgerEntry: Record "Job Ledger Entry"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterInsertInvSugLineJobLedgerEntry', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterInsertInvSugLineJobLedgerEntry(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var JobPSPLine: Record "KVSPSAJobPSPLine"; var JobLedgerEntry: Record "Job Ledger Entry")
begin
end;

Parameters:

  • InvoiceSuggestionLine: The invoice suggestion line inserted.
  • JobPSPLine: The PSP line associated with the suggestion line.
  • JobLedgerEntry: The job ledger entry associated with the suggestion line.

KVSPSAOnAfterInsertInvSugLineJobPlanningEntry(Record KVSPSAInvoice Suggestion Line, Record KVSPSAJobPSPLine, Record KVSPSAJobPaymentPlanningEntry, Boolean) :#

Summary: Event fired after inserting an invoice suggestion line for a job planning entry. Allows extensions to react to the inserted suggestion line, PSP line, and planning entry.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterInsertInvSugLineJobPlanningEntry(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var JobPSPLine: Record "KVSPSAJobPSPLine"; var JobPaymentPlanningEntry: Record "KVSPSAJobPaymentPlanningEntry"; FromReInvoice: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterInsertInvSugLineJobPlanningEntry', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterInsertInvSugLineJobPlanningEntry(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var JobPSPLine: Record "KVSPSAJobPSPLine"; var JobPaymentPlanningEntry: Record "KVSPSAJobPaymentPlanningEntry"; FromReInvoice: Boolean)
begin
end;

Parameters:

  • InvoiceSuggestionLine: The invoice suggestion line inserted.
  • JobPSPLine: The PSP line associated with the suggestion line.
  • JobPaymentPlanningEntry: The job payment planning entry associated with the suggestion line.
  • FromReInvoice: Indicates if the entry is from a re-invoice process.

KVSPSAOnAfterInsertInvSugLineJobsText(Record KVSPSAInvoice Suggestion Line) :#

Summary: Event fired after inserting an invoice suggestion line for jobs text. Allows extensions to react to the inserted suggestion line.

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

Parameters:

  • InvoiceSuggestionLine: The invoice suggestion line inserted.

KVSPSAOnAfterInsertInvSugLinePSPLine(Record KVSPSAInvoice Suggestion Line, Record KVSPSAJobPSPLine) :#

Summary: Event fired after inserting an invoice suggestion line for a PSP line. Allows extensions to react to the inserted suggestion line and PSP line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterInsertInvSugLinePSPLine(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var JobPSPLine: Record "KVSPSAJobPSPLine"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterInsertInvSugLinePSPLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterInsertInvSugLinePSPLine(var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var JobPSPLine: Record "KVSPSAJobPSPLine")
begin
end;

Parameters:

  • InvoiceSuggestionLine: The invoice suggestion line inserted.
  • JobPSPLine: The PSP line associated with the suggestion line.

KVSPSAOnAfterInsertPSPLine(Record KVSPSAJobPSPLine, Record KVSPSA Job Budget Line, Record KVSPSAInvoice Suggestion Line, Boolean, Boolean) :#

Summary: Event fired after inserting a PSP line in invoice suggestion processing. Allows extensions to react to the inserted PSP line, associated budget line, and suggestion line.

[IntegrationEvent(true, false)]
local procedure KVSPSAOnAfterInsertPSPLine(JobPSPLine: Record "KVSPSAJobPSPLine"; JobBudgetLine: Record "KVSPSA Job Budget Line"; var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var PSPLineInserted: Boolean; EnforcePSPLine: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterInsertPSPLine', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterInsertPSPLine(JobPSPLine: Record "KVSPSAJobPSPLine"; JobBudgetLine: Record "KVSPSA Job Budget Line"; var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; var PSPLineInserted: Boolean; EnforcePSPLine: Boolean)
begin
end;

Parameters:

  • JobPSPLine: The PSP line inserted.
  • JobBudgetLine: The job budget line associated with the PSP line.
  • InvoiceSuggestionLine: The invoice suggestion line associated with the PSP line.
  • PSPLineInserted: Indicates if the PSP line was inserted. Can be modified by extensions.
  • EnforcePSPLine: Indicates if the PSP line insertion is enforced.

KVSPSAOnAfterSetFilterInGetPSPLines(Record KVSPSAJobPSPLine) :#

Summary: Event fired after setting filter in GetPSPLines during invoice suggestion processing. Allows extensions to react to the filtered PSP line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterSetFilterInGetPSPLines(var JobPSPLine: Record "KVSPSAJobPSPLine"): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterSetFilterInGetPSPLines', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterSetFilterInGetPSPLines(var JobPSPLine: Record "KVSPSAJobPSPLine")
begin
end;

Parameters:

  • JobPSPLine: The PSP line being filtered.

KVSPSAOnAfterSetFilterOnJobPaymentPlanningEntryInSetJobPaymPlanningEntryFilters(Record KVSPSAJobPSPLine, Record KVSPSAJobPaymentPlanningEntry, Text) :#

Summary: Event fired after setting filter on job payment planning entry in SetJobPaymPlanningEntryFilters. Allows extensions to react to the filtered payment planning entry and PSP line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterSetFilterOnJobPaymentPlanningEntryInSetJobPaymPlanningEntryFilters(JobPSPLine: Record "KVSPSAJobPSPLine"; var JobPaymentPlanningEntry: Record "KVSPSAJobPaymentPlanningEntry"; OwnFilterTextArray: Text): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterSetFilterOnJobPaymentPlanningEntryInSetJobPaymPlanningEntryFilters', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterSetFilterOnJobPaymentPlanningEntryInSetJobPaymPlanningEntryFilters(JobPSPLine: Record "KVSPSAJobPSPLine"; var JobPaymentPlanningEntry: Record "KVSPSAJobPaymentPlanningEntry"; OwnFilterTextArray: Text)
begin
end;

Parameters:

  • JobPSPLine: The PSP line being filtered.
  • JobPaymentPlanningEntry: The job payment planning entry being filtered.
  • OwnFilterTextArray: The filter text array applied.

KVSPSAOnAfterTestJobInvCurr(Record Job, Boolean, List) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterTestJobInvCurr(Job: Record "Job"; var InvoiceCurrencyIsValid: Boolean; var InvalidMessageTextList: List): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnAfterTestJobInvCurr', '', false, false)]
local procedure DoSomethingKVSPSAOnAfterTestJobInvCurr(Job: Record "Job"; var InvoiceCurrencyIsValid: Boolean; var InvalidMessageTextList: List)
begin
end;

KVSPSAOnBeforeCalcPSPLineIsDisableToInvoice(Record Job, Record KVSPSAJobPSPLine, Boolean, Boolean) :#

Summary: Event fired before calculating if a PSP line is disabled for invoicing. Allows extensions to modify the disabled state and handle logic.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeCalcPSPLineIsDisableToInvoice(Job: Record "Job"; JobPSPLine: Record "KVSPSAJobPSPLine"; var PSPLineIsDisabled: Boolean; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnBeforeCalcPSPLineIsDisableToInvoice', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeCalcPSPLineIsDisableToInvoice(Job: Record "Job"; JobPSPLine: Record "KVSPSAJobPSPLine"; var PSPLineIsDisabled: Boolean; var IsHandled: Boolean)
begin
end;

Parameters:

  • Job: The job being processed.
  • JobPSPLine: The PSP line being checked.
  • PSPLineIsDisabled: Indicates if the PSP line is disabled. Can be modified by extensions.
  • IsHandled: Indicates if the event is handled. Can be modified by extensions.

KVSPSAOnBeforeCheckJobMilestonePlanAvailable(Record KVSPSAJobPSPLine, Boolean, Boolean) :#

Summary: Event fired before checking if a job milestone plan is available for a PSP line. Allows extensions to modify milestone plan availability and handle logic.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeCheckJobMilestonePlanAvailable(JobPSPLine: Record "KVSPSAJobPSPLine"; var MileStonePlanAvailable: Boolean; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnBeforeCheckJobMilestonePlanAvailable', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeCheckJobMilestonePlanAvailable(JobPSPLine: Record "KVSPSAJobPSPLine"; var MileStonePlanAvailable: Boolean; var IsHandled: Boolean)
begin
end;

Parameters:

  • JobPSPLine: The PSP line being checked.
  • MileStonePlanAvailable: Indicates if a milestone plan is available. Can be modified by extensions.
  • IsHandled: Indicates if the event is handled. Can be modified by extensions.

KVSPSAOnBeforeFindPSPLineLoc(Record Job, Record KVSPSAJobPSPLine, Boolean) :#

Summary: Event fired before finding a PSP line location in invoice suggestion processing. Allows extensions to modify the PSP line and skip iterations.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeFindPSPLineLoc(Job: Record "Job"; var JobPSPLine: Record "KVSPSAJobPSPLine"; var SkipIterations: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnBeforeFindPSPLineLoc', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeFindPSPLineLoc(Job: Record "Job"; var JobPSPLine: Record "KVSPSAJobPSPLine"; var SkipIterations: Boolean)
begin
end;

Parameters:

  • Job: The job being processed.
  • JobPSPLine: The PSP line being found. Can be modified by extensions.
  • SkipIterations: Indicates if iterations should be skipped. Can be modified by extensions.

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

Summary: Event fired before finding a sales line in FindSalesLineForJobLedgerEntry with a budget line. Allows extensions to modify the sales line and invoice suggestion line.

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

Parameters:

  • SalesLine: The sales line being found. Can be modified by extensions.
  • InvoiceSuggestionLine: The invoice suggestion line being processed. Can be modified by extensions.

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

Summary: Event fired before finding a sales line in FindSalesLineForJobLedgerEntry without a budget line. Allows extensions to modify the sales line and invoice suggestion line.

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

Parameters:

  • SalesLine: The sales line being found. Can be modified by extensions.
  • InvoiceSuggestionLine: The invoice suggestion line being processed. Can be modified by extensions.

KVSPSAOnBeforeHandlePSPLine(Record Customer, Record Job, Record KVSPSAJobPSPLine, Boolean) :#

Summary: Event fired before handling a PSP line in invoice suggestion processing. Allows extensions to modify enforcement of PSP line insertion.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeHandlePSPLine(Customer: Record "Customer"; Job: Record "Job"; JobPSPLine: Record "KVSPSAJobPSPLine"; var EnforceInsertPSPLine: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnBeforeHandlePSPLine', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeHandlePSPLine(Customer: Record "Customer"; Job: Record "Job"; JobPSPLine: Record "KVSPSAJobPSPLine"; var EnforceInsertPSPLine: Boolean)
begin
end;

Parameters:

  • Customer: The customer being processed.
  • Job: The job being processed.
  • JobPSPLine: The PSP line being handled.
  • EnforceInsertPSPLine: Indicates if PSP line insertion is enforced. Can be modified by extensions.

KVSPSAOnBeforeInsertJobPSPLineByDefPricePSPLevel(Record KVSPSAJobPSPLine, Decimal, Boolean, Boolean) :#

Summary: Event fired before inserting a job PSP line by default price at PSP level. Allows extensions to modify the PSP line, posting line, and enforcement flags.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeInsertJobPSPLineByDefPricePSPLevel(var JobPSPLine: Record "KVSPSAJobPSPLine"; var PostLine: Decimal; var JobPaymPlannEntriesExist: Boolean; var EnforceInsertJobPSPLine: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnBeforeInsertJobPSPLineByDefPricePSPLevel', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeInsertJobPSPLineByDefPricePSPLevel(var JobPSPLine: Record "KVSPSAJobPSPLine"; var PostLine: Decimal; var JobPaymPlannEntriesExist: Boolean; var EnforceInsertJobPSPLine: Boolean)
begin
end;

Parameters:

  • JobPSPLine: The PSP line being inserted. Can be modified by extensions.
  • PostLine: The posting line value. Can be modified by extensions.
  • JobPaymPlannEntriesExist: Indicates if job payment planning entries exist. Can be modified by extensions.
  • EnforceInsertJobPSPLine: Indicates if job PSP line insertion is enforced. Can be modified by extensions.

KVSPSAOnBeforeInsertPSPLine(Record KVSPSAJobPSPLine, Record KVSPSA Job Budget Line, Boolean) :#

Summary: Event fired before inserting a PSP line in invoice suggestion processing. Allows extensions to modify the PSP line, budget line, and handle logic.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeInsertPSPLine(var JobPSPLine: Record "KVSPSAJobPSPLine"; var JobBudgetLine: Record "KVSPSA Job Budget Line"; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnBeforeInsertPSPLine', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeInsertPSPLine(var JobPSPLine: Record "KVSPSAJobPSPLine"; var JobBudgetLine: Record "KVSPSA Job Budget Line"; var IsHandled: Boolean)
begin
end;

Parameters:

  • JobPSPLine: The PSP line being inserted. Can be modified by extensions.
  • JobBudgetLine: The job budget line associated with the PSP line. Can be modified by extensions.
  • IsHandled: Indicates if the event is handled. Can be modified by extensions.

KVSPSAOnBeforeTestJobInvCurr(Record Job, Boolean, List, Boolean) :#

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeTestJobInvCurr(Job: Record "Job"; var InvoiceCurrencyIsValid: Boolean; var InvalidMessageTextList: List; var IsHandled: Boolean): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnBeforeTestJobInvCurr', '', false, false)]
local procedure DoSomethingKVSPSAOnBeforeTestJobInvCurr(Job: Record "Job"; var InvoiceCurrencyIsValid: Boolean; var InvalidMessageTextList: List; var IsHandled: Boolean)
begin
end;

KVSPSAOnInsertInvoiceSuggestionLineForIndentationElse(Integer, Record KVSPSAInvoice Suggestion Line, Record KVSPSAJobPSPLine, Variant) :#

Summary: Event fired when inserting an invoice suggestion line for indentation else case. Allows extensions to react to the indentation, suggestion line, PSP line, and source record.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnInsertInvoiceSuggestionLineForIndentationElse(Indentation: Integer; var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; JobPSPLine: Record "KVSPSAJobPSPLine"; SourceRecordVariant: Variant): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnInsertInvoiceSuggestionLineForIndentationElse', '', false, false)]
local procedure DoSomethingKVSPSAOnInsertInvoiceSuggestionLineForIndentationElse(Indentation: Integer; var InvoiceSuggestionLine: Record "KVSPSAInvoice Suggestion Line"; JobPSPLine: Record "KVSPSAJobPSPLine"; SourceRecordVariant: Variant)
begin
end;

Parameters:

  • Indentation: The indentation value.
  • InvoiceSuggestionLine: The invoice suggestion line being inserted. Can be modified by extensions.
  • JobPSPLine: The PSP line associated with the suggestion line.
  • SourceRecordVariant: The source record variant.

KVSPSAOnJobBudgetLineLoc(Record KVSPSA Job Budget Line, Text) :#

Summary: Event fired for job budget line location in invoice suggestion processing. Allows extensions to react to the budget line and posting date filter.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnJobBudgetLineLoc(var JobBudgetLine: Record "KVSPSA Job Budget Line"; PostingDateFilter: Text): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnJobBudgetLineLoc', '', false, false)]
local procedure DoSomethingKVSPSAOnJobBudgetLineLoc(var JobBudgetLine: Record "KVSPSA Job Budget Line"; PostingDateFilter: Text)
begin
end;

Parameters:

  • JobBudgetLine: The job budget line being processed. Can be modified by extensions.
  • PostingDateFilter: The posting date filter applied.

KVSPSAOnJobFilter(Record Job, Text) :#

Summary: Event fired for job filter in invoice suggestion processing. Allows extensions to react to the job and filter text array.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnJobFilter(var Job: Record "Job"; OwnFilterTextArray: Text): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnJobFilter', '', false, false)]
local procedure DoSomethingKVSPSAOnJobFilter(var Job: Record "Job"; OwnFilterTextArray: Text)
begin
end;

Parameters:

  • Job: The job being filtered. Can be modified by extensions.
  • OwnFilterTextArray: The filter text array applied.

KVSPSAOnJobLedgerEntryFilter(Record Job Ledger Entry, Text) :#

Summary: Event fired for job ledger entry filter in invoice suggestion processing. Allows extensions to react to the ledger entry and filter text array.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnJobLedgerEntryFilter(var JobLedgerEntry: Record "Job Ledger Entry"; OwnFilterTextArray: Text): 
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSPSAGetInvoiceSuggestiLines", 'KVSPSAOnJobLedgerEntryFilter', '', false, false)]
local procedure DoSomethingKVSPSAOnJobLedgerEntryFilter(var JobLedgerEntry: Record "Job Ledger Entry"; OwnFilterTextArray: Text)
begin
end;

Parameters:

  • JobLedgerEntry: The job ledger entry being filtered. Can be modified by extensions.
  • OwnFilterTextArray: The filter text array applied.