32 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|
|
} |