Table 5812 Item Application Trace, source in 29

Source29

src/Layers/W1/BaseApp/Inventory/Costing/ItemApplicationTrace.Table.al115 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.Inventory.Costing;

using Microsoft.Foundation.Enums;
using Microsoft.Inventory.Ledger;

table 5812 "Item Application Trace"
{
    Caption = 'Item Application Trace';
    TableType = Temporary;

    fields
    {
        field(1; "From Entry No."; Integer)
        {

        }
        field(2; "Entry No."; Integer)
        {

        }
        field(3; Level; Integer)
        {

        }
        field(100; "Item No."; Code[20])
        {

        }
        field(101; "Location Code"; Code[10])
        {

        }
        field(102; "Variant Code"; Code[10])
        {

        }
        field(103; "Posting Date"; Date)
        {

        }
        field(104; Positive; Boolean)
        {

        }
        field(110; "Order Type"; Enum "Inventory Order Type")
        {

        }
        field(111; "Order No."; Code[20])
        {

        }
        field(112; "Order Line No."; Integer)
        {

        }
    }

    keys
    {
        key(PK; "From Entry No.", "Entry No.")
        {
            Clustered = true;
        }
    }

    procedure CreateChain(FromItemLedgerEntry: Record "Item Ledger Entry"; var AppliedItemLedgerEntry: Record "Item Ledger Entry")
    begin
        // parent entry
        Rec.Init();
        Rec."From Entry No." := FromItemLedgerEntry."Entry No.";
        Rec."Entry No." := Rec."From Entry No.";
        Rec.Level := 0;
        Rec."Item No." := FromItemLedgerEntry."Item No.";
        Rec."Location Code" := FromItemLedgerEntry."Location Code";
        Rec."Variant Code" := FromItemLedgerEntry."Variant Code";
        Rec.Positive := FromItemLedgerEntry.Positive;
        Rec."Order Type" := FromItemLedgerEntry."Order Type";
        Rec."Order No." := FromItemLedgerEntry."Order No.";
        Rec."Order Line No." := FromItemLedgerEntry."Order Line No.";
        Rec.Insert();

        // child entries
        if AppliedItemLedgerEntry.FindSet() then
            repeat
                Rec.Init();
                Rec."From Entry No." := FromItemLedgerEntry."Entry No.";
                Rec."Entry No." := AppliedItemLedgerEntry."Entry No.";
                Rec.Level := 1;
                Rec."Item No." := AppliedItemLedgerEntry."Item No.";
                Rec."Location Code" := AppliedItemLedgerEntry."Location Code";
                Rec."Variant Code" := AppliedItemLedgerEntry."Variant Code";
                Rec.Positive := AppliedItemLedgerEntry.Positive;
                Rec."Order Type" := AppliedItemLedgerEntry."Order Type";
                Rec."Order No." := AppliedItemLedgerEntry."Order No.";
                Rec."Order Line No." := AppliedItemLedgerEntry."Order Line No.";
                if Rec.Insert() then;
            until AppliedItemLedgerEntry.Next() = 0;
    end;

    procedure AddChain(FromItemLedgerEntryNo: Integer; var ItemApplicationTrace: Record "Item Application Trace")
    begin
        if ItemApplicationTrace.FindSet() then
            repeat
                Rec := ItemApplicationTrace;
                Rec."From Entry No." := FromItemLedgerEntryNo;
                if Rec.Insert() then;
            until ItemApplicationTrace.Next() = 0;
    end;
}