Report 292 Copy Sales Document, source in 29
Source29
src/Layers/W1/BaseApp/Sales/Document/CopySalesDocument.Report.al670 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Sales.Document;
using Microsoft.Sales.Archive;
using Microsoft.Sales.History;
using Microsoft.Sales.Setup;
using Microsoft.Utilities;
/// <summary>
/// Creates a new sales document by copying data from an existing document or posted document.
/// </summary>
report 292 "Copy Sales Document"
{
Caption = 'Copy Sales Document';
ProcessingOnly = true;
dataset
{
}
requestpage
{
SaveValues = true;
layout
{
area(content)
{
group(Options)
{
Caption = 'Options';
field(DocumentType; FromDocType)
{
ApplicationArea = Suite;
Caption = 'Document Type';
ToolTip = 'Specifies the type of document that is processed by the report or batch job.';
trigger OnValidate()
begin
FromDocNo := '';
ValidateDocNo();
end;
}
field(DocumentNo; FromDocNo)
{
ApplicationArea = Suite;
Caption = 'Document No.';
ShowMandatory = true;
ToolTip = 'Specifies the number of the document that is processed by the report or batch job.';
trigger OnLookup(var Text: Text): Boolean
begin
LookupDocNo();
end;
trigger OnValidate()
begin
ValidateDocNo();
end;
}
field(FromDocNoOccurrence; FromDocNoOccurrence)
{
ApplicationArea = Suite;
BlankZero = true;
Caption = 'Doc. No. Occurrence';
Editable = false;
ToolTip = 'Specifies the number of times the No. value has been used in the number series.';
}
field(FromDocVersionNo; FromDocVersionNo)
{
ApplicationArea = Suite;
BlankZero = true;
Caption = 'Version No.';
Editable = false;
ToolTip = 'Specifies the version of the document to be copied.';
}
field(SellToCustNo; FromSalesHeader."Sell-to Customer No.")
{
ApplicationArea = Suite;
Caption = 'Sell-to Customer No.';
Editable = false;
ToolTip = 'Specifies the sell-to customer number that will appear on the new sales document.';
}
field(SellToCustName; FromSalesHeader."Sell-to Customer Name")
{
ApplicationArea = Suite;
Caption = 'Sell-to Customer Name';
Editable = false;
ToolTip = 'Specifies the sell-to customer name that will appear on the new sales document.';
}
field(IncludeHeader_Options; IncludeHeader)
{
ApplicationArea = Suite;
Caption = 'Include Header';
ToolTip = 'Specifies if you also want to copy the information from the document header. When you copy quotes, if the posting date field of the new document is empty, the work date is used as the posting date of the new document.';
trigger OnValidate()
begin
ValidateIncludeHeader();
end;
}
field(RecalculateLines; RecalculateLines)
{
ApplicationArea = Suite;
Caption = 'Recalculate Lines';
ToolTip = 'Specifies that lines are recalculate and inserted on the sales document you are creating. The batch job retains the item numbers and item quantities but recalculates the amounts on the lines based on the customer information on the new document header. In this way, the batch job accounts for item prices and discounts that are specifically linked to the customer on the new header.';
trigger OnValidate()
begin
if (FromDocType = FromDocType::"Posted Shipment") or (FromDocType = FromDocType::"Posted Return Receipt") then
RecalculateLines := true;
end;
}
}
}
}
actions
{
}
trigger OnOpenPage()
begin
if FromDocNo <> '' then begin
GetSourceDocumentBasedOnFromDocType();
if FromSalesHeader."No." = '' then
FromDocNo := '';
end;
ValidateDocNo();
OnAfterOpenPage();
end;
trigger OnQueryClosePage(CloseAction: Action): Boolean
begin
if CloseAction = Action::OK then
if FromDocNo = '' then
Error(DocNoNotSerErr)
end;
}
labels
{
}
trigger OnPreReport()
var
ExactCostReversingMandatory: Boolean;
begin
OnBeforePreReport();
SalesSetup.Get();
ExactCostReversingMandatory := SalesSetup."Exact Cost Reversing Mandatory";
OnPreReportOnBeforeCopyDocMgtSetProperties(FromDocType, FromDocNo, SalesHeader, ExactCostReversingMandatory);
CopyDocMgt.SetProperties(
IncludeHeader, RecalculateLines, false, false, false, ExactCostReversingMandatory, false);
CopyDocMgt.SetArchDocVal(FromDocNoOccurrence, FromDocVersionNo);
OnPreReportOnBeforeCopySalesDoc(CopyDocMgt, FromDocType.AsInteger(), FromDocNo, SalesHeader, CurrReport.UseRequestPage(), IncludeHeader, RecalculateLines, ExactCostReversingMandatory);
CopyDocMgt.CopySalesDoc(FromDocType, FromDocNo, SalesHeader);
end;
var
#pragma warning disable AA0074
#pragma warning disable AA0470
Text000: Label 'The price information may not be reversed correctly, if you copy a %1. If possible copy a %2 instead or use %3 functionality.';
#pragma warning restore AA0470
Text001: Label 'Undo Shipment';
Text002: Label 'Undo Return Receipt';
#pragma warning restore AA0074
DocNoNotSerErr: Label 'Select a document number to continue, or choose Cancel to close the page.';
protected var
SalesHeader: Record "Sales Header";
FromSalesHeader: Record "Sales Header";
FromSalesShptHeader: Record "Sales Shipment Header";
FromSalesInvHeader: Record "Sales Invoice Header";
FromReturnRcptHeader: Record "Return Receipt Header";
FromSalesCrMemoHeader: Record "Sales Cr.Memo Header";
FromSalesHeaderArchive: Record "Sales Header Archive";
SalesSetup: Record "Sales & Receivables Setup";
CopyDocMgt: Codeunit "Copy Document Mgt.";
FromDocType: Enum "Sales Document Type From";
FromDocNo: Code[20];
FromDocNoOccurrence: Integer;
FromDocVersionNo: Integer;
IncludeHeader: Boolean;
RecalculateLines: Boolean;
/// <summary>
/// Sets the destination sales header for the copy operation.
/// </summary>
/// <param name="NewSalesHeader">Specifies the sales header to copy the document to.</param>
procedure SetSalesHeader(var NewSalesHeader: Record "Sales Header")
begin
NewSalesHeader.TestField("No.");
SalesHeader := NewSalesHeader;
end;
local procedure GetSourceDocumentBasedOnFromDocType()
var
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeGetSourceDocumentBasedOnFromDocType(
FromDocNo, FromDocType,
FromSalesHeader, FromSalesShptHeader, FromSalesInvHeader, FromReturnRcptHeader,
FromSalesCrMemoHeader, FromSalesHeaderArchive,
FromDocNoOccurrence, FromDocVersionNo, IsHandled);
if IsHandled then
exit;
case FromDocType of
FromDocType::Quote:
if FromSalesHeader.Get(FromSalesHeader."Document Type"::Quote, FromDocNo) then
;
FromDocType::"Blanket Order":
if FromSalesHeader.Get(FromSalesHeader."Document Type"::"Blanket Order", FromDocNo) then
;
FromDocType::Order:
if FromSalesHeader.Get(FromSalesHeader."Document Type"::Order, FromDocNo) then
;
FromDocType::Invoice:
if FromSalesHeader.Get(FromSalesHeader."Document Type"::Invoice, FromDocNo) then
;
FromDocType::"Return Order":
if FromSalesHeader.Get(FromSalesHeader."Document Type"::"Return Order", FromDocNo) then
;
FromDocType::"Credit Memo":
if FromSalesHeader.Get(FromSalesHeader."Document Type"::"Credit Memo", FromDocNo) then
;
FromDocType::"Posted Shipment":
if FromSalesShptHeader.Get(FromDocNo) then
FromSalesHeader.TransferFields(FromSalesShptHeader);
FromDocType::"Posted Invoice":
if FromSalesInvHeader.Get(FromDocNo) then
FromSalesHeader.TransferFields(FromSalesInvHeader);
FromDocType::"Posted Return Receipt":
if FromReturnRcptHeader.Get(FromDocNo) then
FromSalesHeader.TransferFields(FromReturnRcptHeader);
FromDocType::"Posted Credit Memo":
if FromSalesCrMemoHeader.Get(FromDocNo) then
FromSalesHeader.TransferFields(FromSalesCrMemoHeader);
FromDocType::"Arch. Order":
if FromSalesHeaderArchive.Get(FromSalesHeaderArchive."Document Type"::Order, FromDocNo, FromDocNoOccurrence, FromDocVersionNo) then
FromSalesHeader.TransferFields(FromSalesHeaderArchive);
FromDocType::"Arch. Quote":
if FromSalesHeaderArchive.Get(FromSalesHeaderArchive."Document Type"::Quote, FromDocNo, FromDocNoOccurrence, FromDocVersionNo) then
FromSalesHeader.TransferFields(FromSalesHeaderArchive);
FromDocType::"Arch. Blanket Order":
if FromSalesHeaderArchive.Get(FromSalesHeaderArchive."Document Type"::"Blanket Order", FromDocNo, FromDocNoOccurrence, FromDocVersionNo) then
FromSalesHeader.TransferFields(FromSalesHeaderArchive);
FromDocType::"Arch. Return Order":
if FromSalesHeaderArchive.Get(FromSalesHeaderArchive."Document Type"::"Return Order", FromDocNo, FromDocNoOccurrence, FromDocVersionNo) then
FromSalesHeader.TransferFields(FromSalesHeaderArchive);
end;
end;
local procedure ValidateDocNo()
var
FromDocType2: Enum "Sales Document Type From";
IsHandled: Boolean;
begin
if FromDocNo = '' then begin
FromSalesHeader.Init();
FromDocNoOccurrence := 0;
FromDocVersionNo := 0;
end else
if FromSalesHeader."No." = '' then begin
FromSalesHeader.Init();
IsHandled := false;
OnBeforeValidateDocNo(FromDocType, FromDocNo, FromSalesHeader, SalesHeader, IsHandled);
if not IsHandled then
case FromDocType of
FromDocType::Quote,
FromDocType::Order,
FromDocType::Invoice,
FromDocType::"Credit Memo",
FromDocType::"Blanket Order",
FromDocType::"Return Order":
FromSalesHeader.Get(CopyDocMgt.GetSalesDocumentType(FromDocType), FromDocNo);
FromDocType::"Posted Shipment":
begin
FromSalesShptHeader.Get(FromDocNo);
FromSalesHeader.TransferFields(FromSalesShptHeader);
if SalesHeader."Document Type" in
[SalesHeader."Document Type"::"Return Order", SalesHeader."Document Type"::"Credit Memo"]
then begin
FromDocType2 := FromDocType2::"Posted Invoice";
Message(Text000, FromDocType, FromDocType2, Text001);
end;
end;
FromDocType::"Posted Invoice":
begin
FromSalesInvHeader.Get(FromDocNo);
FromSalesHeader.TransferFields(FromSalesInvHeader);
OnValidateDocNoOnAfterTransferFieldsFromSalesInvHeader(FromSalesHeader, FromSalesInvHeader);
end;
FromDocType::"Posted Return Receipt":
begin
FromReturnRcptHeader.Get(FromDocNo);
FromSalesHeader.TransferFields(FromReturnRcptHeader);
OnValidateDocNoOnAfterTransferFieldsFromReturnReceiptHeader(FromSalesHeader, FromReturnRcptHeader);
if SalesHeader."Document Type" in
[SalesHeader."Document Type"::Order, SalesHeader."Document Type"::Invoice]
then begin
FromDocType2 := FromDocType2::"Posted Credit Memo";
Message(Text000, FromDocType, FromDocType2, Text002);
end;
end;
FromDocType::"Posted Credit Memo":
begin
FromSalesCrMemoHeader.Get(FromDocNo);
FromSalesHeader.TransferFields(FromSalesCrMemoHeader);
OnValidateDocNoOnAfterTransferFieldsFromSalesCrMemoHeader(FromSalesHeader, FromSalesCrMemoHeader);
end;
FromDocType::"Arch. Quote",
FromDocType::"Arch. Order",
FromDocType::"Arch. Blanket Order",
FromDocType::"Arch. Return Order":
begin
FindFromSalesHeaderArchive();
FromSalesHeader.TransferFields(FromSalesHeaderArchive);
end;
end;
OnValidateDocNoOnAfterCaseFromDocType(FromSalesHeader, FromDocType, FromDocNo, FromDocNoOccurrence, FromDocVersionNo);
end;
FromSalesHeader."No." := '';
IncludeHeader :=
(FromDocType in [FromDocType::"Posted Invoice", FromDocType::"Posted Credit Memo"]) and
((FromDocType = FromDocType::"Posted Credit Memo") <>
(SalesHeader."Document Type" in
[SalesHeader."Document Type"::"Return Order", SalesHeader."Document Type"::"Credit Memo"])) and
(SalesHeader."Bill-to Customer No." in [FromSalesHeader."Bill-to Customer No.", '']);
OnBeforeValidateIncludeHeader(IncludeHeader, FromSalesHeader);
ValidateIncludeHeader();
OnAfterValidateIncludeHeader(IncludeHeader, RecalculateLines);
end;
local procedure FindFromSalesHeaderArchive()
var
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeFindFromSalesHeaderArchive(FromSalesHeaderArchive, FromDocType, FromDocNo, FromDocNoOccurrence, FromDocVersionNo, IsHandled);
if IsHandled then
exit;
if not FromSalesHeaderArchive.Get(
CopyDocMgt.GetSalesDocumentType(FromDocType), FromDocNo, FromDocNoOccurrence, FromDocVersionNo)
then begin
FromSalesHeaderArchive.SetRange("No.", FromDocNo);
if FromSalesHeaderArchive.FindLast() then begin
FromDocNoOccurrence := FromSalesHeaderArchive."Doc. No. Occurrence";
FromDocVersionNo := FromSalesHeaderArchive."Version No.";
end;
end;
end;
/// <summary>
/// Opens a lookup page to select the source document number based on the document type.
/// </summary>
procedure LookupDocNo()
begin
OnBeforeLookupDocNo(SalesHeader, FromDocType, FromDocNo);
case FromDocType of
FromDocType::Quote,
FromDocType::Order,
FromDocType::Invoice,
FromDocType::"Credit Memo",
FromDocType::"Blanket Order",
FromDocType::"Return Order":
LookupSalesDoc();
FromDocType::"Posted Shipment":
LookupPostedShipment();
FromDocType::"Posted Invoice":
LookupPostedInvoice();
FromDocType::"Posted Return Receipt":
LookupPostedReturn();
FromDocType::"Posted Credit Memo":
LookupPostedCrMemo();
FromDocType::"Arch. Quote",
FromDocType::"Arch. Order",
FromDocType::"Arch. Blanket Order",
FromDocType::"Arch. Return Order":
LookupSalesArchive();
end;
ValidateDocNo();
end;
procedure LookupSalesDoc()
begin
OnBeforeLookupSalesDoc(FromSalesHeader, SalesHeader, FromDocType);
FromSalesHeader.FilterGroup := 0;
FromSalesHeader.SetRange("Document Type", CopyDocMgt.GetSalesDocumentType(FromDocType));
if SalesHeader."Document Type" = CopyDocMgt.GetSalesDocumentType(FromDocType) then
FromSalesHeader.SetFilter("No.", '<>%1', SalesHeader."No.");
FromSalesHeader.FilterGroup := 2;
FromSalesHeader."Document Type" := CopyDocMgt.GetSalesDocumentType(FromDocType);
FromSalesHeader."No." := FromDocNo;
if (FromDocNo = '') and (SalesHeader."Sell-to Customer No." <> '') then
if FromSalesHeader.SetCurrentKey("Document Type", "Sell-to Customer No.") then begin
FromSalesHeader."Sell-to Customer No." := SalesHeader."Sell-to Customer No.";
if FromSalesHeader.Find('=><') then;
end;
OnLookupSalesDocOnBeforeRunLookup(FromSalesHeader, SalesHeader, FromDocType);
if Page.RunModal(0, FromSalesHeader) = Action::LookupOK then
FromDocNo := FromSalesHeader."No.";
end;
local procedure LookupSalesArchive()
begin
FromSalesHeaderArchive.Reset();
OnLookupSalesArchiveOnBeforeSetFilters(FromSalesHeaderArchive, SalesHeader, FromDocType);
FromSalesHeaderArchive.FilterGroup := 0;
FromSalesHeaderArchive.SetRange("Document Type", CopyDocMgt.GetSalesDocumentType(FromDocType));
FromSalesHeaderArchive.FilterGroup := 2;
FromSalesHeaderArchive."Document Type" := CopyDocMgt.GetSalesDocumentType(FromDocType);
FromSalesHeaderArchive."No." := FromDocNo;
FromSalesHeaderArchive."Doc. No. Occurrence" := FromDocNoOccurrence;
FromSalesHeaderArchive."Version No." := FromDocVersionNo;
if (FromDocNo = '') and (SalesHeader."Sell-to Customer No." <> '') then
if FromSalesHeaderArchive.SetCurrentKey("Document Type", "Sell-to Customer No.") then begin
FromSalesHeaderArchive."Sell-to Customer No." := SalesHeader."Sell-to Customer No.";
if FromSalesHeaderArchive.Find('=><') then;
end;
if Page.RunModal(0, FromSalesHeaderArchive) = Action::LookupOK then begin
FromDocNo := FromSalesHeaderArchive."No.";
FromDocNoOccurrence := FromSalesHeaderArchive."Doc. No. Occurrence";
FromDocVersionNo := FromSalesHeaderArchive."Version No.";
RequestOptionsPage.Update(false);
end;
end;
local procedure LookupPostedShipment()
begin
OnBeforeLookupPostedShipment(FromSalesShptHeader, SalesHeader);
FromSalesShptHeader."No." := FromDocNo;
if (FromDocNo = '') and (SalesHeader."Sell-to Customer No." <> '') then
if FromSalesShptHeader.SetCurrentKey("Sell-to Customer No.") then begin
FromSalesShptHeader."Sell-to Customer No." := SalesHeader."Sell-to Customer No.";
if FromSalesShptHeader.Find('=><') then;
end;
if Page.RunModal(0, FromSalesShptHeader) = Action::LookupOK then
FromDocNo := FromSalesShptHeader."No.";
end;
local procedure LookupPostedInvoice()
begin
OnBeforeLookupPostedInvoice(FromSalesInvHeader, SalesHeader);
FromSalesInvHeader."No." := FromDocNo;
if (FromDocNo = '') and (SalesHeader."Sell-to Customer No." <> '') then
if FromSalesInvHeader.SetCurrentKey("Sell-to Customer No.") then begin
FromSalesInvHeader."Sell-to Customer No." := SalesHeader."Sell-to Customer No.";
if FromSalesInvHeader.Find('=><') then;
end;
FromSalesInvHeader.FilterGroup(2);
FromSalesInvHeader.SetRange("Prepayment Invoice", false);
FromSalesInvHeader.FilterGroup(0);
OnLookupPostedInvoiceOnBeforeRunLookup(FromSalesInvHeader, SalesHeader);
if Page.RunModal(0, FromSalesInvHeader) = Action::LookupOK then
FromDocNo := FromSalesInvHeader."No.";
end;
local procedure LookupPostedCrMemo()
begin
OnBeforeLookupPostedCrMemo(FromSalesCrMemoHeader, SalesHeader);
FromSalesCrMemoHeader."No." := FromDocNo;
if (FromDocNo = '') and (SalesHeader."Sell-to Customer No." <> '') then
if FromSalesCrMemoHeader.SetCurrentKey("Sell-to Customer No.") then begin
FromSalesCrMemoHeader."Sell-to Customer No." := SalesHeader."Sell-to Customer No.";
if FromSalesCrMemoHeader.Find('=><') then;
end;
FromSalesCrMemoHeader.FilterGroup(2);
FromSalesCrMemoHeader.SetRange("Prepayment Credit Memo", false);
FromSalesCrMemoHeader.FilterGroup(0);
OnLookupPostedCrMemoOnBeforeRunLookup(FromSalesCrMemoHeader, SalesHeader);
if Page.RunModal(0, FromSalesCrMemoHeader) = Action::LookupOK then
FromDocNo := FromSalesCrMemoHeader."No.";
end;
local procedure LookupPostedReturn()
begin
OnBeforeLookupPostedReturn(FromReturnRcptHeader, SalesHeader);
FromReturnRcptHeader."No." := FromDocNo;
if (FromDocNo = '') and (SalesHeader."Sell-to Customer No." <> '') then
if FromReturnRcptHeader.SetCurrentKey("Sell-to Customer No.") then begin
FromReturnRcptHeader."Sell-to Customer No." := SalesHeader."Sell-to Customer No.";
if FromReturnRcptHeader.Find('=><') then;
end;
if Page.RunModal(0, FromReturnRcptHeader) = Action::LookupOK then
FromDocNo := FromReturnRcptHeader."No.";
end;
local procedure ValidateIncludeHeader()
begin
RecalculateLines :=
(FromDocType in [FromDocType::"Posted Shipment", FromDocType::"Posted Return Receipt"]) or not IncludeHeader;
OnAfterValidateIncludeHeaderProcedure(IncludeHeader, RecalculateLines, SalesHeader, FromDocType);
end;
/// <summary>
/// Sets the parameters for the copy operation.
/// </summary>
/// <param name="NewFromDocType">Specifies the type of document to copy from.</param>
/// <param name="NewFromDocNo">Specifies the document number to copy from.</param>
/// <param name="NewIncludeHeader">Specifies whether to include the header information.</param>
/// <param name="NewRecalcLines">Specifies whether to recalculate the lines.</param>
procedure SetParameters(NewFromDocType: Enum "Sales Document Type From"; NewFromDocNo: Code[20]; NewIncludeHeader: Boolean; NewRecalcLines: Boolean)
begin
SetParameters(NewFromDocType, NewFromDocNo, 0, 0, NewIncludeHeader, NewRecalcLines);
end;
/// <summary>
/// Sets the parameters for the copy operation including archive version information.
/// </summary>
/// <param name="NewFromDocType">Specifies the type of document to copy from.</param>
/// <param name="NewFromDocNo">Specifies the document number to copy from.</param>
/// <param name="NewFromDocNoOccurrence">Specifies the document number occurrence for archived documents.</param>
/// <param name="NewFromDocVersionNo">Specifies the version number for archived documents.</param>
/// <param name="NewIncludeHeader">Specifies whether to include the header information.</param>
/// <param name="NewRecalcLines">Specifies whether to recalculate the lines.</param>
procedure SetParameters(NewFromDocType: Enum "Sales Document Type From"; NewFromDocNo: Code[20]; NewFromDocNoOccurrence: Integer; NewFromDocVersionNo: Integer; NewIncludeHeader: Boolean; NewRecalcLines: Boolean)
begin
FromDocType := NewFromDocType;
FromDocNo := NewFromDocNo;
FromDocNoOccurrence := NewFromDocNoOccurrence;
FromDocVersionNo := NewFromDocVersionNo;
IncludeHeader := NewIncludeHeader;
RecalculateLines := NewRecalcLines;
end;
[IntegrationEvent(false, false)]
local procedure OnAfterOpenPage()
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeGetSourceDocumentBasedOnFromDocType(var FromDocNo: Code[20]; FromDocType: Enum "Sales Document Type From"; var FromSalesHeader: Record "Sales Header"; var FromSalesShptHeader: Record "Sales Shipment Header"; var FromSalesInvoiceHeader: Record "Sales Invoice Header"; var FromReturnReceiptHeader: Record "Return Receipt Header"; var FromSalesCrMemoHeader: Record "Sales Cr.Memo Header"; var FromSalesHeaderArchive: Record "Sales Header Archive"; var FromDocNoOccurrence: Integer; var FromDocVersionNo: Integer; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterValidateIncludeHeader(var IncludeHeader: Boolean; var RecalculateLines: Boolean)
begin
end;
[IntegrationEvent(true, false)]
local procedure OnAfterValidateIncludeHeaderProcedure(var IncludeHeader: Boolean; var RecalculateLines: Boolean; SalesHeader: Record "Sales Header"; FromDocType: Enum "Sales Document Type From")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeFindFromSalesHeaderArchive(var FromSalesHeaderArchive: Record "Sales Header Archive"; DocType: Enum "Sales Document Type From"; DocNo: Code[20]; var DocNoOccurrence: Integer; var DocVersionNo: Integer; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeLookupDocNo(var SalesHeader: Record "Sales Header"; FromDocType: Enum "Sales Document Type From"; var FromDocNo: Code[20])
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeLookupSalesDoc(var FromSalesHeader: Record "Sales Header"; var SalesHeader: Record "Sales Header"; FromDocType: Enum "Sales Document Type From")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeLookupPostedCrMemo(var FromSalesCrMemoHeader: Record "Sales Cr.Memo Header"; var SalesHeader: Record "Sales Header");
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeLookupPostedInvoice(var FromSalesInvHeader: Record "Sales Invoice Header"; var SalesHeader: Record "Sales Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeLookupPostedShipment(var FromSalesShptHeader: Record "Sales Shipment Header"; var SalesHeader: Record "Sales Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeLookupPostedReturn(var FromReturnRcptHeader: Record "Return Receipt Header"; var SalesHeader: Record "Sales Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforePreReport()
begin
end;
[IntegrationEvent(true, false)]
local procedure OnBeforeValidateIncludeHeader(var DoIncludeHeader: Boolean; FromSalesHeader: Record "Sales Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnLookupSalesArchiveOnBeforeSetFilters(var FromSalesHeaderArchive: Record "Sales Header Archive"; var SalesHeader: Record "Sales Header"; FromDocType: Enum "Sales Document Type From")
begin
end;
[IntegrationEvent(true, false)]
local procedure OnPreReportOnBeforeCopySalesDoc(var CopyDocumentMgt: Codeunit "Copy Document Mgt."; DocType: Integer; DocNo: Code[20]; SalesHeader: Record "Sales Header"; CurrReportUseRequestPage: Boolean; IncludeHeader: Boolean; RecalculateLines: Boolean; ExactCostReversingMandatory: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnPreReportOnBeforeCopyDocMgtSetProperties(FromDocType: Enum "Sales Document Type From"; FromDocNo: Code[20]; SalesHeader: Record "Sales Header"; var ExactCostReversingMandatory: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeValidateDocNo(FromDocType: Enum "Sales Document Type From"; FromDocNo: Code[20]; var FromSalesHeader: Record "Sales Header"; SalesHeader: Record "Sales Header"; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnValidateDocNoOnAfterTransferFieldsFromSalesInvHeader(FromSalesHeader: Record "Sales Header"; FromSalesInvoiceHeader: Record "Sales Invoice Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnValidateDocNoOnAfterTransferFieldsFromSalesCrMemoHeader(FromSalesHeader: Record "Sales Header"; FromSalesCrMemoHeader: Record "Sales Cr.Memo Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnValidateDocNoOnAfterTransferFieldsFromReturnReceiptHeader(FromSalesHeader: Record "Sales Header"; FromReturnReceiptHeader: Record "Return Receipt Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnLookupSalesDocOnBeforeRunLookup(var FromSalesHeader: Record "Sales Header"; var SalesHeader: Record "Sales Header"; SalesDocumentTypeFrom: Enum "Sales Document Type From")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnLookupPostedInvoiceOnBeforeRunLookup(var FromSalesInvoiceHeader: Record "Sales Invoice Header"; var SalesHeader: Record "Sales Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnLookupPostedCrMemoOnBeforeRunLookup(var FromSalesCrMemoHeader: Record "Sales Cr.Memo Header"; var SalesHeader: Record "Sales Header");
begin
end;
[IntegrationEvent(false, false)]
local procedure OnValidateDocNoOnAfterCaseFromDocType(var FromSalesHeader: Record "Sales Header"; FromDocType: Enum "Sales Document Type From"; FromDocNo: Code[20]; FromDocNoOccurrence: Integer; FromDocVersionNo: Integer)
begin
end;
}