Report 5691 Index Insurance
- App
- Base Application
- Namespace
- Microsoft.FixedAssets.Insurance
- Versions
- 17-28
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/FixedAssets/Insurance/IndexInsurance.Report.al193 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.FixedAssets.Depreciation;
using Microsoft.FixedAssets.FixedAsset;
using Microsoft.FixedAssets.Journal;
using Microsoft.FixedAssets.Setup;
report 5691 "Index Insurance"
{
ApplicationArea = FixedAssets;
Caption = 'Index Insurance';
ProcessingOnly = true;
UsageCategory = Tasks;
dataset
{
dataitem("Fixed Asset"; "Fixed Asset")
{
RequestFilterFields = "No.", "FA Class Code", "FA Subclass Code";
trigger OnAfterGetRecord()
var
IsHandled: Boolean;
begin
if Blocked or Inactive then
CurrReport.Skip();
Window.Update(1, "No.");
TempInsurance.DeleteAll();
InsCoverageLedgEntry.SetRange("FA No.", "No.");
InsCoverageLedgEntry.SetRange("Posting Date", 0D, PostingDate);
if InsCoverageLedgEntry.Find('-') then
repeat
TempInsurance."No." := InsCoverageLedgEntry."Insurance No.";
if TempInsurance.Insert() then begin
InsCoverageLedgEntry.SetRange("Insurance No.", InsCoverageLedgEntry."Insurance No.");
InsCoverageLedgEntry.CalcSums(Amount);
InsCoverageLedgEntry.SetRange("Insurance No.");
if InsCoverageLedgEntry.Amount <> 0 then begin
if Insurance.Get(InsCoverageLedgEntry."Insurance No.") then begin
if Insurance.Blocked then
CurrReport.Skip();
end else
CurrReport.Skip();
IsHandled := false;
OnAfterGetRecordOnBeforeInitInsuranceJournalLine("Fixed Asset", IndexFigure, IsHandled, InsCoverageLedgEntry);
if not IsHandled then begin
InsuranceJnlLine."Line No." := 0;
FAJnlSetup.SetInsuranceJnlTrailCodes(InsuranceJnlLine);
InsuranceJnlLine.Validate("Insurance No.", InsCoverageLedgEntry."Insurance No.");
InsuranceJnlLine.Validate("FA No.", "No.");
InsuranceJnlLine.Validate(
Amount, Round(InsCoverageLedgEntry.Amount * (IndexFigure / 100 - 1)));
InsuranceJnlLine."Document No." := DocumentNo;
InsuranceJnlLine."Posting No. Series" := NoSeries;
InsuranceJnlLine.Description := PostingDescription;
InsuranceJnlLine."Index Entry" := true;
NextLineNo := NextLineNo + 10000;
InsuranceJnlLine."Line No." := NextLineNo;
InsuranceJnlLine.Insert(true);
end;
end;
end;
until InsCoverageLedgEntry.Next() = 0;
end;
trigger OnPreDataItem()
begin
InsCoverageLedgEntry.SetCurrentKey("FA No.", "Insurance No.");
end;
}
}
requestpage
{
SaveValues = true;
layout
{
area(content)
{
group(Options)
{
Caption = 'Options';
field(IndexFigure; IndexFigure)
{
ApplicationArea = FixedAssets;
AutoFormatType = 0;
Caption = 'Index Figure';
DecimalPlaces = 0 : 8;
ToolTip = 'Specifies an index figure that is to calculate the index amounts entered in the journal. For example, if you want to index by 2%, enter 102 in this field; if you want to index by -3% percent, enter 97 in this field.';
}
field(PostingDate; PostingDate)
{
ApplicationArea = FixedAssets;
Caption = 'Posting Date';
ToolTip = 'Specifies the posting date to be used by the batch job. This date appears in the Posting Date field on the insurance journal lines.';
}
field(DocumentNo; DocumentNo)
{
ApplicationArea = FixedAssets;
Caption = 'Document No.';
ToolTip = 'Specifies, if you leave the field empty, the next available number on the resulting journal line. If a number series is not set up, enter the document number that you want assigned to the resulting journal line.';
}
field(PostingDescription; PostingDescription)
{
ApplicationArea = FixedAssets;
Caption = 'Posting Description';
ToolTip = 'Specifies a posting description to appear on the resulting journal lines.';
}
}
}
}
actions
{
}
}
labels
{
}
trigger OnPreReport()
begin
if PostingDate = 0D then
Error(Text000, InsuranceJnlLine.FieldCaption("Posting Date"));
if PostingDate <> NormalDate(PostingDate) then
Error(Text001);
if IndexFigure = 100 then
Error(Text002);
if IndexFigure <= 0 then
Error(Text003);
FASetup.Get();
FASetup.TestField("Insurance Depr. Book");
DeprBook.Get(FASetup."Insurance Depr. Book");
InsuranceJnlLine.LockTable();
FAJnlSetup.InsuranceJnlName(DeprBook, InsuranceJnlLine, NextLineNo);
NoSeries := FAJnlSetup.GetInsuranceNoSeries(InsuranceJnlLine);
if DocumentNo = '' then
DocumentNo := FAJnlSetup.GetInsuranceJnlDocumentNo(InsuranceJnlLine, PostingDate);
InsuranceJnlLine."Posting Date" := PostingDate;
Window.Open(Text004);
end;
var
FASetup: Record "FA Setup";
Insurance: Record Insurance;
FAJnlSetup: Record "FA Journal Setup";
TempInsurance: Record Insurance temporary;
InsCoverageLedgEntry: Record "Ins. Coverage Ledger Entry";
InsuranceJnlLine: Record "Insurance Journal Line";
Window: Dialog;
DocumentNo: Code[20];
NoSeries: Code[20];
NextLineNo: Integer;
#pragma warning disable AA0074
#pragma warning disable AA0470
Text000: Label 'You must specify %1.';
#pragma warning restore AA0470
Text001: Label 'Posting Date must not be a closing date.';
Text002: Label 'Index Figure must not be 100.';
Text003: Label 'Index Figure must be positive.';
#pragma warning disable AA0470
Text004: Label 'Indexing insurance #1##########';
#pragma warning restore AA0470
#pragma warning restore AA0074
protected var
PostingDate: Date;
IndexFigure: Decimal;
PostingDescription: Text[100];
DeprBook: Record "Depreciation Book";
procedure InitializeRequest(DocumentNoFrom: Code[20]; PostingDescriptionFrom: Text[100]; PostingDateFrom: Date; IndexFigureFrom: Decimal)
begin
DocumentNo := DocumentNoFrom;
PostingDescription := PostingDescriptionFrom;
PostingDate := PostingDateFrom;
IndexFigure := IndexFigureFrom;
end;
[IntegrationEvent(false, false)]
local procedure OnAfterGetRecordOnBeforeInitInsuranceJournalLine(FixedAsset: Record "Fixed Asset"; IndexFigure: Decimal; var IsHandled: Boolean; InsCoverageLedgerEntry: Record "Ins. Coverage Ledger Entry")
begin
end;
}