Page 522 View Applied Entries

App
Base Application
Namespace
Microsoft.Inventory.Ledger
Versions
17-28
Source table
32

Procedures, 3Events, 2

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/Inventory/Ledger/ViewAppliedEntries.Page.al651 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.Ledger;

using Microsoft.Finance.Dimension;
using Microsoft.Inventory.Item;
using Microsoft.Inventory.Posting;

page 522 "View Applied Entries"
{
    Caption = 'View Applied Entries';
    DataCaptionExpression = CaptionExpr();
    DeleteAllowed = false;
    InsertAllowed = false;
    ModifyAllowed = true;
    PageType = Worksheet;
    Permissions = TableData "Item Application Entry" = rimd;
    SaveValues = true;
    SourceTable = "Item Ledger Entry";
    SourceTableTemporary = true;

    layout
    {
        area(content)
        {
            repeater(Control2)
            {
                Editable = false;
                ShowCaption = false;
                field("Posting Date"; Rec."Posting Date")
                {
                    ApplicationArea = Basic, Suite;
                }
                field("Entry Type"; Rec."Entry Type")
                {
                    ApplicationArea = Basic, Suite;
                }
                field("Document Type"; Rec."Document Type")
                {
                    ApplicationArea = Basic, Suite;
                }
                field("Document No."; Rec."Document No.")
                {
                    ApplicationArea = Basic, Suite;
                }
                field("Document Line No."; Rec."Document Line No.")
                {
                    ApplicationArea = Basic, Suite;
                    Visible = false;
                }
                field("Item No."; Rec."Item No.")
                {
                    ApplicationArea = Basic, Suite;
                    Visible = false;
                }
                field("Variant Code"; Rec."Variant Code")
                {
                    ApplicationArea = Planning;
                    Visible = false;
                }
                field("Serial No."; Rec."Serial No.")
                {
                    ApplicationArea = ItemTracking;
                    Visible = false;
                }
                field("Lot No."; Rec."Lot No.")
                {
                    ApplicationArea = ItemTracking;
                    Visible = false;
                }
                field(Description; Rec.Description)
                {
                    ApplicationArea = Basic, Suite;
                    Visible = false;
                }
                field("Global Dimension 1 Code"; Rec."Global Dimension 1 Code")
                {
                    ApplicationArea = Dimensions;
                    Visible = false;
                }
                field("Global Dimension 2 Code"; Rec."Global Dimension 2 Code")
                {
                    ApplicationArea = Dimensions;
                    Visible = false;
                }
                field("Location Code"; Rec."Location Code")
                {
                    ApplicationArea = Location;
                    Visible = false;
                }
                field(ApplQty; ApplQty)
                {
                    ApplicationArea = Basic, Suite;
                    AutoFormatType = 0;
                    Caption = 'Applied Quantity';
                    DecimalPlaces = 0 : 5;
                    ToolTip = 'Specifies the quantity of the item ledger entry linked to an inventory decrease, or increase, as appropriate.';
                }
                field(Qty; Qty)
                {
                    ApplicationArea = Basic, Suite;
                    AutoFormatType = 0;
                    Caption = 'Quantity';
                    DecimalPlaces = 0 : 5;
                    ToolTip = 'Specifies the quantity of the item ledger entry.';
                }
                field("Cost Amount (Actual)"; Rec."Cost Amount (Actual)")
                {
                    ApplicationArea = Basic, Suite;
                    ToolTip = 'Specifies the adjusted cost, in LCY, of the quantity posting.';
                }
                field(GetUnitCostLCY; Rec.GetUnitCostLCY())
                {
                    ApplicationArea = Basic, Suite;
                    AutoFormatType = 2;
                    AutoFormatExpression = '';
                    Caption = 'Unit Cost(LCY)';
                    ToolTip = 'Specifies the unit cost of the item in the item ledger entry.';
                    Visible = false;
                }
                field("Invoiced Quantity"; Rec."Invoiced Quantity")
                {
                    ApplicationArea = Basic, Suite;
                    Visible = true;
                }
                field("Reserved Quantity"; Rec."Reserved Quantity")
                {
                    ApplicationArea = Reservation;
                }
                field("Remaining Quantity"; Rec."Remaining Quantity")
                {
                    ApplicationArea = Basic, Suite;
                    Visible = true;
                }
                field("CostAvailable(Rec)"; CostAvailable(Rec))
                {
                    ApplicationArea = Basic, Suite;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'Quantity Available for Cost Applications';
                    DecimalPlaces = 0 : 5;
                    ToolTip = 'Specifies the quantity of the item ledger entry that can be cost applied.';
                }
                field("QuantityAvailable(Rec)"; QuantityAvailable(Rec))
                {
                    ApplicationArea = Basic, Suite;
                    AutoFormatType = 0;
                    Caption = 'Available for Quantity Application';
                    DecimalPlaces = 0 : 5;
                    ToolTip = 'Specifies the quantity of the item ledger entry that can be applied.';
                }
                field("Shipped Qty. Not Returned"; Rec."Shipped Qty. Not Returned")
                {
                    ApplicationArea = Basic, Suite;
                }
                field(Open; Rec.Open)
                {
                    ApplicationArea = Basic, Suite;
                }
                field("Qty. per Unit of Measure"; Rec."Qty. per Unit of Measure")
                {
                    ApplicationArea = Suite;
                    Visible = false;
                }
                field("Drop Shipment"; Rec."Drop Shipment")
                {
                    ApplicationArea = Basic, Suite;
                    Visible = false;
                }
                field("Applies-to Entry"; Rec."Applies-to Entry")
                {
                    ApplicationArea = Basic, Suite;
                    Visible = false;
                }
                field("Applied Entry to Adjust"; Rec."Applied Entry to Adjust")
                {
                    ApplicationArea = Basic, Suite;
                    Visible = false;
                }
                field("Order Type"; Rec."Order Type")
                {
                    ApplicationArea = Basic, Suite;
                }
                field("Order No."; Rec."Order No.")
                {
                    ApplicationArea = Basic, Suite;
                    Visible = false;
                }
                field("Entry No."; Rec."Entry No.")
                {
                    ApplicationArea = Basic, Suite;
                }
            }
        }
    }

    actions
    {
        area(navigation)
        {
            group("Ent&ry")
            {
                Caption = 'Ent&ry';
                Image = Entry;
                action(Dimensions)
                {
                    AccessByPermission = TableData Dimension = R;
                    ApplicationArea = Dimensions;
                    Caption = 'Dimensions';
                    Image = Dimensions;
                    ShortCutKey = 'Alt+D';
                    ToolTip = 'View or edit dimensions, such as area, project, or department, that you can assign to sales and purchase documents to distribute costs and analyze transaction history.';

                    trigger OnAction()
                    begin
                        Rec.ShowDimensions();
                    end;
                }
                action("&Value Entries")
                {
                    ApplicationArea = Basic, Suite;
                    Caption = '&Value Entries';
                    Image = ValueLedger;
                    RunObject = Page "Value Entries";
                    RunPageLink = "Item Ledger Entry No." = field("Entry No.");
                    RunPageView = sorting("Item Ledger Entry No.");
                    ShortCutKey = 'Ctrl+F7';
                    ToolTip = 'View the history of posted amounts that affect the value of the item. Value entries are created for every transaction with the item.';
                }
                action("Reservation Entries")
                {
                    AccessByPermission = TableData Item = R;
                    ApplicationArea = Reservation;
                    Caption = 'Reservation Entries';
                    Image = ReservationLedger;
                    ToolTip = 'View the entries for every reservation that is made, either manually or automatically.';

                    trigger OnAction()
                    begin
                        Rec.ShowReservationEntries(true);
                    end;
                }
            }
        }
        area(processing)
        {
            action(RemoveAppButton)
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Re&move Application';
                Image = Cancel;
                ToolTip = 'Remove item applications.';
                Visible = RemoveAppButtonVisible;

                trigger OnAction()
                begin
                    UnapplyRec();
                end;
            }
        }
        area(Promoted)
        {
            group(Category_Process)
            {
                Caption = 'Process';

                actionref(RemoveAppButton_Promoted; RemoveAppButton)
                {
                }
            }
            group(Category_Entry)
            {
                Caption = 'Entry';

                actionref("Reservation Entries_Promoted"; "Reservation Entries")
                {
                }
                actionref(Dimensions_Promoted; Dimensions)
                {
                }
                actionref("&Value Entries_Promoted"; "&Value Entries")
                {
                }
            }
        }
    }

    trigger OnAfterGetRecord()
    begin
        GetApplQty();
    end;

    trigger OnFindRecord(Which: Text): Boolean
    begin
        exit(Rec.Find(Which));
    end;

    trigger OnInit()
    begin
        RemoveAppButtonVisible := true;
    end;

    trigger OnOpenPage()
    begin
        CurrPage.LookupMode := not ShowApplied;
        RemoveAppButtonVisible := ShowApplied;
        Show();
    end;

    var
        ItemLedgerEntryToShow: Record "Item Ledger Entry";
        TempItemLedgerEntry: Record "Item Ledger Entry" temporary;
        ItemJnlPostLine: Codeunit "Item Jnl.-Post Line";
        ShowApplied: Boolean;
        ShowQuantity: Boolean;
        RemoveAppButtonVisible: Boolean;
        MaxToApply: Decimal;
        ApplQty: Decimal;
        Qty: Decimal;
        TotalApplied: Decimal;
        AppliedEntriesLbl: Label 'Applied Entries';
        UnappliedEntriesLbl: Label 'Unapplied Entries';

    procedure SetRecordToShow(var RecordToSet: Record "Item Ledger Entry"; var ApplyCodeunit: Codeunit "Item Jnl.-Post Line"; NewShowApplied: Boolean)
    begin
        ItemLedgerEntryToShow.Copy(RecordToSet);
        ItemJnlPostLine := ApplyCodeunit;
        ShowApplied := NewShowApplied;
    end;

    local procedure Show()
    var
        ItemLedgerEntry: Record "Item Ledger Entry";
        ItemApplicationEntry: Record "Item Application Entry";
    begin
        ItemLedgerEntry.Get(ItemLedgerEntryToShow."Entry No.");
        ShowQuantity := not ((ItemLedgerEntry."Entry Type" in [ItemLedgerEntry."Entry Type"::Sale, ItemLedgerEntry."Entry Type"::Consumption, ItemLedgerEntry."Entry Type"::Output]) and ItemLedgerEntry.Positive);

        MaxToApply := 0;
        if not ShowQuantity then
            MaxToApply := ItemLedgerEntry.Quantity + ItemApplicationEntry.Returned(ItemLedgerEntry."Entry No.");
        SetMyView(ItemLedgerEntryToShow, ShowApplied, ShowQuantity, MaxToApply);
    end;

    local procedure SetMyView(ItemLedgerEntry: Record "Item Ledger Entry"; ShowApplied2: Boolean; ShowQuantity2: Boolean; MaxToApply2: Decimal)
    begin
        InitView();
        case ShowQuantity2 of
            true:
                case ShowApplied2 of
                    true:
                        ShowQuantityApplied(ItemLedgerEntry);
                    false:
                        begin
                            ShowQuantityOpen(ItemLedgerEntry);
                            ShowCostOpen(ItemLedgerEntry, MaxToApply2);
                        end;
                end;
            false:
                case ShowApplied2 of
                    true:
                        ShowCostApplied(ItemLedgerEntry);
                    false:
                        ShowCostOpen(ItemLedgerEntry, MaxToApply2);
                end;
        end;

        if TempItemLedgerEntry.FindSet() then
            repeat
                Rec := TempItemLedgerEntry;
                Rec.Insert();
            until TempItemLedgerEntry.Next() = 0;
    end;

    local procedure InitView()
    begin
        Rec.DeleteAll();

        TempItemLedgerEntry.Reset();
        TempItemLedgerEntry.DeleteAll();
    end;

    local procedure ShowQuantityApplied(ItemLedgerEntry: Record "Item Ledger Entry")
    var
        ItemApplicationEntry: Record "Item Application Entry";
    begin
        InitApplied();

        if ItemLedgerEntry.Positive then begin
            ItemApplicationEntry.SetRange("Inbound Item Entry No.", ItemLedgerEntry."Entry No.");
            ItemApplicationEntry.SetFilter("Outbound Item Entry No.", '<>%1&<>%2', ItemLedgerEntry."Entry No.", 0);
            ItemApplicationEntry.SetLoadFields("Outbound Item Entry No.", Quantity);
            if ItemApplicationEntry.FindSet() then
                repeat
                    InsertTempEntry(ItemApplicationEntry."Outbound Item Entry No.", ItemApplicationEntry.Quantity, true);
                until ItemApplicationEntry.Next() = 0;
        end else begin
            ItemApplicationEntry.SetRange("Outbound Item Entry No.", ItemLedgerEntry."Entry No.");
            ItemApplicationEntry.SetRange("Item Ledger Entry No.", ItemLedgerEntry."Entry No.");
            ItemApplicationEntry.SetLoadFields("Inbound Item Entry No.", Quantity);
            if ItemApplicationEntry.FindSet() then
                repeat
                    InsertTempEntry(ItemApplicationEntry."Inbound Item Entry No.", -ItemApplicationEntry.Quantity, true);
                until ItemApplicationEntry.Next() = 0;
        end;
    end;

    local procedure ShowQuantityOpen(ItemLedgerEntry: Record "Item Ledger Entry")
    var
        ItemApplicationEntry: Record "Item Application Entry";
        ItemLedgerEntry2: Record "Item Ledger Entry";
    begin
        if ItemLedgerEntry."Remaining Quantity" = 0 then
            exit;

        ItemLedgerEntry2.SetRange("Item No.", ItemLedgerEntry."Item No.");
        ItemLedgerEntry2.SetRange("Location Code", ItemLedgerEntry."Location Code");
        ItemLedgerEntry2.SetRange(Positive, not ItemLedgerEntry.Positive);
        ItemLedgerEntry2.SetRange(Open, true);
        ItemLedgerEntry2.SetAutoCalcFields("Reserved Quantity");
        ItemLedgerEntry2.SetLoadFields("Remaining Quantity", "Reserved Quantity");
        if ItemLedgerEntry2.FindSet() then
            repeat
                if ItemLedgerEntry2."Remaining Quantity" - ItemLedgerEntry2."Reserved Quantity" <> 0 then
                    if not ItemApplicationEntry.ExistsBetween(ItemLedgerEntry."Entry No.", ItemLedgerEntry2."Entry No.") then
                        InsertTempEntry(ItemLedgerEntry2."Entry No.", 0, true);
            until ItemLedgerEntry2.Next() = 0;
    end;

    local procedure ShowCostApplied(ItemLedgerEntry: Record "Item Ledger Entry")
    var
        ItemApplicationEntry: Record "Item Application Entry";
    begin
        InitApplied();

        if ItemLedgerEntry.Positive then begin
            ItemApplicationEntry.SetRange("Inbound Item Entry No.", ItemLedgerEntry."Entry No.");
            ItemApplicationEntry.SetFilter("Item Ledger Entry No.", '<>%1', ItemLedgerEntry."Entry No.");
            ItemApplicationEntry.SetFilter("Outbound Item Entry No.", '<>%1', 0);
            ItemApplicationEntry.SetRange("Cost Application", true);
            ItemApplicationEntry.SetLoadFields("Outbound Item Entry No.", Quantity);
            // Show even average cost application
            if ItemApplicationEntry.FindSet() then
                repeat
                    InsertTempEntry(ItemApplicationEntry."Outbound Item Entry No.", ItemApplicationEntry.Quantity, false);
                until ItemApplicationEntry.Next() = 0;
        end else begin
            ItemApplicationEntry.SetRange("Outbound Item Entry No.", ItemLedgerEntry."Entry No.");
            ItemApplicationEntry.SetFilter("Item Ledger Entry No.", '<>%1', ItemLedgerEntry."Entry No.");
            ItemApplicationEntry.SetRange("Cost Application", true);
            ItemApplicationEntry.SetLoadFields("Inbound Item Entry No.", Quantity);
            // Show even average cost application
            if ItemApplicationEntry.FindSet() then
                repeat
                    InsertTempEntry(ItemApplicationEntry."Inbound Item Entry No.", -ItemApplicationEntry.Quantity, false);
                until ItemApplicationEntry.Next() = 0;
        end;
    end;

    local procedure ShowCostOpen(ItemLedgerEntry: Record "Item Ledger Entry"; MaxToApply2: Decimal)
    var
        ItemApplicationEntry: Record "Item Application Entry";
        ItemLedgerEntry2: Record "Item Ledger Entry";
    begin
        ItemLedgerEntry2.SetRange("Item No.", ItemLedgerEntry."Item No.");
        ItemLedgerEntry2.SetRange("Location Code", ItemLedgerEntry."Location Code");
        ItemLedgerEntry2.SetRange(Positive, not ItemLedgerEntry.Positive);
        ItemLedgerEntry2.SetFilter("Shipped Qty. Not Returned", '<%1&>=%2', 0, -MaxToApply2);
        if (MaxToApply2 <> 0) and ItemLedgerEntry.Positive then
            ItemLedgerEntry2.SetFilter("Shipped Qty. Not Returned", '<=%1', -MaxToApply2);
        ItemLedgerEntry2.SetLoadFields("Shipped Qty. Not Returned", "Remaining Quantity");
        if ItemLedgerEntry2.FindSet() then
            repeat
                if CostAvailable(ItemLedgerEntry2) <> 0 then
                    if not ItemApplicationEntry.ExistsBetween(ItemLedgerEntry."Entry No.", ItemLedgerEntry2."Entry No.") then
                        InsertTempEntry(ItemLedgerEntry2."Entry No.", 0, true);
            until ItemLedgerEntry2.Next() = 0;
    end;

    local procedure InsertTempEntry(EntryNo: Integer; AppliedQty: Decimal; ShowQuantity2: Boolean)
    var
        ItemLedgerEntry: Record "Item Ledger Entry";
        IsHandled: Boolean;
    begin
        ItemLedgerEntry.Get(EntryNo);

        IsHandled := false;
        OnBeforeInsertTempEntry(ItemLedgerEntry, AppliedQty, ShowQuantity2, TotalApplied, TempItemLedgerEntry, IsHandled);
        if IsHandled then
            exit;

        if ShowQuantity2 then
            if AppliedQty * ItemLedgerEntry.Quantity < 0 then
                exit;

        if not TempItemLedgerEntry.Get(EntryNo) then begin
            TempItemLedgerEntry.Reset();
            TempItemLedgerEntry := ItemLedgerEntry;
            TempItemLedgerEntry.CalcFields("Reserved Quantity");
            TempItemLedgerEntry.Quantity := AppliedQty;
            TempItemLedgerEntry.Insert();
        end else begin
            TempItemLedgerEntry.Quantity := TempItemLedgerEntry.Quantity + AppliedQty;
            TempItemLedgerEntry.Modify();
        end;

        TotalApplied := TotalApplied + AppliedQty;
    end;

    local procedure InitApplied()
    begin
        Clear(TotalApplied);
    end;

    local procedure RemoveApplications(Inbound: Integer; OutBound: Integer)
    var
        ItemApplicationEntry: Record "Item Application Entry";
    begin
        ItemApplicationEntry.SetCurrentKey("Inbound Item Entry No.", "Outbound Item Entry No.");
        ItemApplicationEntry.SetRange("Inbound Item Entry No.", Inbound);
        ItemApplicationEntry.SetRange("Outbound Item Entry No.", OutBound);
        if ItemApplicationEntry.FindSet() then
            repeat
                ItemJnlPostLine.UnApply(ItemApplicationEntry);
                ItemJnlPostLine.LogUnapply(ItemApplicationEntry);
            until ItemApplicationEntry.Next() = 0;
    end;

    local procedure UnapplyRec()
    var
        ItemLedgerEntryToApply: Record "Item Ledger Entry";
        AppliedItemLedgerEntry: Record "Item Ledger Entry";
    begin
        ItemLedgerEntryToApply.Get(ItemLedgerEntryToShow."Entry No.");
        CurrPage.SetSelectionFilter(TempItemLedgerEntry);
        if TempItemLedgerEntry.FindSet() then begin
            repeat
                AppliedItemLedgerEntry.Get(TempItemLedgerEntry."Entry No.");
                if AppliedItemLedgerEntry."Entry No." <> 0 then
                    if ItemLedgerEntryToApply.Positive then
                        RemoveApplications(ItemLedgerEntryToApply."Entry No.", AppliedItemLedgerEntry."Entry No.")
                    else
                        RemoveApplications(AppliedItemLedgerEntry."Entry No.", ItemLedgerEntryToApply."Entry No.");
            until TempItemLedgerEntry.Next() = 0;

            BlockItem(ItemLedgerEntryToApply."Item No.");
        end;

        Show();
    end;

    procedure ApplyRec()
    var
        ItemLedgerEntryToApply: Record "Item Ledger Entry";
        AppliedItemLedgerEntry: Record "Item Ledger Entry";
    begin
        ItemLedgerEntryToApply.Get(ItemLedgerEntryToShow."Entry No.");
        CurrPage.SetSelectionFilter(TempItemLedgerEntry);
        if TempItemLedgerEntry.FindSet() then
            repeat
                AppliedItemLedgerEntry.Get(TempItemLedgerEntry."Entry No.");
                if AppliedItemLedgerEntry."Entry No." <> 0 then begin
                    ItemJnlPostLine.ReApply(ItemLedgerEntryToApply, AppliedItemLedgerEntry."Entry No.");
                    ItemJnlPostLine.LogApply(ItemLedgerEntryToApply, AppliedItemLedgerEntry);
                end;
            until TempItemLedgerEntry.Next() = 0;

        if ItemLedgerEntryToApply.Positive then
            RemoveDuplicateApplication(ItemLedgerEntryToApply."Entry No.");

        Show();
    end;

    local procedure RemoveDuplicateApplication(ItemLedgerEntryNo: Integer)
    var
        ItemApplicationEntry: Record "Item Application Entry";
    begin
        ItemApplicationEntry.SetRange("Inbound Item Entry No.", ItemLedgerEntryNo);
        ItemApplicationEntry.SetRange("Item Ledger Entry No.", ItemLedgerEntryNo);
        ItemApplicationEntry.SetFilter("Outbound Item Entry No.", '<>0');
        if not ItemApplicationEntry.IsEmpty() then begin
            ItemApplicationEntry.SetRange("Outbound Item Entry No.", 0);
            ItemApplicationEntry.DeleteAll();
        end
    end;

    local procedure BlockItem(ItemNo: Code[20])
    var
        Item: Record Item;
        IsHandled: Boolean;
    begin
        IsHandled := false;
        OnBeforeBlockItem(ItemNo, IsHandled);
        if IsHandled then
            exit;

        Item.Get(ItemNo);
        if Item."Application Wksh. User ID" <> UpperCase(UserId) then
            Item.CheckBlockedByApplWorksheet();

        Item."Application Wksh. User ID" := CopyStr(UserId(), 1, MaxStrLen(Item."Application Wksh. User ID"));
        Item.Modify(true);
    end;

    local procedure GetApplQty()
    var
        ItemLedgerEntry: Record "Item Ledger Entry";
    begin
        ItemLedgerEntry.Get(Rec."Entry No.");
        ApplQty := Rec.Quantity;
        Qty := ItemLedgerEntry.Quantity;
    end;

    local procedure QuantityAvailable(ItemLedgerEntry: Record "Item Ledger Entry"): Decimal
    begin
        ItemLedgerEntry.CalcFields("Reserved Quantity");
        exit(ItemLedgerEntry."Remaining Quantity" - ItemLedgerEntry."Reserved Quantity");
    end;

    local procedure CostAvailable(ItemLedgerEntry: Record "Item Ledger Entry"): Decimal
    var
        ItemApplicationEntry: Record "Item Application Entry";
    begin
        if ItemLedgerEntry."Shipped Qty. Not Returned" <> 0 then
            exit(-ItemLedgerEntry."Shipped Qty. Not Returned");

        exit(ItemLedgerEntry."Remaining Quantity" + ItemApplicationEntry.Returned(ItemLedgerEntry."Entry No."));
    end;

    procedure CaptionExpr(): Text
    begin
        if ShowApplied then
            exit(AppliedEntriesLbl);

        exit(UnappliedEntriesLbl);
    end;

    [IntegrationEvent(false, false)]
    local procedure OnBeforeBlockItem(ItemNo: Code[20]; var IsHandled: Boolean)
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnBeforeInsertTempEntry(ItemLedgEntry: Record "Item Ledger Entry"; AppliedQty: Decimal; ShowQuantity: Boolean; var TotalApplied: Decimal; var TempItemLedgEntry: Record "Item Ledger Entry" temporary; var IsHandled: Boolean)
    begin
    end;
}