Report 7321 Inventory Movement

App
Base Application
Namespace
Microsoft.Warehouse.Reports
Versions
17-28

Procedures, 1Events, 1

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/Warehouse/Reports/InventoryMovement.Report.al269 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.Reports;

using Microsoft.Inventory.Journal;

report 7321 "Inventory Movement"
{
    Caption = 'Inventory Movement';
    WordMergeDataItem = "Item Journal Batch";
    DefaultRenderingLayout = RDLCLayout;

    dataset
    {
        dataitem("Item Journal Batch"; "Item Journal Batch")
        {
            DataItemTableView = sorting("Journal Template Name", Name);
            RequestFilterFields = "Journal Template Name", Name;
            column(JournalTempName_ItemJournalBatch; "Journal Template Name")
            {
            }
            column(Name_ItemJournalBatch; Name)
            {
            }
            column(InventoryMovementCaption; InventoryMovementCaptionLbl)
            {
            }
            column(PageCaption; PageCaptionLbl)
            {
            }
            column(JournalTempNameFieldCaption; "Item Journal Line".FieldCaption("Journal Template Name"))
            {
            }
            column(JournalBatchNameFieldCaption; "Item Journal Line".FieldCaption("Journal Batch Name"))
            {
            }
            column(CompanyName; COMPANYPROPERTY.DisplayName())
            {
            }
            column(TodayFormatted; Format(Today, 0, 4))
            {
            }
            column(Time; Time)
            {
            }
            dataitem("Item Journal Line"; "Item Journal Line")
            {
                DataItemLink = "Journal Template Name" = field("Journal Template Name"), "Journal Batch Name" = field(Name);
                RequestFilterFields = "Journal Template Name", "Journal Batch Name", "Location Code", "Bin Code", "Item No.", "Variant Code";
                column(JournalTempName_ItemJournalLine; "Journal Template Name")
                {
                }
                column(JournalBatchName_ItemJournalLine; "Journal Batch Name")
                {
                }
                column(ActivityType; ActivityType)
                {
                    OptionCaption = ' ,Put-away,Pick,Movement';
                }
                column(ItemJnlLineActTypeShowOutput; ActivityType <> ActivityType::" ")
                {
                }
                column(ItemJournalLineTableCaption; TableCaption + ': ' + ItemJnlLineFilter)
                {
                }
                column(ItemJnlLineFilter; ItemJnlLineFilter)
                {
                }
                column(ItemJnlLineHeader1ShowOutput; ShouldShowOutput(ItemJnlTemplate.Type))
                {
                }
                column(ItemJnlLineHeader2ShowOutput; ItemJnlTemplate.Type = ItemJnlTemplate.Type::Transfer)
                {
                }
                column(UOM_ItemJournalLine; "Unit of Measure Code")
                {
                }
                column(Qty_ItemJournalLine; Quantity)
                {
                }
                column(BinCode_ItemJournalLine; "Bin Code")
                {
                }
                column(LocationCode_ItemJournalLine; "Location Code")
                {
                }
                column(VariantCode_ItemJournalLine; "Variant Code")
                {
                }
                column(Description_ItemJournalLine; Description)
                {
                }
                column(ItemNo_ItemJournalLine; "Item No.")
                {
                }
                column(PostingDate_ItemJournalLine; Format("Posting Date"))
                {
                }
                column(EntryType_ItemJournalLine; "Entry Type")
                {
                }
                column(QuantityBase_ItemJournalLine; "Quantity (Base)")
                {
                }
                column(QuantityFormat; Quantity)
                {
                }
                column(NewBinCode_ItemJournalLine; "New Bin Code")
                {
                }
                column(NewLocationCode_ItemJournalLine; "New Location Code")
                {
                }
                column(QuantityBaseFormat; "Quantity (Base)")
                {
                }
                column(ActivityTypeCaption; ActivityTypeCaptionLbl)
                {
                }
                column(UOMFieldCaption; FieldCaption("Unit of Measure Code"))
                {
                }
                column(QtyFieldCaption; FieldCaption(Quantity))
                {
                }
                column(BinCodeFieldCaption; FieldCaption("Bin Code"))
                {
                }
                column(LocationCodeFieldCaption; FieldCaption("Location Code"))
                {
                }
                column(VariantCodeFieldCaption; FieldCaption("Variant Code"))
                {
                }
                column(DescriptionFieldCaption; FieldCaption(Description))
                {
                }
                column(ItemNoFieldCaption; FieldCaption("Item No."))
                {
                }
                column(PostingDateCaption; PostingDateCaptionLbl)
                {
                }
                column(EntryTypeFieldCaption; FieldCaption("Entry Type"))
                {
                }
                column(QuantityBaseFieldCaption; FieldCaption("Quantity (Base)"))
                {
                }
                column(NewBinCodeFieldCaption; FieldCaption("New Bin Code"))
                {
                }
                column(NewLocationCodeFieldCaption; FieldCaption("New Location Code"))
                {
                }

                trigger OnAfterGetRecord()
                begin
                    if ("Entry Type" in ["Entry Type"::"Positive Adjmt.", "Entry Type"::Purchase, "Entry Type"::Output]) and
                       (Quantity > 0) and
                       (ActivityType in [ActivityType::Pick, ActivityType::Movement])
                    then
                        CurrReport.Skip();

                    if ("Entry Type" in ["Entry Type"::"Negative Adjmt.", "Entry Type"::Sale, "Entry Type"::Consumption]) and
                       (Quantity < 0) and
                       (ActivityType in [ActivityType::Pick, ActivityType::Movement])
                    then
                        CurrReport.Skip();

                    if ("Entry Type" in ["Entry Type"::"Positive Adjmt.", "Entry Type"::Purchase, "Entry Type"::Output]) and
                       (Quantity < 0) and
                       (ActivityType in [ActivityType::"Put-away", ActivityType::Movement])
                    then
                        CurrReport.Skip();

                    if ("Entry Type" in ["Entry Type"::"Negative Adjmt.", "Entry Type"::Sale, "Entry Type"::Consumption]) and
                       (Quantity > 0) and
                       (ActivityType in [ActivityType::"Put-away", ActivityType::Movement])
                    then
                        CurrReport.Skip();

                    if ("Entry Type" <> "Entry Type"::Transfer) and
                       (ActivityType = ActivityType::Movement)
                    then
                        CurrReport.Skip();
                end;

                trigger OnPreDataItem()
                begin
                    ItemJnlTemplate.Get("Item Journal Batch"."Journal Template Name");
                end;
            }
        }
    }

    requestpage
    {
        SaveValues = true;

        layout
        {
            area(content)
            {
                group(Options)
                {
                    Caption = 'Options';
                    field(ActivityType; ActivityType)
                    {
                        ApplicationArea = Warehouse;
                        Caption = 'Activity Type';
                        OptionCaption = ' ,Put-away,Pick,Movement';
                        ToolTip = 'Specifies the inventory movement activity that a warehouse employee will follow to move items.';
                    }
                }
            }
        }

        actions
        {
        }
    }

    rendering
    {
        layout(RDLCLayout)
        {
            Type = RDLC;
            LayoutFile = './Warehouse/Reports/InventoryMovement.rdlc';
            Summary = 'Report layout made in the legacy RDLC format. Use an RDLC editor to modify the layout.';
        }
    }

    labels
    {
    }

    trigger OnPreReport()
    begin
        ItemJnlLineFilter := "Item Journal Line".GetFilters();
    end;

    var
        ItemJnlTemplate: Record "Item Journal Template";
        ItemJnlLineFilter: Text;
        ActivityType: Option " ","Put-away",Pick,Movement;
        InventoryMovementCaptionLbl: Label 'Inventory Movement';
        PageCaptionLbl: Label 'Page';
        ActivityTypeCaptionLbl: Label 'Activity Type';
        PostingDateCaptionLbl: Label 'Posting Date';

    procedure InitializeRequest(NewActivityType: Option)
    begin
        ActivityType := NewActivityType;
    end;

    local procedure ShouldShowOutput(TemplateType: Enum "Item Journal Template Type") Result: Boolean
    begin
        OnShouldShowOutput(TemplateType, Result);
    end;

    [InternalEvent(false)]
    local procedure OnShouldShowOutput(TemplateType: Enum "Item Journal Template Type"; var Result: Boolean)
    begin
    end;
}