2020-10-20 17:00:46 +03:00

32 lines
1.1 KiB
C#

using System.Linq;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class NPVBonusExpensesColumn : BaseColumn<double>
{
public NPVBonusExpensesColumn(int count) : base(count)
{
}
public void ComputeValues(PreparedValues preparedValues)
{
Values[1] = -1 * (preparedValues.RatBonus + preparedValues.NsBonus + preparedValues.NsibBonus) *
(1 + preparedValues.SalaryRate) *
(1 + preparedValues.MarketRate + preparedValues.DistrictRate);
Values[2] = preparedValues.BonusFix > 0
? -preparedValues.BonusFix
: -1 * preparedValues.BonusBase * preparedValues.Bonus * (1 + preparedValues.SalaryRate) *
(1 + preparedValues.MarketRate + preparedValues.DistrictRate);
for (var i = 3; i < Values.Length; i++)
{
Values[i] = 0;
}
Values[0] = Values.Skip(1).Sum(x => x);
}
}
}