Table of Contents

KVSPSACreate SalesDoc from PSP

Events

KVSPSAOnAfterCopyPSAJobBudgetLineToSalesLine(Record Sales Line, Record KVSPSA Job Budget Line) :

Summary: After copying a Job Budget Line to a Sales Line. Use to adjust prices, dimensions or custom fields.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterCopyPSAJobBudgetLineToSalesLine(var SalesLine: Record "Sales Line"; var JobBudgetLine: Record "KVSPSA Job Budget Line"): 

Parameters:

  • SalesLine: Target sales line (values already populated by standard logic).
  • JobBudgetLine: Source job budget line.

KVSPSAOnAfterCopyPSPLineToSalesLine(Record Sales Line, Record KVSPSAJobPSPLine) :

Summary: After copying a PSP (WBS) line to the Sales Line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterCopyPSPLineToSalesLine(var SalesLine: Record "Sales Line"; var JobPSPLine: Record "KVSPSAJobPSPLine"): 

Parameters:

  • SalesLine: Created/updated sales line.
  • JobPSPLine: Source PSP line.

KVSPSAOnAfterExistingSalesDocumentTextFilteredInCopyPSPText(Record Sales Line, Record KVSKBASalesDocumentText, Enum KVSKBATextPosition) :

Summary: After filtering existing sales document text lines for the current sales line and text position (before inserting new text lines).

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterExistingSalesDocumentTextFilteredInCopyPSPText(SalesLine: Record "Sales Line"; var KVSKBASalesDocumentText: Record "KVSKBASalesDocumentText"; CurrTextPosition: Enum "KVSKBATextPosition"): 

Parameters:

  • SalesLine: Current sales line.
  • KVSKBASalesDocumentText: Filtered text record set (modify to delete / adjust existing lines).
  • CurrTextPosition: Current text position enum.

KVSPSAOnAfterSetJobPSPLineOptionFilters(Record KVSPSAJobPSPLine) :

Summary: This event is raised after setting filters on PSP-Line. That event can be used to add additional filters.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnAfterSetJobPSPLineOptionFilters(var JobPSPLine: Record "KVSPSAJobPSPLine"): 

Parameters:

  • JobPSPLine: Job PSP-Line that can be filtered

KVSPSAOnBeforeCheckForTemporaryPSPLine(Record KVSPSAJobPSPLine, Record KVSPSAJobPSPLine, Boolean, Boolean) :

Summary: Before checking whether a PSP line is already present in the temporary buffer.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeCheckForTemporaryPSPLine(var JobPSPLine: Record "KVSPSAJobPSPLine"; var TempJobPSPLine: Record "KVSPSAJobPSPLine" temporary; var IsOK: Boolean; var IsHandled: Boolean): 

Parameters:

  • JobPSPLine: PSP line under validation.
  • TempJobPSPLine: Current temporary buffer.
  • IsOK: Result flag (TRUE = accept line).
  • IsHandled: Set TRUE to skip standard logic.

KVSPSAOnBeforeCheckIfSkipCreationOfSalesLineForBudgetLine(Record KVSPSA Job Budget Line, Boolean, Boolean, Enum Sales Document Type) :

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeCheckIfSkipCreationOfSalesLineForBudgetLine(JobBudgetLine: Record "KVSPSA Job Budget Line"; var IsHandled: Boolean; var ReturnValue: Boolean; SalesDocumentType: Enum "Sales Document Type"): 

KVSPSAOnBeforeCopyPSAJobBudgetLineToSalesLine(Record Sales Line, Record KVSPSA Job Budget Line, Boolean) :

Summary: Before copying a Job Budget Line to a Sales Line. Can suppress standard copy.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeCopyPSAJobBudgetLineToSalesLine(var SalesLine: Record "Sales Line"; var JobBudgetLine: Record "KVSPSA Job Budget Line"; var IsHandled: Boolean): 

Parameters:

  • SalesLine: Target (initialised) sales line.
  • JobBudgetLine: Source job budget line.
  • IsHandled: Set TRUE to skip standard copy logic.

KVSPSAOnBeforeCopyPSPLineToSalesLine(Record Sales Line, Record KVSPSAJobPSPLine, Boolean) :

Summary: Before copying a PSP (WBS) line to the Sales Line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeCopyPSPLineToSalesLine(var SalesLine: Record "Sales Line"; var JobPSPLine: Record "KVSPSAJobPSPLine"; var IsHandled: Boolean): 

Parameters:

  • SalesLine: Target sales line.
  • JobPSPLine: Source PSP line.
  • IsHandled: TRUE skips standard logic.

KVSPSAOnBeforeCreateSalesLineEndTotal(Record Sales Line, Record KVSPSAJobPSPLine, Boolean) :

Summary: Before creating the end-total / subtotal closing sales line.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeCreateSalesLineEndTotal(var SalesLine: Record "Sales Line"; var JobPSPLine: Record "KVSPSAJobPSPLine"; var IsHandled: Boolean): 

Parameters:

  • SalesLine: Planned closing sales line.
  • JobPSPLine: Associated PSP end-total line.
  • IsHandled: TRUE = skip standard creation.

KVSPSAOnBeforeModifySalesHeader(Record Sales Header, Record Job) :

Summary: Before modifying (saving) the newly created sales header. Adjust header fields here.

[IntegrationEvent(false, false)]
local procedure KVSPSAOnBeforeModifySalesHeader(var SalesHeader: Record "Sales Header"; Job: Record "Job"): 

Parameters:

  • SalesHeader: Sales header about to be modified.
  • Job: Job context.

KVSPSAOnFillJobPSPWorkPackageLine(Record KVSPSAJobPSPHeader, Enum Sales Document Type, Record KVSPSAJobPSPLine, Record KVSPSA Job Budget Line, Record KVSPSAJobPSPLine) :

[IntegrationEvent(false, false)]
local procedure KVSPSAOnFillJobPSPWorkPackageLine(KVSPSAJobPSPHeader: Record "KVSPSAJobPSPHeader"; SalesDocumentType: Enum "Sales Document Type"; JobPSPLine: Record "KVSPSAJobPSPLine"; JobBudgetLine: Record "KVSPSA Job Budget Line"; var TempJobPSPLine: Record "KVSPSAJobPSPLine" temporary): 

KVSPSAOnTestJobPSPWorkPackageLine(Record KVSPSAJobPSPHeader, Enum Sales Document Type, Record KVSPSAJobPSPLine, Record KVSPSA Job Budget Line, Record KVSPSAJobPSPLine) :

[IntegrationEvent(false, false)]
local procedure KVSPSAOnTestJobPSPWorkPackageLine(KVSPSAJobPSPHeader: Record "KVSPSAJobPSPHeader"; SalesDocumentType: Enum "Sales Document Type"; TestJobPSPLine: Record "KVSPSAJobPSPLine"; TestJobBudgetLine: Record "KVSPSA Job Budget Line"; var TempJobPSPLine: Record "KVSPSAJobPSPLine" temporary): 

Protected Variables

GlobalJob

Type: Record Job

GlobalSalesHeader

Type: Record Sales Header

TempGlobalSalesHeader

Type: Record Sales Header temporary

GlobalJobCustomer

Type: Boolean

GlobalActualQuoteNo

Type: Code[20]

GlobalCustomDocumentNo

Type: Code[20]

GlobalCustomerNo

Type: Code[20]

GlobalSalesDocumentType

Type: Enum Sales Document Type

GlobalNextLineNo

Type: Integer