Codeunit 932 Asm. Whse. Activity Post, source in 29

Source29

src/Layers/W1/BaseApp/Assembly/Warehouse/Activity/AsmWhseActivityPost.Codeunit.al42 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.Activity;

using Microsoft.Assembly.Document;
using Microsoft.Sales.Document;
using Microsoft.Warehouse.Journal;

codeunit 932 "Asm. Whse. Activity Post"
{
    [EventSubscriber(ObjectType::Codeunit, Codeunit::"Whse.-Activity-Post", 'OnInitSourceDocumentOnBeforeSalesLineLoopIteration', '', false, false)]
    local procedure OnInitSourceDocumentOnBeforeSalesLineLoopIteration(SalesHeader: Record "Sales Header"; var SalesLine: Record "Sales Line"; WarehouseActivityHeader: Record "Warehouse Activity Header"; var IsHandled: Boolean)
    var
        WMSManagement: Codeunit "WMS Management";
    begin
        SalesLine.SetSkipUpdateQtyToAsm(false);
        if WarehouseActivityHeader.Type = WarehouseActivityHeader.Type::"Invt. Pick" then
            if WarehouseActivityHeader."Source Document" = WarehouseActivityHeader."Source Document"::"Sales Order" then
                if WMSManagement.ATOInvtPickExists(SalesLine) then
                    SalesLine.SetSkipUpdateQtyToAsm(true);
    end;

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"Whse.-Activity-Post", 'OnBeforeModifySalesLine', '', false, false)]
    local procedure OnBeforeModifySalesLine(var SalesLine: Record "Sales Line")
    begin
        SalesLine.SetSkipUpdateQtyToAsm(false);
    end;

    [EventSubscriber(ObjectType::Codeunit, Codeunit::"Whse.-Activity-Post", 'OnUpdateSourceDocumentOnBeforeSalesLineModify', '', false, false)]
    local procedure OnUpdateSourceDocumentOnBeforeSalesLineModify(WarehouseActivityLine: Record "Warehouse Activity Line")
    var
        ATOLink: Record "Assemble-to-Order Link";
    begin
        if WarehouseActivityLine."Assemble to Order" then begin
            ATOLink.UpdateQtyToAsmFromInvtPickLine(WarehouseActivityLine);
            ATOLink.UpdateAsmBinCodeFromInvtPickLine(WarehouseActivityLine);
        end;
    end;
}