Codeunit 5652 Insurance Jnl.-Post Line

App
Base Application
Namespace
Microsoft.FixedAssets.Insurance
Versions
17-28

Procedures, 2Events, 1

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/FixedAssets/Insurance/InsuranceJnlPostLine.Codeunit.al96 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.Insurance;

using Microsoft.Finance.GeneralLedger.Setup;
using Microsoft.FixedAssets.FixedAsset;

codeunit 5652 "Insurance Jnl.-Post Line"
{
    Permissions = TableData "Ins. Coverage Ledger Entry" = rimd,
                  TableData "Insurance Register" = rimd;
    TableNo = "Insurance Journal Line";

    trigger OnRun()
    begin
        GLSetup.Get();
        RunWithCheck(Rec);
    end;

    var
        GLSetup: Record "General Ledger Setup";
        FA: Record "Fixed Asset";
        Insurance: Record Insurance;
        InsuranceJnlLine: Record "Insurance Journal Line";
        InsCoverageLedgEntry: Record "Ins. Coverage Ledger Entry";
        InsCoverageLedgEntry2: Record "Ins. Coverage Ledger Entry";
        InsuranceReg: Record "Insurance Register";
        InsuranceJnlCheckLine: Codeunit "Insurance Jnl.-Check Line";
        MakeInsCoverageLedgEntry: Codeunit "Make Ins. Coverage Ledg. Entry";
        NextEntryNo: Integer;

    procedure RunWithCheck(var InsuranceJnlLine2: Record "Insurance Journal Line")
    begin
        InsuranceJnlLine.Copy(InsuranceJnlLine2);
        Code(true);
        InsuranceJnlLine2 := InsuranceJnlLine;
    end;

    procedure RunWithOutCheck(var InsuranceJnlLine2: Record "Insurance Journal Line")
    begin
        InsuranceJnlLine.Copy(InsuranceJnlLine2);
        Code(false);
        InsuranceJnlLine2 := InsuranceJnlLine;
    end;

    local procedure "Code"(CheckLine: Boolean)
    begin
        if InsuranceJnlLine."Insurance No." = '' then
            exit;
        if CheckLine then
            InsuranceJnlCheckLine.RunCheck(InsuranceJnlLine);
        Insurance.Get(InsuranceJnlLine."Insurance No.");
        Insurance.TestField(Blocked, false);
        FA.Get(InsuranceJnlLine."FA No.");
        FA.TestField("Budgeted Asset", false);
        FA.TestField(Blocked, false);
        FA.TestField(Inactive, false);
        MakeInsCoverageLedgEntry.CopyFromJnlLine(InsCoverageLedgEntry, InsuranceJnlLine);
        MakeInsCoverageLedgEntry.CopyFromInsuranceCard(InsCoverageLedgEntry, Insurance);
        if NextEntryNo = 0 then begin
            InsCoverageLedgEntry.LockTable();
            NextEntryNo := InsCoverageLedgEntry2.GetLastEntryNo() + 1;
            InsuranceReg.LockTable();
            InsuranceReg."No." := InsuranceReg.GetLastEntryNo() + 1;
            InsuranceReg.Init();
            InsuranceReg."From Entry No." := NextEntryNo + 1;
            InsuranceReg."Creation Date" := Today;
            InsuranceReg."Creation Time" := Time;
            InsuranceReg."Source Code" := InsuranceJnlLine."Source Code";
            InsuranceReg."Journal Batch Name" := InsuranceJnlLine."Journal Batch Name";
            InsuranceReg."User ID" := CopyStr(UserId(), 1, MaxStrLen(InsuranceReg."User ID"));
        end;
        NextEntryNo := NextEntryNo + 1;
        InsCoverageLedgEntry."Entry No." := NextEntryNo;
        InsCoverageLedgEntry."Dimension Set ID" := InsuranceJnlLine."Dimension Set ID";
        InsCoverageLedgEntry.Insert();
        if InsuranceReg."To Entry No." = 0 then begin
            InsuranceReg."To Entry No." := NextEntryNo;
            InsuranceReg.Insert();
        end else begin
            InsuranceReg."To Entry No." := NextEntryNo;
            InsuranceReg.Modify();
        end;

        OnAfterCode(InsCoverageLedgEntry);
    end;

    [IntegrationEvent(false, false)]
    local procedure OnAfterCode(var InsCoverageLedgerEntry: Record "Ins. Coverage Ledger Entry")
    begin
    end;
}