40 lines
1.2 KiB
C#

using EvoCalculator.Core.FinanceFormulas;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using TridentGoalSeek;
namespace EvoCalculator.Core.Calculation.Columns
{
public class KaskoNmperGrColumn : BaseColumnWithXIRR
{
public KaskoNmperGrColumn(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
{
}
public void ComputeValues(PreparedValues preparedValues)
{
for (var i = 0; i < Values.Length; i++)
{
Values[i] = 0;
}
for (var i = 1; i < Values.Length; i += 12)
{
if (i <= preparedValues.NmperInsurance)
{
if (preparedValues.NmperInsurance - i < 16 - 1)
{
Values[i] = preparedValues.InsuranceKasko / 12 * (preparedValues.NmperInsurance - i + 1);
}
else
{
Values[i] = preparedValues.InsuranceKasko;
}
}
}
var XNPV = new XNPV(Flows, preparedValues.IrrExpected);
Values[0] = -XNPV.GetResult();
}
}
}