Page 6526 Package No. Information Card, source in 29

Source29

src/Layers/W1/BaseApp/Inventory/Tracking/PackageNoInformationCard.Page.al221 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.Tracking;

using Microsoft.Foundation.Navigate;
using Microsoft.Inventory.Setup;
using Microsoft.Warehouse.Tracking;

page 6526 "Package No. Information Card"
{
    Caption = 'Package No. Information Card';
    PageType = Card;
    PopulateAllFields = true;
    SourceTable = "Package No. Information";

    layout
    {
        area(content)
        {
            group(General)
            {
                Caption = 'General';
                field("Item No."; Rec."Item No.")
                {
                    ApplicationArea = Basic, Suite;
                }
                field("Variant Code"; Rec."Variant Code")
                {
                    ApplicationArea = Basic, Suite;
                }
                field("Package No."; Rec."Package No.")
                {
                    ApplicationArea = Basic, Suite;
                }
                field(Description; Rec.Description)
                {
                    ApplicationArea = Basic, Suite;
                }
                field("Country/Region Code"; Rec."Country/Region Code")
                {
                    ApplicationArea = Basic, Suite;
                }
                field(Blocked; Rec.Blocked)
                {
                    ApplicationArea = Basic, Suite;
                }
            }
        }
    }

    actions
    {
        area(navigation)
        {
            group("&Package")
            {
                Caption = '&Package';
                action("Item &Tracking Entries")
                {
                    ApplicationArea = Basic, Suite;
                    Caption = 'Item &Tracking Entries';
                    Image = ItemTrackingLedger;
                    ShortCutKey = 'Ctrl+F7';
                    ToolTip = 'View or edit package numbers that are assigned to the item on the document or journal line.';

                    trigger OnAction()
                    var
                        ItemTrackingSetup: Record "Item Tracking Setup";
                        ItemTrackingDocMgt: Codeunit "Item Tracking Doc. Management";
                    begin
                        ItemTrackingSetup."Package No." := Rec."Package No.";
                        ItemTrackingDocMgt.ShowItemTrackingForEntity(0, '', Rec."Item No.", Rec."Variant Code", '', ItemTrackingSetup);
                    end;
                }
                action(Comment)
                {
                    ApplicationArea = Basic, Suite;
                    Caption = 'Comment';
                    Image = ViewComments;
                    RunObject = Page "Item Tracking Comments";
                    RunPageLink = Type = const("Package No."),
                                  "Item No." = field("Item No."),
                                  "Variant Code" = field("Variant Code"),
                                  "Serial/Lot No." = field("Package No.");
                    ToolTip = 'View or add comments for the record.';
                }
                action("&Item Tracing")
                {
                    ApplicationArea = Basic, Suite;
                    Caption = '&Item Tracing';
                    Image = ItemTracing;
                    ToolTip = 'Trace where a package number assigned to the item was used, for example, to find which package a defective component came from or to find all the customers that have received items containing the defective component.';

                    trigger OnAction()
                    var
                        ItemTracingBuffer: Record "Item Tracing Buffer";
                        ItemTracing: Page "Item Tracing";
                    begin
                        Clear(ItemTracing);
                        ItemTracingBuffer.SetRange("Item No.", Rec."Item No.");
                        ItemTracingBuffer.SetRange("Variant Code", Rec."Variant Code");
                        ItemTracingBuffer.SetRange("Package No.", Rec."Package No.");
                        ItemTracing.InitFilters(ItemTracingBuffer);
                        ItemTracing.FindRecords();
                        ItemTracing.RunModal();
                    end;
                }
            }
        }
        area(processing)
        {
            group(ButtonFunctions)
            {
                Caption = 'F&unctions';
                Image = "Action";
                Visible = ButtonFunctionsVisible;
                action("Copy &Info")
                {
                    ApplicationArea = Basic, Suite;
                    Caption = 'Copy &Info';
                    Ellipsis = true;
                    Image = CopySerialNo;
                    ToolTip = 'Copy the information record from the old package number.';

                    trigger OnAction()
                    var
                        SelectedPackageNoInfo: Record "Package No. Information";
                        ShowPackageNoInfo: Record "Package No. Information";
                        FocusOnPackageNoInfo: Record "Package No. Information";
                        PackageInfoMgt: Codeunit "Package Info. Management";
                        PackageNoInfoList: Page "Package No. Information List";
                    begin
                        ShowPackageNoInfo.SetRange("Item No.", Rec."Item No.");
                        ShowPackageNoInfo.SetRange("Variant Code", Rec."Variant Code");

                        FocusOnPackageNoInfo.Copy(ShowPackageNoInfo);
                        FocusOnPackageNoInfo.SetRange("Package No.", TrackingSpecification."Package No.");

                        PackageNoInfoList.SetTableView(ShowPackageNoInfo);

                        if FocusOnPackageNoInfo.FindFirst() then
                            PackageNoInfoList.SetRecord(FocusOnPackageNoInfo);
                        if PackageNoInfoList.RunModal() = ACTION::LookupOK then begin
                            PackageNoInfoList.GetRecord(SelectedPackageNoInfo);
                            PackageInfoMgt.CopyPackageNoInformation(SelectedPackageNoInfo, Rec."Package No.");
                        end;
                    end;
                }
            }
            action(Navigate)
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Find entries...';
                Image = Navigate;
                ToolTip = 'Find entries and documents that exist for the package number on the selected record. (Formerly this action was named Navigate.)';

                trigger OnAction()
                var
                    ItemTrackingSetup: Record "Item Tracking Setup";
                    Navigate: Page Navigate;
                begin
                    ItemTrackingSetup."Package No." := Rec."Package No.";
                    Navigate.SetTracking(ItemTrackingSetup);
                    Navigate.Run();
                end;
            }
        }
        area(Promoted)
        {
            group(Category_Process)
            {
                Caption = 'Process';

                actionref(Navigate_Promoted; Navigate)
                {
                }
            }
        }
    }

    trigger OnOpenPage()
    begin
        SetCaption();
        Rec.SetFilter("Date Filter", '>%1&<=%2', 0D, WorkDate());
        if ShowButtonFunctions then
            ButtonFunctionsVisible := true;
    end;

    var
        ShowButtonFunctions: Boolean;
        ButtonFunctionsVisible: Boolean;
        PageCaptionTxt: Label '%1 No. Information Card', Comment = '%1 - package caption';

    protected var
        TrackingSpecification: Record "Tracking Specification";

    procedure Init(CurrentTrackingSpecification: Record "Tracking Specification")
    begin
        TrackingSpecification := CurrentTrackingSpecification;
        ShowButtonFunctions := true;
    end;

    procedure InitWhse(WhseItemTrackingLine: Record "Whse. Item Tracking Line")
    begin
        TrackingSpecification."Package No." := WhseItemTrackingLine."Package No.";
        ShowButtonFunctions := true;
    end;

    local procedure SetCaption()
    var
        InventorySetup: Record "Inventory Setup";
    begin
        InventorySetup.Get();
        if InventorySetup."Package Caption" <> '' then
            CurrPage.Caption := StrSubstNo(PageCaptionTxt, InventorySetup."Package Caption");
    end;
}