Page 240 Business Unit List

App
Base Application
Namespace
Microsoft.Finance.Consolidation
Versions
17-28
Source table
220

Procedures, 1

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/Finance/Consolidation/BusinessUnitList.Page.al312 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.Finance.Consolidation;

using Microsoft.Finance.Currency;
using System.Environment;
using System.Text;

/// <summary>
/// Displays a list of all business units configured for consolidation with management and consolidation actions.
/// Provides overview of business unit consolidation status and quick access to consolidation operations.
/// </summary>
/// <remarks>
/// Central list page for business unit management supporting batch operations like consolidation execution,
/// access management, and business unit configuration. Integrates with consolidation workflow and validation.
/// </remarks>
page 240 "Business Unit List"
{
    AdditionalSearchTerms = 'department,consolidation';
    ApplicationArea = Suite;
    Caption = 'Business Units';
    CardPageID = "Business Unit Card";
    Editable = false;
    PageType = List;
    SourceTable = "Business Unit";
    UsageCategory = Lists;

    layout
    {
        area(content)
        {
            repeater(Control1)
            {
                ShowCaption = false;
                field("Code"; Rec.Code)
                {
                    ApplicationArea = Suite;
                    ToolTip = 'Specifies the identifier for the business unit in the consolidated company.';
                }
                field("Company Name"; CompanyName)
                {
                    ApplicationArea = Suite;
                    Caption = 'Company Name';
                    ToolTip = 'Specifies the company that will become a business unit in the consolidated company.';
                }
                field(Name; Rec.Name)
                {
                    ApplicationArea = Suite;
                    Visible = false;
                }
                field("Currency Code"; Rec."Currency Code")
                {
                    ApplicationArea = Suite;
                    LookupPageID = Currencies;
                }
                field("Currency Exchange Rate Table"; Rec."Currency Exchange Rate Table")
                {
                    ApplicationArea = Suite;
                    Visible = false;
                }
                field("Data Source"; Rec."Data Source")
                {
                    ApplicationArea = Suite;
                    Visible = false;
                }
                field(Consolidate; Rec.Consolidate)
                {
                    ApplicationArea = Suite;
                }
                field("Consolidation %"; Rec."Consolidation %")
                {
                    ApplicationArea = Suite;
                    Editable = true;
                }
                field("Exch. Rate Gains Acc."; Rec."Exch. Rate Gains Acc.")
                {
                    ApplicationArea = Suite;
                    Visible = false;
                }
                field("Exch. Rate Losses Acc."; Rec."Exch. Rate Losses Acc.")
                {
                    ApplicationArea = Suite;
                    Visible = false;
                }
                field("Residual Account"; Rec."Residual Account")
                {
                    ApplicationArea = Suite;
                    Visible = false;
                }
                field("Starting Date"; Rec."Starting Date")
                {
                    ApplicationArea = Suite;
                }
                field("Ending Date"; Rec."Ending Date")
                {
                    ApplicationArea = Suite;
                }
                field("File Format"; Rec."File Format")
                {
                    ApplicationArea = Suite;
                    Visible = false;
                }
                field("Last Run"; Rec."Last Run")
                {
                    ApplicationArea = Suite;
                }
                field(LastConsolidationEndingDate; LastConsolidationEndingDate)
                {
                    ApplicationArea = Suite;
                    Caption = 'Last Consolidation Ending Date';
                    ToolTip = 'Specifies the ending date of the last consolidation run for this business unit.';
                }
            }
        }
        area(factboxes)
        {
            systempart(Control1900383207; Links)
            {
                ApplicationArea = RecordLinks;
                Visible = false;
            }
            systempart(Control1905767507; Notes)
            {
                ApplicationArea = Notes;
                Visible = false;
            }
        }
    }

    actions
    {
        area(navigation)
        {
            action(ConfigureExchangeRates)
            {
                ApplicationArea = Suite;
                Caption = 'Exchange Rates';
                ToolTip = 'Edit the currency exchange rates used for this business unit in the next consolidation process.';
                Image = Currencies;
                trigger OnAction()
                var
                    ConsolidationCurrency: Codeunit "Consolidation Currency";
                begin
                    if Rec.IsEmpty() then
                        Error(CreateBusinessUnitFirstErr);
                    ConsolidationCurrency.ConfigureBusinessUnitCurrencies(Rec);
                    Rec.Modify();
                end;
            }
            group("&Reports")
            {
                Caption = '&Reports';
                Image = "Report";
                action(Eliminations)
                {
                    ApplicationArea = Suite;
                    Caption = 'Eliminations';
                    Ellipsis = true;
                    Image = "Report";
                    RunObject = Report "G/L Consolidation Eliminations";
                    ToolTip = 'View or edit elimination entries to remove transactions that are recorded across more than one company or remove entries involving intercompany transactions.';
                }
                action("Trial B&alance")
                {
                    ApplicationArea = Suite;
                    Caption = 'Trial B&alance';
                    Ellipsis = true;
                    Image = "Report";
                    RunObject = Report "Consolidated Trial Balance";
                    ToolTip = 'View general ledger balances and activities.';
                }
                action("Trial &Balance (4)")
                {
                    ApplicationArea = Suite;
                    Caption = 'Trial &Balance (4)';
                    Ellipsis = true;
                    Image = "Report";
                    RunObject = Report "Consolidated Trial Balance (4)";
                    ToolTip = 'View detailed general ledger balances.';
                }
            }
        }
        area(processing)
        {
            group("F&unctions")
            {
                Caption = 'F&unctions';
                Image = "Action";
                action("Test Database")
                {
                    ApplicationArea = Suite;
                    Caption = 'Test Database (same environment)';
                    Ellipsis = true;
                    Image = TestDatabase;
                    RunObject = Report "Consolidation - Test Database";
                    ToolTip = 'Preview the consolidation, without transferring data.';
                }
                action("T&est File")
                {
                    ApplicationArea = Suite;
                    Caption = 'T&est File';
                    Ellipsis = true;
                    Image = TestFile;
                    RunObject = Report "Consolidation - Test File";
                    ToolTip = 'Preview the consolidation in a file, without transferring data.';
                }
                separator(Action43)
                {
                }
                action("I&mport File")
                {
                    ApplicationArea = Suite;
                    Caption = 'I&mport File';
                    Ellipsis = true;
                    Image = Import;
                    RunObject = Report "Import Consolidation from File";
                    ToolTip = 'Run consolidation for the file that you import.';
                }
                action("Export File")
                {
                    ApplicationArea = Suite;
                    Caption = 'Export File';
                    Image = Export;
                    RunObject = Report "Export Consolidation";
                    ToolTip = 'Export transactions from the business units to a file.';
                }
                action(StartConsolidation)
                {
                    ApplicationArea = Suite;
                    Caption = 'Consolidate';
                    Ellipsis = true;
                    Image = LaunchWeb;
                    ToolTip = 'Consolidate the configured business units.';

                    trigger OnAction()
                    begin
                        Page.Run(Page::"Consolidate Wizard");
                    end;
                }
                action(ConsolidationsInProgress)
                {
                    ApplicationArea = Suite;
                    Caption = 'Consolidation runs status';
                    Image = JobJournal;
                    ToolTip = 'Shows the consolidation runs.';
                    RunObject = Page "Consolidations in Progress";
                }
                action(Setup)
                {
                    ApplicationArea = Suite;
                    Caption = 'Setup';
                    Image = Setup;
                    Tooltip = 'Setup of the consolidation parameters';
                    RunObject = Page "Consolidation Setup";
                    Visible = IsSaaS;
                }
            }
        }
        area(Promoted)
        {
            actionref(ConfigureExchangeRates_Promoted; ConfigureExchangeRates)
            {
            }
            actionref(Setup_Promoted; Setup)
            {
            }
            actionref(StartConsolidation_Promoted; StartConsolidation)
            {
            }
        }
    }

    var
        ConsolidateBusinessUnits: Codeunit "Consolidate Business Units";
        CompanyName: Text;
        LastConsolidationEndingDate: Date;
        IsSaaS: Boolean;
        CreateBusinessUnitFirstErr: Label 'You need to create a Business Unit first to configure its exchange rates.';

    trigger OnOpenPage()
    var
        EnvironmentInformation: Codeunit "Environment Information";
    begin
        IsSaaS := EnvironmentInformation.IsSaaS();
    end;

    trigger OnAfterGetRecord()
    begin
        if Rec."Default Data Import Method" = Rec."Default Data Import Method"::Database then
            CompanyName := Rec."Company Name";
        if Rec."Default Data Import Method" = Rec."Default Data Import Method"::API then
            CompanyName := Rec."External Company Name";
        LastConsolidationEndingDate := ConsolidateBusinessUnits.GetLastConsolidationEndingDate(Rec);
    end;

    /// <summary>
    /// Returns a selection filter text for currently selected business units on the page.
    /// Used for filtering operations based on user selection in the business unit list.
    /// </summary>
    /// <returns>Filter text representing selected business unit codes</returns>
    procedure GetSelectionFilter(): Text
    var
        BusUnit: Record "Business Unit";
        SelectionFilterManagement: Codeunit SelectionFilterManagement;
    begin
        CurrPage.SetSelectionFilter(BusUnit);
        exit(SelectionFilterManagement.GetSelectionFilterForBusinessUnit(BusUnit));
    end;
}