40 lines
1.2 KiB
C#
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();
|
|
}
|
|
}
|
|
} |