KVSKBAReleaseSalesDocument#
Events#
OnAfterOnManualReleaseOrSendForApproval(Record Sales Header, Boolean) :#
Summary: Integration event raised after manual release or sending for approval processing completes.
[IntegrationEvent(false, false)]
local procedure OnAfterOnManualReleaseOrSendForApproval(var SalesHeader: Record "Sales Header"; CalledOnSendingForApproval: Boolean):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBAReleaseSalesDocument", 'OnAfterOnManualReleaseOrSendForApproval', '', false, false)]
local procedure DoSomethingOnAfterOnManualReleaseOrSendForApproval(var SalesHeader: Record "Sales Header"; CalledOnSendingForApproval: Boolean)
begin
end;
Parameters:
SalesHeader: The sales header record that was processed.CalledOnSendingForApproval: TRUE if called during approval request, FALSE if called during manual release.
Remarks: Allows subscribers to: - Perform additional validations after standard checks - Update custom fields or related records - Execute custom business logic before actual release - Log or audit release/approval actions
Called after:
- Position numbers are calculated
- Unit prices are updated
- Invoice discounts are recalculated
- Mandatory fields are validated
Only triggered for documents with Status = Open or Pending Prepayment.
OnBeforeOnManualReleaseOrSendForApproval(Record Sales Header, Boolean, Boolean) :#
Summary: Integration event raised before manual release or sending for approval processing starts.
[IntegrationEvent(false, false)]
local procedure OnBeforeOnManualReleaseOrSendForApproval(var SalesHeader: Record "Sales Header"; CalledOnSendingForApproval: Boolean; var IsHandled: Boolean):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBAReleaseSalesDocument", 'OnBeforeOnManualReleaseOrSendForApproval', '', false, false)]
local procedure DoSomethingOnBeforeOnManualReleaseOrSendForApproval(var SalesHeader: Record "Sales Header"; CalledOnSendingForApproval: Boolean; var IsHandled: Boolean)
begin
end;
Parameters:
SalesHeader: The sales header record to be processed.CalledOnSendingForApproval: TRUE if called during approval request, FALSE if called during manual release.IsHandled: Set to TRUE to skip standard processing.
Remarks: Allows subscribers to: - Override standard release/approval logic by setting IsHandled to TRUE - Perform custom pre-validations - Implement alternative processing logic - Add custom checks before price calculations
If IsHandled is set to TRUE, all standard processing is skipped:
- Position number calculation
- Unit price updates
- Invoice discount recalculation
- Mandatory field validation
Called after status check but before any processing begins.
OnManualReleaseOrSendForApprovalOnBeforeUpdateSalesDocLinesUnitPrice(Record Sales Header, Boolean, Boolean) :#
Summary: Integration event raised before updating unit prices in sales document lines.
[IntegrationEvent(false, false)]
local procedure OnManualReleaseOrSendForApprovalOnBeforeUpdateSalesDocLinesUnitPrice(var SalesHeader: Record "Sales Header"; var MustCalcInvoiceDiscount: Boolean; var IsHandled: Boolean):
[EventSubscriber(ObjectType::Codeunit, Codeunit::"KVSKBAReleaseSalesDocument", 'OnManualReleaseOrSendForApprovalOnBeforeUpdateSalesDocLinesUnitPrice', '', false, false)]
local procedure DoSomethingOnManualReleaseOrSendForApprovalOnBeforeUpdateSalesDocLinesUnitPrice(var SalesHeader: Record "Sales Header"; var MustCalcInvoiceDiscount: Boolean; var IsHandled: Boolean)
begin
end;
Parameters:
SalesHeader: The sales header record being processed.MustCalcInvoiceDiscount: Set to TRUE if invoice discount must be recalculated after price update.IsHandled: Set to TRUE to skip standard unit price update logic.
Remarks: Allows subscribers to: - Override standard unit price update by setting IsHandled to TRUE - Implement custom pricing logic - Control invoice discount recalculation by setting MustCalcInvoiceDiscount - Add custom checks before price updates
If IsHandled is set to TRUE:
- Standard UpdateSalesDocLinesUnitPrice is skipped
- MustCalcInvoiceDiscount must be set appropriately by subscriber
Called after position numbers are calculated but before unit price updates.
Only triggered for non-return/credit memo documents with Status = Open.