2020-11-22 22:05:00 +03:00

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();
}
}
}