Why do you need this change?
We need to perform some changes on PostLines, using the AssemblyLine records, before the standard AssemblyLine.FindSet
Describe the request
In procedure PostLines of codeunit 900 "Assembly-Post" we need an event:
[IntegrationEvent(false, false)]
local procedure OnPostLinesOnAfterAssemblyLineSetFilters(AssemblyHeader: Record "Assembly Header"; var AssemblyLine: Record "Assembly Line"; PostedAssemblyHeader: Record "Posted Assembly Header")
begin
end;
Changes between **:
local procedure PostLines(AssemblyHeader: Record "Assembly Header"; var AssemblyLine: Record "Assembly Line"; PostedAssemblyHeader: Record "Posted Assembly Header"; var ItemJnlPostLine: Codeunit "Item Jnl.-Post Line"; var ResJnlPostLine: Codeunit "Res. Jnl.-Post Line"; var WhseJnlRegisterLine: Codeunit "Whse. Jnl.-Register Line")
var
PostedAssemblyLine: Record "Posted Assembly Line";
LineCounter: Integer;
QtyToConsume: Decimal;
QtyToConsumeBase: Decimal;
ItemLedgEntryNo: Integer;
begin
AssemblyLine.Reset();
AssemblyLine.SetRange("Document Type", AssemblyHeader."Document Type");
AssemblyLine.SetRange("Document No.", AssemblyHeader."No.");
SortLines(AssemblyLine);
**OnPostLinesOnAfterAssemblyLineSetFilters(AssemblyHeader, AssemblyLine, PostedAssemblyHeader);**
LineCounter := 0;
if AssemblyLine.FindSet() then
repeat
if (AssemblyLine."No." = '') and
(AssemblyLine.Description <> '') and
(AssemblyLine.Type <> AssemblyLine.Type::" ")
then
Error(Text009, AssemblyLine.FieldCaption(Type), AssemblyLine.Description);
LineCounter := LineCounter + 1;
if ShowProgress then
Window.Update(2, LineCounter);
GetLineQtys(QtyToConsume, QtyToConsumeBase, AssemblyLine);
OnPostLinesOnAfterGetLineQtys(QtyToConsume, QtyToConsumeBase, AssemblyLine);
ItemLedgEntryNo := 0;
if QtyToConsumeBase <> 0 then begin
case AssemblyLine.Type of
AssemblyLine.Type::Item:
ItemLedgEntryNo :=
PostItemConsumption(
AssemblyHeader,
AssemblyLine,
AssemblyHeader."Posting No. Series",
QtyToConsume,
QtyToConsumeBase, ItemJnlPostLine, WhseJnlRegisterLine, AssemblyHeader."Posting No.", false, 0);
AssemblyLine.Type::Resource:
PostResourceConsumption(
AssemblyHeader,
AssemblyLine,
AssemblyHeader."Posting No. Series",
QtyToConsume,
QtyToConsumeBase, ResJnlPostLine, ItemJnlPostLine, AssemblyHeader."Posting No.", false);
end;
// modify the lines
AssemblyLine."Consumed Quantity" := AssemblyLine."Consumed Quantity" + QtyToConsume;
AssemblyLine."Consumed Quantity (Base)" := AssemblyLine."Consumed Quantity (Base)" + QtyToConsumeBase;
//// Update Qty. Pick for location with optional warehouse pick.
UpdateQtyPickedForOptionalWhsePick(AssemblyLine, AssemblyLine."Consumed Quantity");
AssemblyLine.InitRemainingQty();
AssemblyLine.InitQtyToConsume();
OnBeforeAssemblyLineModify(AssemblyLine, QtyToConsumeBase);
AssemblyLine.Modify();
end;
// Insert posted assembly lines
PostedAssemblyLine.Init();
PostedAssemblyLine.TransferFields(AssemblyLine);
PostedAssemblyLine."Document No." := PostedAssemblyHeader."No.";
PostedAssemblyLine.Quantity := QtyToConsume;
PostedAssemblyLine."Quantity (Base)" := QtyToConsumeBase;
PostedAssemblyLine."Cost Amount" := Round(PostedAssemblyLine.Quantity * AssemblyLine."Unit Cost");
PostedAssemblyLine."Order No." := AssemblyLine."Document No.";
PostedAssemblyLine."Order Line No." := AssemblyLine."Line No.";
InsertLineItemEntryRelation(PostedAssemblyLine, ItemJnlPostLine, ItemLedgEntryNo);
OnBeforePostedAssemblyLineInsert(PostedAssemblyLine, AssemblyLine);
PostedAssemblyLine.Insert();
OnAfterPostedAssemblyLineInsert(PostedAssemblyLine, AssemblyLine);
until AssemblyLine.Next() = 0;
end;
Internal work item: AB#637981
Why do you need this change?
We need to perform some changes on PostLines, using the AssemblyLine records, before the standard AssemblyLine.FindSet
Describe the request
In procedure PostLines of codeunit 900 "Assembly-Post" we need an event:
Changes between **:
Internal work item: AB#637981