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