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) :#

[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;

KVSPSAOnAfterFilterSalesLineFilterSalesLineFromInvSuggLineInFindSalesLineForPSP(Record Sales Line, Record KVSPSAInvoice 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;

KVSPSAOnAfterFilterSalesLineFromBudgetLineHandlePSPLineByDefPriceBudgetLevelLine(Record Sales Line, Record KVSPSA Job 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;

KVSPSAOnAfterFilterSalesLineFromBudgetLineInFindSalesLineForPSPLine(Record Sales Line, Record KVSPSA Job 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;

KVSPSAOnAfterFilterSalesLineFromPSPLineFindSalesLineForPSPLine(Record Sales Line, Record KVSPSAJobPSPLine) :#

[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;

KVSPSAOnAfterFilterSalesLineFromPSPLineNotPostedInvAmount(Record Sales Line, Record KVSPSAJobPSPLine) :#

[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;

KVSPSAOnAfterFilterSaleslineSalesLineNotComplInvoiced(Record Sales Line, Record KVSPSAJobPSPLine) :#

[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;

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

[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;

KVSPSAOnAfterInsertInvSugLineCustomer(Record KVSPSAInvoice 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;

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

[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;

KVSPSAOnAfterInsertInvSugLineJobLedgerEntry(Record KVSPSAInvoice Suggestion Line, Record KVSPSAJobPSPLine, Record Job 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;

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

[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;

KVSPSAOnAfterInsertInvSugLineJobsText(Record KVSPSAInvoice 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;

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

[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;

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

[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;

KVSPSAOnAfterSetFilterInGetPSPLines(Record KVSPSAJobPSPLine) :#

[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;

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

[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;

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) :#

[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;

KVSPSAOnBeforeCheckJobMilestonePlanAvailable(Record KVSPSAJobPSPLine, Boolean, Boolean) :#

[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;

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

[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;

KVSPSAOnBeforeFindSalesLineInFindSalesLineForJobLedgerEntryWithBudgetLine(Record Sales Line, Record KVSPSAInvoice 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;

KVSPSAOnBeforeFindSalesLineInFindSalesLineForJobLedgerEntryWithoutBudgetLine(Record Sales Line, Record KVSPSAInvoice 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;

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

[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;

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

[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;

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

[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;

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) :#

[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;

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

[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;

KVSPSAOnJobFilter(Record Job, Text) :#

[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;

KVSPSAOnJobLedgerEntryFilter(Record Job Ledger Entry, Text) :#

[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;