Report 5685 Copy Fixed Asset, source in 29

Source29

src/Layers/W1/BaseApp/FixedAssets/FixedAsset/CopyFixedAsset.Report.al192 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.FixedAssets.FixedAsset;

using Microsoft.Finance.Dimension;
using Microsoft.FixedAssets.Depreciation;

report 5685 "Copy Fixed Asset"
{
    Caption = 'Copy Fixed Asset';
    Permissions = TableData "FA Depreciation Book" = ri;
    ProcessingOnly = true;

    dataset
    {
    }

    requestpage
    {
        SaveValues = true;

        layout
        {
            area(content)
            {
                group(Options)
                {
                    Caption = 'Options';
                    field(FANo; FANo)
                    {
                        ApplicationArea = FixedAssets;
                        Caption = 'Copy from FA No.';
                        TableRelation = "Fixed Asset";
                        ToolTip = 'Specifies the number of the fixed asset that you want to copy from.';
                    }
                    field(NumberofCopies; NumberofCopies)
                    {
                        ApplicationArea = FixedAssets;
                        Caption = 'No. of Copies';
                        MinValue = 1;
                        ToolTip = 'Specifies the number of new fixed asset that you want to create.';
                    }
                    field(FirstFANo; FirstFANo)
                    {
                        ApplicationArea = FixedAssets;
                        Caption = 'First FA No.';
                        ToolTip = 'Specifies the number of the first fixed asset. If No. of Copies is greater than 1, the First FA No. field must include a number, for example FA045.';

                        trigger OnValidate()
                        begin
                            if FirstFANo <> '' then
                                UseFANoSeries := false;
                        end;
                    }
                    field(UseFANoSeries; UseFANoSeries)
                    {
                        ApplicationArea = FixedAssets;
                        Caption = 'Use FA No. Series';
                        ToolTip = 'Specifies if you want the new fixed asset to have a number from the number series specified in Fixed Asset Nos. field in the Fixed Asset Setup window.';

                        trigger OnValidate()
                        begin
                            if UseFANoSeries then
                                FirstFANo := '';
                        end;
                    }
                }
            }
        }

        actions
        {
        }

        trigger OnOpenPage()
        begin
            if NumberofCopies < 1 then
                NumberofCopies := 1;
            FANo := FANo2;
        end;
    }

    labels
    {
    }

    trigger OnPreReport()
    begin
        OnBeforePreReport(FANo, NumberofCopies, FirstFANo, UseFANoSeries);
        DefaultDim.LockTable();
        FADeprBook.LockTable();
        FA.LockTable();
        if FANo = '' then
            Error(Text000, FA.TableCaption(), FA.FieldCaption("No."));
        if (FirstFANo = '') and not UseFANoSeries then
            Error(Text001);
        FA.Get(FANo);
        FADeprBook."FA No." := FANo;
        FADeprBook.SetRange("FA No.", FANo);
        DefaultDim."Table ID" := DATABASE::"Fixed Asset";
        DefaultDim."No." := FANo;
        DefaultDim.SetRange("Table ID", DATABASE::"Fixed Asset");
        DefaultDim.SetRange("No.", FANo);
        DefaultDim2 := DefaultDim;
        for I := 1 to NumberofCopies do begin
            FA2 := FA;
            FA2."No." := '';
            FA2."Last Date Modified" := 0D;
            FA2."Main Asset/Component" := FA2."Main Asset/Component"::" ";
            FA2."Component of Main Asset" := '';
            OnOnPreReportOnBeforeFA2Insert(FA2, FA);
            if UseFANoSeries then
                FA2.Insert(true)
            else begin
                FA2."No." := FirstFANo;
                if NumberofCopies > 1 then
                    FirstFANo := IncStr(FirstFANo);
                if FA2."No." = '' then
                    Error(Text002, FA.TableCaption(), FA.FieldCaption("No."));
                FA2.Insert(true);
            end;
            if DefaultDim.Find('-') then
                repeat
                    DefaultDim2 := DefaultDim;
                    DefaultDim2."No." := FA2."No.";
                    DefaultDim2.Insert(true);
                until DefaultDim.Next() = 0;
            if FADeprBook.Find('-') then
                repeat
                    FADeprBook2 := FADeprBook;
                    FADeprBook2."FA No." := FA2."No.";
                    FADeprBook2.Insert(true);
                until FADeprBook.Next() = 0;
            if FA2.Find() then begin
                FA2."Last Date Modified" := 0D;
                FA2.Modify();
            end;
            OnAfterFixedAssetCopied(FA2, FA);
        end;
    end;

    var
        DefaultDim: Record "Default Dimension";
        DefaultDim2: Record "Default Dimension";
        FA: Record "Fixed Asset";
        FA2: Record "Fixed Asset";
        FADeprBook: Record "FA Depreciation Book";
        FADeprBook2: Record "FA Depreciation Book";
        FANo: Code[20];
        FANo2: Code[20];
        FirstFANo: Code[20];
        UseFANoSeries: Boolean;
        NumberofCopies: Integer;
        I: Integer;
#pragma warning disable AA0074
        Text000: Label 'You must specify a number in the Copy from %1 %2 field.', Comment = '%1: TABLECAPTION(Fixed Asset); %2: Field(No.)';
        Text001: Label 'You must specify a number in First FA No. field or use the FA No. Series.';
        Text002: Label 'You must include a number in the First FA %1 %2 field.', Comment = '%1: TABLECAPTION(Fixed Asset); %2: Field(No.)';
#pragma warning restore AA0074

    procedure SetFANo(NewFANo: Code[20])
    begin
        FANo2 := NewFANo;
    end;

    procedure InitializeRequest(NewFANo: Code[20]; NewNumberofCopies: Integer; NewFirstFANo: Code[20]; NewUseFANoSeries: Boolean)
    begin
        NumberofCopies := NewNumberofCopies;
        FirstFANo := NewFirstFANo;
        UseFANoSeries := NewUseFANoSeries;
        FANo := NewFANo;
    end;

    [IntegrationEvent(false, false)]
    local procedure OnAfterFixedAssetCopied(var FixedAsset2: Record "Fixed Asset"; var FixedAsset: Record "Fixed Asset")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnOnPreReportOnBeforeFA2Insert(var FixedAsset2: Record "Fixed Asset"; var FixedAsset: Record "Fixed Asset")
    begin
    end;

    [IntegrationEvent(false, false)]
    local procedure OnBeforePreReport(FANo: Code[20]; NumberofCopies: Integer; FirstFANo: Code[20]; UseFANoSeries: Boolean)
    begin
    end;
}