2020-10-21 17:42:33 +03:00

45 lines
1.3 KiB
C#

using System.Linq;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class NsibExpensesColumn : BaseColumn<double>
{
public NsibExpensesColumn(int count) : base(count)
{
}
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.Nmper)
{
if (preparedValues.Nmper - i >= 3)
{
if (preparedValues.Nmper - i < 16 - 1)
{
Values[i] = -preparedValues.NsibNetto / preparedValues.Nmper *
(preparedValues.Nmper - i + 1);
}
else
{
Values[i] = -preparedValues.NsibNetto / preparedValues.Nmper * 12;
}
}
else
{
Values[i] = 0;
}
}
}
Values[0] = Values.Skip(1).Sum(x => x);
}
}
}