41 lines
1.3 KiB
C#
41 lines
1.3 KiB
C#
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
|
|
|
namespace EvoCalculator.Core.Calculation.Columns
|
|
{
|
|
public class KaskoNmperGrColumn : BaseColumnWithXNPV
|
|
{
|
|
public KaskoNmperGrColumn(int count, DateTempColumn dateTempColumn, double rate) : base(count, dateTempColumn,
|
|
rate)
|
|
{
|
|
}
|
|
|
|
private void PostCheck()
|
|
{
|
|
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
|
|
}
|
|
|
|
public void ComputeValues(PreparedValues preparedValues, Constants.Calculation constants)
|
|
{
|
|
for (var i = 1; i < Values.Length; i += 12)
|
|
if (i <= preparedValues.NmperInsurance)
|
|
{
|
|
if (preparedValues.NmperInsurance - i >= 3)
|
|
{
|
|
if (preparedValues.NmperInsurance - i < constants.MaxOnePolicePeriod - 1)
|
|
Values[i] = preparedValues.InsuranceKasko / 12 * (preparedValues.NmperInsurance - i + 1);
|
|
else
|
|
Values[i] = preparedValues.InsuranceKasko;
|
|
}
|
|
else
|
|
{
|
|
Values[i] = 0;
|
|
}
|
|
}
|
|
|
|
|
|
Values[0] = -XNPV;
|
|
|
|
PostCheck();
|
|
}
|
|
}
|
|
} |