diff --git a/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml b/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml index 9645b4b..45d4cea 100644 --- a/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml +++ b/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml @@ -14,12 +14,15 @@ - - - + + + + + + + - - + + - @@ -40,20 +43,19 @@ + + - + - + + + @@ -113,8 +120,8 @@ - - + + @@ -202,6 +209,7 @@ + 1602593830686 @@ -309,128 +317,170 @@ - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + - - + + + + @@ -494,22 +544,30 @@ - file://$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/InsuranceBonusExpensesTests.cs - 56 - - - file://$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/InsuranceBonusExpensesTests.cs - 256 - - - - file://$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrentTLM.cs - 85 - - diff --git a/EvoCalculator.Core.Calculation/Columns/BaseColumnWithSum.cs b/EvoCalculator.Core.Calculation/Columns/BaseColumnWithSum.cs index 0be37c7..6fc3a49 100644 --- a/EvoCalculator.Core.Calculation/Columns/BaseColumnWithSum.cs +++ b/EvoCalculator.Core.Calculation/Columns/BaseColumnWithSum.cs @@ -8,7 +8,7 @@ namespace EvoCalculator.Core.Calculation.Columns { } - protected decimal Sum + public decimal Sum { get { return Values.Skip(1).Sum(x => x); } } diff --git a/EvoCalculator.Core.Calculation/Columns/DirectorBonusSumColumn.cs b/EvoCalculator.Core.Calculation/Columns/DirectorBonusSumColumn.cs index 9a80842..878db6d 100644 --- a/EvoCalculator.Core.Calculation/Columns/DirectorBonusSumColumn.cs +++ b/EvoCalculator.Core.Calculation/Columns/DirectorBonusSumColumn.cs @@ -13,7 +13,7 @@ namespace EvoCalculator.Core.Calculation.Columns { Values[2] = -postValues.BonusBase.Value * (decimal) preparedValues.DirectorBonus * (decimal) (1 + preparedValues.SalaryRate) * - (decimal) (1 + preparedValues.MarketRate + preparedValues.DistrictRate); + (decimal) preparedValues.MarketRate * (decimal) preparedValues.DistrictRate; Values[0] = Sum; } } diff --git a/EvoCalculator.Core.Calculation/Columns/ExtraBonusSumColumn.cs b/EvoCalculator.Core.Calculation/Columns/ExtraBonusSumColumn.cs index d21aef8..37847fc 100644 --- a/EvoCalculator.Core.Calculation/Columns/ExtraBonusSumColumn.cs +++ b/EvoCalculator.Core.Calculation/Columns/ExtraBonusSumColumn.cs @@ -16,7 +16,7 @@ namespace EvoCalculator.Core.Calculation.Columns ? -1 * postValues.BonusBase.Value * (decimal) (cashflowMsfoColumn.Nominal / preparedValues.IRR_MSFO_Plan - 1) * (decimal) preparedValues.ExtraBonus * (decimal) (1 + preparedValues.SalaryRate) * - (decimal) (1 + preparedValues.MarketRate + preparedValues.DistrictRate) + (decimal) preparedValues.MarketRate * (decimal) preparedValues.DistrictRate : 0; Values[0] = Sum; } diff --git a/EvoCalculator.Core.Calculation/Columns/NPVBonusExpensesColumn.cs b/EvoCalculator.Core.Calculation/Columns/NPVBonusExpensesColumn.cs index 9c14e8a..5a9e3d3 100644 --- a/EvoCalculator.Core.Calculation/Columns/NPVBonusExpensesColumn.cs +++ b/EvoCalculator.Core.Calculation/Columns/NPVBonusExpensesColumn.cs @@ -14,13 +14,13 @@ namespace EvoCalculator.Core.Calculation.Columns { Values[1] = -1 * (preparedValues.RatBonus + preparedValues.NsBonus + preparedValues.NsibBonus) * (decimal) (1 + preparedValues.SalaryRate) * - (decimal) (1 + preparedValues.MarketRate + preparedValues.DistrictRate); + (decimal) preparedValues.MarketRate * (decimal) preparedValues.DistrictRate; Values[2] = preparedValues.BonusFix > 0 ? -preparedValues.BonusFix : -1 * postValues.BonusBase.Value * Convert.ToDecimal(preparedValues.Bonus) * (decimal) (1 + preparedValues.SalaryRate) * - (decimal) (1 + preparedValues.MarketRate + preparedValues.DistrictRate); + (decimal) preparedValues.MarketRate * (decimal) preparedValues.DistrictRate; for (var i = 3; i < Values.Length; i++) Values[i] = 0; diff --git a/EvoCalculator.Core.Calculation/Columns/RevenueColumn.cs b/EvoCalculator.Core.Calculation/Columns/RevenueColumn.cs index c496533..e10755a 100644 --- a/EvoCalculator.Core.Calculation/Columns/RevenueColumn.cs +++ b/EvoCalculator.Core.Calculation/Columns/RevenueColumn.cs @@ -9,9 +9,19 @@ public void ComputeValues(NSIBBruttoGrColumn nsibBruttoGrColumn, NSIBExpensesColumn nsibExpensesColumn, CashflowNSIBColumn cashflowNsibColumn) { - Values[1] = nsibBruttoGrColumn.Values[1] - cashflowNsibColumn.Values[1]; - for (var i = 2; i < Values.Length; i++) - Values[i] = Values[1] * nsibExpensesColumn.Values[i] / nsibExpensesColumn.Values[1]; + if (nsibBruttoGrColumn.Sum == 0) + { + for (var i = 0; i < Values.Length; i++) + { + Values[i] = 0; + } + } + else + { + Values[1] = nsibBruttoGrColumn.Values[1] - cashflowNsibColumn.Values[1]; + for (var i = 2; i < Values.Length; i++) + Values[i] = Values[1] * nsibExpensesColumn.Values[i] / nsibExpensesColumn.Values[1]; + } } } } \ No newline at end of file diff --git a/EvoCalculator.Core.Calculation/Columns/SumRepaymentColumn.cs b/EvoCalculator.Core.Calculation/Columns/SumRepaymentColumn.cs index fd6f38e..6ab600e 100644 --- a/EvoCalculator.Core.Calculation/Columns/SumRepaymentColumn.cs +++ b/EvoCalculator.Core.Calculation/Columns/SumRepaymentColumn.cs @@ -12,7 +12,7 @@ namespace EvoCalculator.Core.Calculation.Columns SumCurrentColumn sumCurrentColumn, SumCurrentNegativeColumn sumCurrentNegativeColumn, SumCurrentInterestColumn sumCurrentInterestColumn, SumCurrentTLMColumn sumCurrentTlmColumn) { - for (var i = 2; i < Values.Length; i++) + for (var i = 7; i < Values.Length; i++) Values[i] = sumCurrentColumn.Values[i] + sumCurrentNegativeColumn.Values[i] - sumCurrentTlmColumn.Values[i] * (1 + (decimal) calculation.VatValue) - sumCurrentInterestColumn.Values[i] * (1 + (decimal) calculation.VatValue) * diff --git a/EvoCalculator.Core/Controllers/v1/CalculationController.cs b/EvoCalculator.Core/Controllers/v1/CalculationController.cs index a89280e..06fd357 100644 --- a/EvoCalculator.Core/Controllers/v1/CalculationController.cs +++ b/EvoCalculator.Core/Controllers/v1/CalculationController.cs @@ -168,7 +168,9 @@ namespace EvoCalculator.Core.Controllers.V1 var cashflowNsibColumn = new CashflowNSIBColumn(preparedValues.Nmper + 1, dateTempColumn, nsibBruttoGrColumn, nsibExpensesColumn); - cashflowNsibColumn.ComputeValues((decimal) cashflowLeasingColumn.IRR); + + if (nsibBruttoGrColumn.Sum != 0) + cashflowNsibColumn.ComputeValues((decimal) cashflowLeasingColumn.IRR); var revenueColumn = new RevenueColumn(preparedValues.Nmper + 1); revenueColumn.ComputeValues(nsibBruttoGrColumn, nsibExpensesColumn, cashflowNsibColumn);