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 @@
-
-
-
+
+
+
+
+
+
+
-
@@ -30,9 +33,9 @@
-
+
+
-
@@ -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.Calculation/Columns/RevenueColumn.cs
+ 10
+
+
+
+
+
+
+
+
+
- file://$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/InsuranceBonusExpensesTests.cs
- 256
-
-
-
-
- file://$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrentTLM.cs
- 85
-
-
+ file://$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs
+ 201
+
+
+
+
+
+
+
+
+
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);