Page 1030 Job Cost Factbox, source in 29

Source29

src/Layers/W1/BaseApp/Projects/Project/Job/JobCostFactbox.Page.al417 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.Projects.Project.Job;

page 1030 "Job Cost Factbox"
{
    Caption = 'Project Details';
    Editable = false;
    LinksAllowed = false;
    PageType = CardPart;
    SourceTable = Job;

    layout
    {
        area(content)
        {
            field("No."; Rec."No.")
            {
                ApplicationArea = Jobs;
                Caption = 'Project No.';
                ToolTip = 'Specifies the project number.';

                trigger OnDrillDown()
                begin
                    ShowDetails();
                end;
            }
            group("Budget Cost")
            {
                Caption = 'Budget Cost';
                field(PlaceHolderLbl; PlaceHolderLbl)
                {
                    ApplicationArea = Jobs;
                    Editable = false;
                    Enabled = false;
                    ToolTip = 'Specifies nothing.';
                    Visible = false;
                }
                field(ScheduleCostLCY; CL[1])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'Resource';
                    Editable = false;
                    ToolTip = 'Specifies the total budgeted cost of resources associated with this project.';

                    trigger OnDrillDown()
                    begin
                        JobCalcStatistics.ShowPlanningLine(1, true);
                    end;
                }
                field(ScheduleCostLCYItem; CL[2])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'Item';
                    Editable = false;
                    ToolTip = 'Specifies the total budgeted cost of items associated with this project.';

                    trigger OnDrillDown()
                    begin
                        JobCalcStatistics.ShowPlanningLine(2, true);
                    end;
                }
                field(ScheduleCostLCYGLAcc; CL[3])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'G/L Account';
                    Editable = false;
                    ToolTip = 'Specifies the total budgeted cost of general journal entries associated with this project.';

                    trigger OnDrillDown()
                    begin
                        JobCalcStatistics.ShowPlanningLine(3, true);
                    end;
                }
                field(ScheduleCostLCYTotal; CL[4])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'Total';
                    Editable = false;
                    Style = Strong;
                    StyleExpr = true;
                    ToolTip = 'Specifies the total budget cost of a project.';

                    trigger OnDrillDown()
                    begin
                        JobCalcStatistics.ShowPlanningLine(0, true);
                    end;
                }
            }
            group("Actual Cost")
            {
                Caption = 'Actual Cost';
                field(Placeholder2; PlaceHolderLbl)
                {
                    ApplicationArea = Jobs;
                    Editable = false;
                    Enabled = false;
                    ToolTip = 'Specifies nothing.';
                    Visible = false;
                }
                field(UsageCostLCY; CL[5])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'Resource';
                    Editable = false;
                    ToolTip = 'Specifies the total usage cost of resources associated with this project.';

                    trigger OnDrillDown()
                    begin
                        JobCalcStatistics.ShowLedgEntry(1, true);
                    end;
                }
                field(UsageCostLCYItem; CL[6])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'Item';
                    Editable = false;
                    ToolTip = 'Specifies the total usage cost of items associated with this project.';

                    trigger OnDrillDown()
                    begin
                        JobCalcStatistics.ShowLedgEntry(2, true);
                    end;
                }
                field(UsageCostLCYGLAcc; CL[7])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'G/L Account';
                    Editable = false;
                    ToolTip = 'Specifies the total usage cost of general journal entries associated with this project.';

                    trigger OnDrillDown()
                    begin
                        JobCalcStatistics.ShowLedgEntry(3, true);
                    end;
                }
                field(UsageCostLCYTotal; CL[8])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'Total';
                    Editable = false;
                    Style = Strong;
                    StyleExpr = true;
                    ToolTip = 'Specifies the total costs used for a project.';

                    trigger OnDrillDown()
                    begin
                        JobCalcStatistics.ShowLedgEntry(0, true);
                    end;
                }
            }
            group("Billable Price")
            {
                Caption = 'Billable Price';
                field(Placeholder3; PlaceHolderLbl)
                {
                    ApplicationArea = Jobs;
                    Editable = false;
                    Enabled = false;
                    ToolTip = 'Specifies nothing.';
                    Visible = false;
                }
                field(BillablePriceLCY; PL[9])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'Resource';
                    Editable = false;
                    ToolTip = 'Specifies the total billable price of resources associated with this project.';

                    trigger OnDrillDown()
                    var
                        IsHandled: Boolean;
                    begin
                        IsHandled := false;
                        OnBeforeOnDrillDownBillablePriceLCY(Rec, IsHandled);
                        if not IsHandled then
                            JobCalcStatistics.ShowPlanningLine(1, false);
                    end;
                }
                field(BillablePriceLCYItem; PL[10])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'Item';
                    Editable = false;
                    ToolTip = 'Specifies the total billable price of items associated with this project.';

                    trigger OnDrillDown()
                    var
                        IsHandled: Boolean;
                    begin
                        IsHandled := false;
                        OnBeforeOnDrillDownBillablePriceLCYItem(Rec, IsHandled);
                        if not IsHandled then
                            JobCalcStatistics.ShowPlanningLine(2, false);
                    end;
                }
                field(BillablePriceLCYGLAcc; PL[11])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'G/L Account';
                    Editable = false;
                    ToolTip = 'Specifies the total billable price for project planning lines of type G/L account.';

                    trigger OnDrillDown()
                    var
                        IsHandled: Boolean;
                    begin
                        IsHandled := false;
                        OnBeforeOnDrillDownBillablePriceLCYGLAcc(Rec, IsHandled);
                        if not IsHandled then
                            JobCalcStatistics.ShowPlanningLine(3, false);
                    end;
                }
                field(BillablePriceLCYTotal; PL[12])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'Total';
                    Editable = false;
                    Style = Strong;
                    StyleExpr = true;
                    ToolTip = 'Specifies the total billable price used for a project.';

                    trigger OnDrillDown()
                    var
                        IsHandled: Boolean;
                    begin
                        IsHandled := false;
                        OnBeforeOnDrillDownBillablePriceLCYTotal(Rec, IsHandled);
                        if not IsHandled then
                            JobCalcStatistics.ShowPlanningLine(0, false);
                    end;
                }
            }
            group("Invoiced Price")
            {
                Caption = 'Invoiced Price';
                field(Placeholder4; PlaceHolderLbl)
                {
                    ApplicationArea = Jobs;
                    Editable = false;
                    Enabled = false;
                    ToolTip = 'Specifies nothing.';
                    Visible = false;
                }
                field(InvoicedPriceLCY; PL[13])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'Resource';
                    Editable = false;
                    ToolTip = 'Specifies the total invoiced price of resources associated with this project.';

                    trigger OnDrillDown()
                    var
                        IsHandled: Boolean;
                    begin
                        IsHandled := false;
                        OnBeforeOnDrillDownInvoicedPriceLCY(Rec, IsHandled);
                        if not IsHandled then
                            JobCalcStatistics.ShowLedgEntry(1, false);
                    end;
                }
                field(InvoicedPriceLCYItem; PL[14])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'Item';
                    Editable = false;
                    ToolTip = 'Specifies the total invoiced price of items associated with this project.';

                    trigger OnDrillDown()
                    var
                        IsHandled: Boolean;
                    begin
                        IsHandled := false;
                        OnBeforeOnDrillDownInvoicedPriceLCYItem(Rec, IsHandled);
                        if not IsHandled then
                            JobCalcStatistics.ShowLedgEntry(2, false);
                    end;
                }
                field(InvoicedPriceLCYGLAcc; PL[15])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'G/L Account';
                    Editable = false;
                    ToolTip = 'Specifies the total invoiced price of general journal entries associated with this project.';

                    trigger OnDrillDown()
                    var
                        IsHandled: Boolean;
                    begin
                        IsHandled := false;
                        OnBeforeOnDrillDownInvoicedPriceLCYGLAcc(Rec, IsHandled);
                        if not IsHandled then
                            JobCalcStatistics.ShowLedgEntry(3, false);
                    end;
                }
                field(InvoicedPriceLCYTotal; PL[16])
                {
                    ApplicationArea = Jobs;
                    AutoFormatType = 1;
                    AutoFormatExpression = '';
                    Caption = 'Total';
                    Editable = false;
                    Style = Strong;
                    StyleExpr = true;
                    ToolTip = 'Specifies the total invoiced price of a project.';

                    trigger OnDrillDown()
                    var
                        IsHandled: Boolean;
                    begin
                        IsHandled := false;
                        OnBeforeOnDrillDownInvoicedPriceLCYTotal(Rec, IsHandled);
                        if not IsHandled then
                            JobCalcStatistics.ShowLedgEntry(0, false);
                    end;
                }
            }
        }
    }

    actions
    {
    }

    trigger OnAfterGetCurrRecord()
    begin
        Clear(JobCalcStatistics);
        JobCalcStatistics.JobCalculateCommonFilters(Rec);
        JobCalcStatistics.CalculateAmounts();
        JobCalcStatistics.GetLCYCostAmounts(CL);
        JobCalcStatistics.GetLCYPriceAmounts(PL);
    end;

    var
        JobCalcStatistics: Codeunit "Job Calculate Statistics";
        PlaceHolderLbl: Label 'Placeholder';
        CL: array[16] of Decimal;
        PL: array[16] of Decimal;

    local procedure ShowDetails()
    begin
        PAGE.Run(PAGE::"Job Card", Rec);
    end;

    [IntegrationEvent(true, false)]
    local procedure OnBeforeOnDrillDownBillablePriceLCY(var Job: Record Job; var IsHandled: Boolean);
    begin
    end;

    [IntegrationEvent(true, false)]
    local procedure OnBeforeOnDrillDownBillablePriceLCYTotal(var Job: Record Job; var IsHandled: Boolean);
    begin
    end;

    [IntegrationEvent(true, false)]
    local procedure OnBeforeOnDrillDownBillablePriceLCYGLAcc(var Job: Record Job; var IsHandled: Boolean);
    begin
    end;

    [IntegrationEvent(true, false)]
    local procedure OnBeforeOnDrillDownBillablePriceLCYItem(var Job: Record Job; var IsHandled: Boolean);
    begin
    end;

    [IntegrationEvent(true, false)]
    local procedure OnBeforeOnDrillDownInvoicedPriceLCYGLAcc(var Job: Record Job; var IsHandled: Boolean);
    begin
    end;

    [IntegrationEvent(true, false)]
    local procedure OnBeforeOnDrillDownInvoicedPriceLCYTotal(var Job: Record Job; var IsHandled: Boolean);
    begin
    end;

    [IntegrationEvent(true, false)]
    local procedure OnBeforeOnDrillDownInvoicedPriceLCYItem(var Job: Record Job; var IsHandled: Boolean);
    begin
    end;

    [IntegrationEvent(true, false)]
    local procedure OnBeforeOnDrillDownInvoicedPriceLCY(var Job: Record Job; var IsHandled: Boolean);
    begin
    end;
}