Codeunit 5747 Purch. Whse. Post Shipment, source in 29
Source29
src/Layers/W1/BaseApp/Purchases/PurchWhsePostShipment.Codeunit.al485 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.Warehouse.Posting;
using Microsoft.Foundation.Navigate;
using Microsoft.Purchases.Document;
using Microsoft.Purchases.History;
using Microsoft.Purchases.Posting;
using Microsoft.Purchases.Setup;
using Microsoft.Warehouse.Document;
using Microsoft.Warehouse.Setup;
codeunit 5747 "Purch. Whse. Post Shipment"
{
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Whse.-Post Shipment", 'OnGetSourceDocumentOnElseCase', '', false, false)]
local procedure OnGetSourceDocument(var SourceHeader: Variant; var WhseShptLine: Record "Warehouse Shipment Line"; var GenJnlTemplateName: Code[10])
var
PurchaseHeader: Record "Purchase Header";
begin
case WhseShptLine."Source Type" of
Database::"Purchase Line":
begin
PurchaseHeader.Get(WhseShptLine."Source Subtype", WhseShptLine."Source No.");
SourceHeader := PurchaseHeader;
GenJnlTemplateName := PurchaseHeader."Journal Templ. Name";
end;
end;
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Whse.-Post Shipment", 'OnInitSourceDocumentHeader', '', false, false)]
local procedure OnInitSourceDocumentHeader(var WhseShptHeader: Record "Warehouse Shipment Header"; var WhseShptLine: Record "Warehouse Shipment Line"; var SourceHeader: Variant);
var
PurchHeader: Record "Purchase Header";
PurchRelease: Codeunit "Release Purchase Document";
ValidatePostingDate: Boolean;
ModifyHeader: Boolean;
IsHandled: Boolean;
begin
case WhseShptLine."Source Type" of
Database::"Purchase Line": // Return Order
begin
PurchHeader := SourceHeader;
PurchHeader.Get(PurchHeader."Document Type", PurchHeader."No.");
IsHandled := false;
OnInitSourceDocumentHeaderOnBeforePurchaseHeaderUpdatePostingDate(PurchHeader, WhseShptHeader, WhseShptLine, ValidatePostingDate, ModifyHeader, IsHandled);
if not IsHandled then
if (PurchHeader."Posting Date" = 0D) or
(PurchHeader."Posting Date" <> WhseShptHeader."Posting Date")
then begin
OnInitSourceDocumentHeaderOnBeforeReopenPurchHeader(WhseShptLine, PurchHeader);
PurchRelease.SetSkipWhseRequestOperations(true);
PurchRelease.Reopen(PurchHeader);
PurchRelease.SetSkipCheckReleaseRestrictions();
PurchHeader.SetHideValidationDialog(true);
PurchHeader.SetCalledFromWhseDoc(true);
PurchHeader.Validate("Posting Date", WhseShptHeader."Posting Date");
PurchRelease.Run(PurchHeader);
ModifyHeader := true;
end;
if (WhseShptHeader."Shipment Date" <> 0D) and
(WhseShptHeader."Shipment Date" <> PurchHeader."Expected Receipt Date")
then begin
PurchHeader."Expected Receipt Date" := WhseShptHeader."Shipment Date";
ModifyHeader := true;
end;
if WhseShptHeader."External Document No." <> '' then begin
PurchHeader."Vendor Authorization No." := WhseShptHeader."External Document No.";
ModifyHeader := true;
end;
if (WhseShptHeader."Shipment Method Code" <> '') and
(WhseShptHeader."Shipment Method Code" <> PurchHeader."Shipment Method Code")
then begin
PurchHeader."Shipment Method Code" := WhseShptHeader."Shipment Method Code";
ModifyHeader := true;
end;
OnInitSourceDocumentHeaderOnBeforePurchHeaderModify(PurchHeader, WhseShptHeader, ModifyHeader);
if ModifyHeader then
PurchHeader.Modify();
end;
end;
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Whse.-Post Shipment", 'OnAfterInitSourceDocumentLines', '', false, false)]
local procedure OnAfterInitSourceDocumentLines(var WhseShptLine2: Record "Warehouse Shipment Line"; var SourceHeader: Variant; var WhseShptHeader: Record "Warehouse Shipment Header"; WhsePostParameters: Record "Whse. Post Parameters")
var
PurchHeader: Record "Purchase Header";
begin
case WhseShptLine2."Source Type" of
Database::"Purchase Line":
begin
PurchHeader := SourceHeader;
PurchHeader.Get(PurchHeader."Document Type", PurchHeader."No.");
HandlePurchaseLine(WhseShptLine2, PurchHeader, WhseShptHeader, WhsePostParameters);
end;
end;
end;
local procedure HandlePurchaseLine(var WhseShptLine: Record "Warehouse Shipment Line"; var PurchHeader: Record "Purchase Header"; var WhseShptHeader: Record "Warehouse Shipment Header"; WhsePostParameters: Record "Whse. Post Parameters")
var
PurchLine: Record "Purchase Line";
ModifyLine: Boolean;
IsHandled: Boolean;
ShouldModifyExpectedReceiptDate: Boolean;
begin
IsHandled := false;
OnBeforeHandlePurchaseLine(WhseShptLine, PurchLine, WhseShptHeader, ModifyLine, IsHandled, WhsePostParameters);
if IsHandled then
exit;
PurchLine.SetRange("Document Type", WhseShptLine."Source Subtype");
PurchLine.SetRange("Document No.", WhseShptLine."Source No.");
if PurchLine.Find('-') then
repeat
WhseShptLine.SetRange(WhseShptLine."Source Line No.", PurchLine."Line No.");
if WhseShptLine.Find('-') then begin
OnAfterFindWhseShptLineForPurchLine(WhseShptLine, PurchLine);
if WhseShptLine."Source Document" = WhseShptLine."Source Document"::"Purchase Order" then begin
ModifyLine := PurchLine."Qty. to Receive" <> -WhseShptLine."Qty. to Ship";
if ModifyLine then begin
PurchLine.Validate("Qty. to Receive", -WhseShptLine."Qty. to Ship");
OnHandlePurchaseLineOnAfterValidateQtytoReceive(PurchLine, WhseShptLine);
if WhsePostParameters."Post Invoice" then
PurchLine.Validate(
"Qty. to Invoice",
-WhseShptLine."Qty. to Ship" + PurchLine."Quantity Received" - PurchLine."Quantity Invoiced");
end;
end else begin
PurchHeader.Get(PurchLine."Document Type", PurchLine."Document No.");
ModifyLine := PurchLine."Return Qty. to Ship" <> WhseShptLine."Qty. to Ship";
if ModifyLine then begin
PurchLine.Validate("Return Qty. to Ship", WhseShptLine."Qty. to Ship");
OnHandlePurchaseLineOnAfterValidateRetQtytoShip(PurchLine, WhseShptLine);
if WhsePostParameters."Post Invoice" then
PurchLine.Validate(
"Qty. to Invoice",
WhseShptLine."Qty. to Ship" + PurchLine."Return Qty. Shipped" - PurchLine."Quantity Invoiced");
end;
end;
ShouldModifyExpectedReceiptDate :=
(WhseShptHeader."Shipment Date" <> 0D) and
(PurchLine."Expected Receipt Date" <> WhseShptHeader."Shipment Date") and
(WhseShptLine."Qty. to Ship" = WhseShptLine."Qty. Outstanding");
OnHandlePurchLineOnAfterCalcShouldModifyExpectedReceiptDate(WhseShptHeader, WhseShptLine, PurchLine, ShouldModifyExpectedReceiptDate);
if ShouldModifyExpectedReceiptDate then begin
PurchLine."Expected Receipt Date" := WhseShptHeader."Shipment Date";
ModifyLine := true;
end;
if PurchLine."Bin Code" <> WhseShptLine."Bin Code" then begin
PurchLine."Bin Code" := WhseShptLine."Bin Code";
ModifyLine := true;
end;
end else
if not UpdateAllNonInventoryLines(PurchLine, ModifyLine) then
if not UpdateAttachedLine(PurchLine, WhseShptLine, ModifyLine) then
ClearPurchLineQtyToShipReceive(PurchLine, WhseShptLine, ModifyLine);
OnBeforePurchLineModify(PurchLine, WhseShptLine, ModifyLine, WhsePostParameters);
if ModifyLine then
PurchLine.Modify();
until PurchLine.Next() = 0;
OnAfterHandlePurchaseLine(WhseShptLine, PurchHeader, WhsePostParameters);
end;
local procedure ClearPurchLineQtyToShipReceive(var PurchLine: Record "Purchase Line"; WarehouseShipmentLine: Record "Warehouse Shipment Line"; var ModifyLine: Boolean)
begin
ModifyLine :=
(PurchLine."Qty. to Receive" <> 0) or
(PurchLine."Return Qty. to Ship" <> 0) or
(PurchLine."Qty. to Invoice" <> 0);
OnHandlePurchLineOnNonWhseLineOnAfterCalcModifyLine(PurchLine, ModifyLine);
if ModifyLine then begin
if WarehouseShipmentLine."Source Document" = WarehouseShipmentLine."Source Document"::"Purchase Order" then
PurchLine.Validate("Qty. to Receive", 0)
else
PurchLine.Validate("Return Qty. to Ship", 0);
PurchLine.Validate("Qty. to Invoice", 0);
end;
end;
local procedure UpdateAttachedLine(var PurchLine: Record "Purchase Line"; var WarehouseShipmentLine: Record "Warehouse Shipment Line"; var ModifyLine: Boolean): Boolean
var
PurchasesPayablesSetup: Record "Purchases & Payables Setup";
WhseShptLine2: Record "Warehouse Shipment Line";
ItemChargeAssignmentPurch: Record "Item Charge Assignment (Purch)";
QtyToHandle: Decimal;
begin
PurchasesPayablesSetup.Get();
if PurchasesPayablesSetup."Auto Post Non-Invt. via Whse." <> PurchasesPayablesSetup."Auto Post Non-Invt. via Whse."::"Attached/Assigned" then
exit(false);
if PurchLine.Type = PurchLine.Type::"Charge (Item)" then begin
ItemChargeAssignmentPurch.SetRange("Document Type", PurchLine."Document Type");
ItemChargeAssignmentPurch.SetRange("Document No.", PurchLine."Document No.");
ItemChargeAssignmentPurch.SetRange("Document Line No.", PurchLine."Line No.");
ItemChargeAssignmentPurch.SetRange("Applies-to Doc. Type", PurchLine."Document Type");
ItemChargeAssignmentPurch.SetRange("Applies-to Doc. No.", PurchLine."Document No.");
ItemChargeAssignmentPurch.SetFilter("Qty. to Handle", '<>0');
if not ItemChargeAssignmentPurch.FindSet() then
exit(false);
repeat
WhseShptLine2.Copy(WarehouseShipmentLine);
WhseShptLine2.SetRange("Source Line No.", ItemChargeAssignmentPurch."Applies-to Doc. Line No.");
if not WhseShptLine2.IsEmpty() then
QtyToHandle += ItemChargeAssignmentPurch."Qty. to Handle";
until ItemChargeAssignmentPurch.Next() = 0;
end else begin
if PurchLine."Attached to Line No." = 0 then
exit(false);
WhseShptLine2.Copy(WarehouseShipmentLine);
WhseShptLine2.SetRange("Source Line No.", PurchLine."Attached to Line No.");
if WhseShptLine2.IsEmpty() then
exit(false);
QtyToHandle := PurchLine."Outstanding Quantity";
end;
if PurchLine."Document Type" = PurchLine."Document Type"::Order then begin
ModifyLine := PurchLine."Qty. to Receive" <> QtyToHandle;
if ModifyLine then
PurchLine.Validate("Qty. to Receive", QtyToHandle);
end else begin
ModifyLine := PurchLine."Return Qty. to Ship" <> QtyToHandle;
if ModifyLine then
PurchLine.Validate("Return Qty. to Ship", QtyToHandle);
end;
exit(true);
end;
local procedure UpdateAllNonInventoryLines(var PurchaseLine: Record "Purchase Line"; var ModifyLine: Boolean): Boolean
var
PurchasesPayablesSetup: Record "Purchases & Payables Setup";
begin
if PurchaseLine.IsInventoriableItem() then
exit(false);
PurchasesPayablesSetup.Get();
if PurchasesPayablesSetup."Auto Post Non-Invt. via Whse." <> PurchasesPayablesSetup."Auto Post Non-Invt. via Whse."::All then
exit(false);
if PurchaseLine."Document Type" = PurchaseLine."Document Type"::Order then begin
ModifyLine := PurchaseLine."Qty. to Receive" <> PurchaseLine."Outstanding Quantity";
if ModifyLine then
PurchaseLine.Validate("Qty. to Receive", PurchaseLine."Outstanding Quantity");
end else begin
ModifyLine := PurchaseLine."Return Qty. to Ship" <> PurchaseLine."Outstanding Quantity";
if ModifyLine then
PurchaseLine.Validate("Return Qty. to Ship", PurchaseLine."Outstanding Quantity");
end;
exit(true);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Whse.-Post Shipment", 'OnPostSourceDocument', '', false, false)]
local procedure OnPostSourceDocument(var WhseShptHeader: Record "Warehouse Shipment Header"; var WhseShptLine: Record "Warehouse Shipment Line"; var CounterDocOK: Integer; var SourceHeader: Variant; var DocumentEntryToPrint: Record "Document Entry" temporary; WhsePostParameters: Record "Whse. Post Parameters" temporary)
var
PurchHeader: Record "Purchase Header";
WarehouseSetup: Record "Warehouse Setup";
PurchPost: Codeunit "Purch.-Post";
IsHandled: Boolean;
begin
case WhseShptLine."Source Type" of
Database::"Purchase Line":
// Return Order
begin
PurchHeader := SourceHeader;
PurchHeader.Get(PurchHeader."Document Type", PurchHeader."No.");
if WhseShptLine."Source Document" = WhseShptLine."Source Document"::"Purchase Order" then
PurchHeader.Receive := true
else
PurchHeader.Ship := true;
PurchHeader.Invoice := WhsePostParameters."Post Invoice";
PurchPost.SetWhseShptHeader(WhseShptHeader);
PurchPost.SetPreviewMode(WhsePostParameters."Preview Posting");
PurchPost.SetSuppressCommit(WhsePostParameters."Suppress Commit");
PurchPost.SetCalledBy(Codeunit::"Whse.-Post Shipment");
IsHandled := false;
OnPostSourceDocumentOnBeforePostPurchHeader(PurchPost, PurchHeader, WhsePostParameters, WhseShptHeader, CounterDocOK, IsHandled);
if not IsHandled then
if WhsePostParameters."Preview Posting" then
PostSourcePurchDocument(PurchHeader, PurchPost, CounterDocOK)
else begin
WarehouseSetup.Get();
case WarehouseSetup."Shipment Posting Policy" of
WarehouseSetup."Shipment Posting Policy"::"Posting errors are not processed":
TryPostSourcePurchDocument(PurchHeader, PurchPost, CounterDocOK);
WarehouseSetup."Shipment Posting Policy"::"Stop and show the first posting error":
PostSourcePurchDocument(PurchHeader, PurchPost, CounterDocOK);
end;
end;
if WhsePostParameters."Print Documents" then
if WhseShptLine."Source Document" = WhseShptLine."Source Document"::"Purchase Return Order" then begin
IsHandled := false;
OnPostSourceDocumentOnBeforePrintPurchReturnShipment(PurchHeader, IsHandled);
if not IsHandled then
InsertDocumentEntryToPrint(
DocumentEntryToPrint, Database::"Return Shipment Header", PurchHeader."Last Return Shipment No.");
if WhsePostParameters."Post Invoice" then begin
IsHandled := false;
OnPostSourceDocumentOnBeforePrintPurchCreditMemo(PurchHeader, IsHandled);
if not IsHandled then
InsertDocumentEntryToPrint(
DocumentEntryToPrint, Database::"Purch. Cr. Memo Hdr.", PurchHeader."Last Posting No.");
end;
end;
OnAfterPurchPost(WhseShptLine, PurchHeader, WhsePostParameters, WhseShptHeader);
Clear(PurchPost);
end;
end;
end;
local procedure InsertDocumentEntryToPrint(var DocumentEntry: Record "Document Entry"; TableID: Integer; DocumentNo: Code[20])
begin
DocumentEntry.Init();
DocumentEntry."Entry No." := DocumentEntry."Entry No." + 1;
DocumentEntry."Table ID" := TableID;
DocumentEntry."Document No." := DocumentNo;
DocumentEntry.Insert();
end;
local procedure TryPostSourcePurchDocument(var PurchHeader: Record "Purchase Header"; var PurchPost: Codeunit "Purch.-Post"; var CounterSourceDocOK: Integer)
var
Result: Boolean;
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeTryPostSourcePurchDocument(PurchPost, PurchHeader, IsHandled);
if not IsHandled then
if PurchPost.Run(PurchHeader) then begin
CounterSourceDocOK := CounterSourceDocOK + 1;
Result := true;
end;
OnAfterTryPostSourcePurchDocument(CounterSourceDocOK, PurchPost, PurchHeader, Result);
end;
local procedure PostSourcePurchDocument(var PurchHeader: Record "Purchase Header"; var PurchPost: Codeunit "Purch.-Post"; var CounterSourceDocOK: Integer)
begin
OnBeforePostSourcePurchDocument(PurchPost, PurchHeader);
PurchPost.RunWithCheck(PurchHeader);
CounterSourceDocOK := CounterSourceDocOK + 1;
OnAfterPostSourcePurchDocument(CounterSourceDocOK, PurchPost, PurchHeader);
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Whse.-Post Shipment", 'OnPrintDocuments', '', false, false)]
local procedure OnPrintDocuments(var DocumentEntryToPrint: Record "Document Entry")
begin
PrintDocuments(DocumentEntryToPrint);
end;
local procedure PrintDocuments(var DocumentEntryToPrint: Record "Document Entry")
var
PurchCrMemoHdr: Record "Purch. Cr. Memo Hdr.";
ReturnShipmentHeader: Record "Return Shipment Header";
begin
DocumentEntryToPrint.SetRange("Table ID", Database::"Purch. Cr. Memo Hdr.");
if not DocumentEntryToPrint.IsEmpty() then begin
if DocumentEntryToPrint.FindSet() then
repeat
PurchCrMemoHdr.Get(DocumentEntryToPrint."Document No.");
PurchCrMemoHdr.Mark(true);
until DocumentEntryToPrint.Next() = 0;
PurchCrMemoHdr.MarkedOnly(true);
PurchCrMemoHdr.PrintRecords(false);
end;
DocumentEntryToPrint.SetRange("Table ID", Database::"Return Shipment Header");
if not DocumentEntryToPrint.IsEmpty() then begin
if DocumentEntryToPrint.FindSet() then
repeat
ReturnShipmentHeader.Get(DocumentEntryToPrint."Document No.");
ReturnShipmentHeader.Mark(true);
until DocumentEntryToPrint.Next() = 0;
ReturnShipmentHeader.MarkedOnly(true);
ReturnShipmentHeader.PrintRecords(false);
end;
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeHandlePurchaseLine(var WarehouseShipmentLine: Record "Warehouse Shipment Line"; var PurchLine: Record "Purchase Line"; WhseShptHeader: Record "Warehouse Shipment Header"; var ModifyLine: Boolean; var IsHandled: Boolean; WhsePostParameters: Record "Whse. Post Parameters")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnInitSourceDocumentHeaderOnBeforePurchaseHeaderUpdatePostingDate(var PurchaseHeader: Record "Purchase Header"; var WarehouseShipmentHeader: Record "Warehouse Shipment Header"; var WarehouseShipmentLine: Record "Warehouse Shipment Line"; var ModifyHeader: Boolean; var ValidatePostingDate: Boolean; var IsHandled: Boolean);
begin
end;
[IntegrationEvent(false, false)]
local procedure OnInitSourceDocumentHeaderOnBeforeReopenPurchHeader(var WhseShptLine: Record "Warehouse Shipment Line"; var PurchaseHeader: Record "Purchase Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnHandlePurchLineOnNonWhseLineOnAfterCalcModifyLine(var PurchLine: Record "Purchase Line"; var ModifyLine: Boolean);
begin
end;
[IntegrationEvent(false, false)]
local procedure OnHandlePurchaseLineOnAfterValidateQtytoReceive(var PurchLine: Record "Purchase Line"; var WhseShptLine: Record "Warehouse Shipment Line");
begin
end;
[IntegrationEvent(false, false)]
local procedure OnHandlePurchaseLineOnAfterValidateRetQtytoShip(var PurchLine: Record "Purchase Line"; var WhseShptLine: Record "Warehouse Shipment Line");
begin
end;
[IntegrationEvent(false, false)]
local procedure OnInitSourceDocumentHeaderOnBeforePurchHeaderModify(var PurchaseHeader: Record "Purchase Header"; var WarehouseShipmentHeader: Record "Warehouse Shipment Header"; var ModifyHeader: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterFindWhseShptLineForPurchLine(var WarehouseShipmentLine: Record "Warehouse Shipment Line"; var PurchaseLine: Record "Purchase Line")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnHandlePurchLineOnAfterCalcShouldModifyExpectedReceiptDate(WarehouseShipmentHeader: Record "Warehouse Shipment Header"; var WarehouseShipmentLine: Record "Warehouse Shipment Line"; var PurchaseLine: Record "Purchase Line"; var ShouldModifyExpectedReceiptDate: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforePurchLineModify(var PurchaseLine: Record "Purchase Line"; WarehouseShipmentLine: Record "Warehouse Shipment Line"; var ModifyLine: Boolean; WhsePostParameters: Record "Whse. Post Parameters")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterHandlePurchaseLine(var WhseShipmentLine: Record "Warehouse Shipment Line"; PurchHeader: Record "Purchase Header"; WhsePostParameters: Record "Whse. Post Parameters")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnPostSourceDocumentOnBeforePostPurchHeader(var PurchPost: Codeunit Microsoft.Purchases.Posting."Purch.-Post"; var PurchHeader: Record "Purchase Header"; var WhsePostParameters: Record "Whse. Post Parameters"; WhseShptHeader: Record "Warehouse Shipment Header"; var CounterSourceDocOK: Integer; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnPostSourceDocumentOnBeforePrintPurchReturnShipment(var PurchaseHeader: Record "Purchase Header"; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnPostSourceDocumentOnBeforePrintPurchCreditMemo(var PurchaseHeader: Record "Purchase Header"; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterPurchPost(var WarehouseShipmentLine: Record "Warehouse Shipment Line"; PurchaseHeader: Record "Purchase Header"; WhsePosrParameters: Record "Whse. Post Parameters"; WhseShptHeader: Record "Warehouse Shipment Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforeTryPostSourcePurchDocument(var PurchPost: Codeunit Microsoft.Purchases.Posting."Purch.-Post"; var PurchHeader: Record Microsoft.Purchases.Document."Purchase Header"; var IsHandled: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterTryPostSourcePurchDocument(var CounterSourceDocOK: Integer; var PurchPost: Codeunit Microsoft.Purchases.Posting."Purch.-Post"; var PurchHeader: Record Microsoft.Purchases.Document."Purchase Header"; Result: Boolean)
begin
end;
[IntegrationEvent(false, false)]
local procedure OnAfterPostSourcePurchDocument(var CounterSourceDocOK: Integer; var PurchPost: Codeunit Microsoft.Purchases.Posting."Purch.-Post"; var PurchHeader: Record Microsoft.Purchases.Document."Purchase Header")
begin
end;
[IntegrationEvent(false, false)]
local procedure OnBeforePostSourcePurchDocument(var PurchPost: Codeunit Microsoft.Purchases.Posting."Purch.-Post"; var PurchHeader: Record Microsoft.Purchases.Document."Purchase Header")
begin
end;
}