merge branch dyn-980_post-calc_nwe-methods
This commit is contained in:
parent
09979913e0
commit
1c67b69abe
@ -8,6 +8,10 @@ public class BaseColumnWithSum : BaseColumn<decimal>
|
||||
{
|
||||
}
|
||||
|
||||
protected BaseColumnWithSum()
|
||||
{
|
||||
}
|
||||
|
||||
public decimal Sum
|
||||
{
|
||||
get { return Values.Skip(1).Sum(x => x); }
|
||||
|
||||
@ -8,7 +8,7 @@ public class CashflowNSIBColumn : BaseColumn<decimal>
|
||||
{
|
||||
}
|
||||
|
||||
public void ComputeValues(NSIBBruttoGrColumn nextNsibBruttoGrColumn, RevenueColumn nextRevenueColumn)
|
||||
public void ComputeValues(BaseColumn<decimal> nextNsibBruttoGrColumn, BaseColumn<decimal> nextRevenueColumn)
|
||||
{
|
||||
for (var i = 0; i < nextNsibBruttoGrColumn.Values.Length; i++)
|
||||
Values[i] = nextNsibBruttoGrColumn.Values[i] - nextRevenueColumn.Values[i];
|
||||
|
||||
@ -0,0 +1,20 @@
|
||||
using EvoCalculator.Core.Base.Columns;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Prepared;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Prepared.PreparedTables;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class BaseNSIBBruttoGrColumn : BaseColumnWithSum
|
||||
{
|
||||
protected readonly TablePaymentsRow[] _currentTablePayments;
|
||||
protected readonly BaseColumn<decimal> _nextSumColumn;
|
||||
protected readonly PreparedValues _preparedValues;
|
||||
|
||||
public BaseNSIBBruttoGrColumn(int count, PreparedValues preparedValues, TablePaymentsRow[] currentTablePayments,
|
||||
BaseColumn<decimal> nextSumColumn) : base(count)
|
||||
{
|
||||
_preparedValues = preparedValues;
|
||||
_currentTablePayments = currentTablePayments;
|
||||
_nextSumColumn = nextSumColumn;
|
||||
}
|
||||
}
|
||||
@ -6,21 +6,13 @@ using TridentGoalSeek;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class NSIBBruttoGrColumn : BaseColumnWithSum, IGoalSeekAlgorithm
|
||||
public class NSIBBruttoGrColumnVT1 : BaseNSIBBruttoGrColumn, IGoalSeekAlgorithm
|
||||
{
|
||||
private readonly TablePaymentsRow[] _currentTablePayments;
|
||||
private readonly BaseColumn<decimal> _nextSumColumn;
|
||||
private readonly PreparedValues _preparedValues;
|
||||
|
||||
private readonly double[] _ratios;
|
||||
|
||||
|
||||
public NSIBBruttoGrColumn(int count, PreparedValues preparedValues, TablePaymentsRow[] currentTablePayments,
|
||||
BaseColumn<decimal> nextSumColumn) : base(count)
|
||||
public NSIBBruttoGrColumnVT1(int count, PreparedValues preparedValues, TablePaymentsRow[] currentTablePayments,
|
||||
BaseColumn<decimal> nextSumColumn) : base(count, preparedValues, currentTablePayments, nextSumColumn)
|
||||
{
|
||||
_preparedValues = preparedValues;
|
||||
_currentTablePayments = currentTablePayments;
|
||||
_nextSumColumn = nextSumColumn;
|
||||
_ratios = new double[count];
|
||||
ComputeRatios();
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
using System.Linq;
|
||||
using EvoCalculator.Core.Base.Columns;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Prepared.PreparedTables;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class NSIBBruttoGrColumnVT2 : BaseColumnWithSum
|
||||
{
|
||||
public void ComputeValues(TablePaymentsRow[] currentTablePayments)
|
||||
{
|
||||
Values = new decimal[] {0}
|
||||
.Concat(currentTablePayments.Select(x => x.NSIBBruttoPayment)).ToArray();
|
||||
|
||||
Values[0] = Sum;
|
||||
}
|
||||
}
|
||||
@ -5,9 +5,9 @@ using EvoCalculator.Core.Models.PostCalculation.Models.Prepared.PreparedTables;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class NSIBExpensesColumn : BaseColumnWithSum
|
||||
public class NSIBExpensesColumnVT1 : BaseColumnWithSum
|
||||
{
|
||||
public NSIBExpensesColumn(int count) : base(count)
|
||||
public NSIBExpensesColumnVT1(int count) : base(count)
|
||||
{
|
||||
}
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
using System.Linq;
|
||||
using EvoCalculator.Core.Base.Columns;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Prepared.PreparedTables;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class NSIBExpensesColumnVT2 : BaseColumnWithSum
|
||||
{
|
||||
public void ComputeValues(TablePaymentsRow[] currentTablePayments)
|
||||
{
|
||||
Values = new decimal[] {0}
|
||||
.Concat(currentTablePayments.Select(x => x.NSIBExpensesPayment)).ToArray();
|
||||
}
|
||||
}
|
||||
@ -5,9 +5,9 @@ using EvoCalculator.Core.Models.PostCalculation.Models.Prepared.PreparedTables;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class RevenueColumn : BaseColumn<decimal>
|
||||
public class RevenueColumnVT1 : BaseColumn<decimal>
|
||||
{
|
||||
public RevenueColumn(int count) : base(count)
|
||||
public RevenueColumnVT1(int count) : base(count)
|
||||
{
|
||||
}
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
using System.Linq;
|
||||
using EvoCalculator.Core.Base.Columns;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Prepared.PreparedTables;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class RevenueColumnVT2 : BaseColumn<decimal>
|
||||
{
|
||||
public void ComputeValues(TablePaymentsRow[] currentTablePayments)
|
||||
{
|
||||
Values = new decimal[] {0}
|
||||
.Concat(currentTablePayments.Select(x => x.NSIBRevenuePayment)).ToArray();
|
||||
}
|
||||
}
|
||||
@ -59,6 +59,7 @@ public class BaseSumColumn : BaseColumnWithNominal
|
||||
{
|
||||
Values[0] = -(_nextValues.BaseCost + _preparedValues.FuelCardSum);
|
||||
Values[1] = _currentTablePayments[0].SumPayment + _preparedValues.SubsidySum;
|
||||
|
||||
for (var i = 2; i < Values.Length - 1; i++)
|
||||
if (i < _preparedValues.EditPaymentNumber)
|
||||
{
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using EvoCalculator.Core.Base.Columns;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Prepared;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Prepared.PreparedTables;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class SumColumnVT4 : BaseSumColumn
|
||||
{
|
||||
public SumColumnVT4(int count, BaseColumn<DateTime> dateTempColumn, PreparedValues preparedValues,
|
||||
NextValues nextValues, TablePaymentsRow[] currentTablePayments, TablePaymentsRow[] nextTablePayments) : base(
|
||||
count, dateTempColumn, preparedValues, nextValues, currentTablePayments, nextTablePayments)
|
||||
{
|
||||
}
|
||||
|
||||
public void ComputeValues()
|
||||
{
|
||||
Values = new decimal[] {0}
|
||||
.Concat(_currentTablePayments.Select(x => x.SumPayment)).ToArray();
|
||||
|
||||
Values[1] = _currentTablePayments[0].SumPayment + _preparedValues.SubsidySum;
|
||||
Values[0] = -(_nextValues.BaseCost + _preparedValues.FuelCardSum);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
using EvoCalculator.Core.Base.Columns;
|
||||
using EvoCalculator.Core.Tools.Check;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class BaseSumRepaymentColumn : BaseColumn<decimal>
|
||||
{
|
||||
public void PostCheck()
|
||||
{
|
||||
var checkTools = new CheckTools();
|
||||
checkTools.CheckColumnForLessThanZeroValue(Values);
|
||||
}
|
||||
}
|
||||
@ -10,7 +10,7 @@ using EvoCalculator.Core.Tools.GroupColumns.Models;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class SumRepaymentColumn : BaseColumn<decimal>
|
||||
public class SumRepaymentColumnVT1 : BaseSumRepaymentColumn
|
||||
{
|
||||
public void ComputeValues(PreparedValues preparedValues
|
||||
, TablePaymentsRow[] currentTablePayments
|
||||
@ -53,10 +53,4 @@ public class SumRepaymentColumn : BaseColumn<decimal>
|
||||
new[] {nextSumWithVatColumn.Values[^1]}
|
||||
);
|
||||
}
|
||||
|
||||
public void PostCheck()
|
||||
{
|
||||
var checkTools = new CheckTools();
|
||||
checkTools.CheckColumnForLessThanZeroValue(Values);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
using System.Linq;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Prepared.PreparedTables;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class SumRepaymentColumnVT2 : BaseSumRepaymentColumn
|
||||
{
|
||||
public void ComputeValues(TablePaymentsRow[] currentTablePayments)
|
||||
{
|
||||
Values = new decimal[] {0}
|
||||
.Concat(currentTablePayments.Select(x => x.RepaymentPayment)).ToArray();
|
||||
}
|
||||
}
|
||||
@ -11,17 +11,17 @@ public class BaseSumWithVATColumn : BaseColumnWithSum
|
||||
protected Constants.Calculation _constants;
|
||||
protected TablePaymentsRow[] _currentTablePayments;
|
||||
protected BaseSumColumn _nextSumColumn;
|
||||
protected VATColumn _nextVATColumn;
|
||||
protected VATColumnVT1 _nextVatColumnVt1;
|
||||
protected PreparedValues _preparedValues;
|
||||
|
||||
public BaseSumWithVATColumn(int count, PreparedValues preparedValues, BaseSumColumn nextSumColumn,
|
||||
TablePaymentsRow[] currentTablePayments, VATColumn nextVatColumn,
|
||||
TablePaymentsRow[] currentTablePayments, VATColumnVT1 nextVatColumnVt1,
|
||||
Constants.Calculation constants) : base(count)
|
||||
{
|
||||
_preparedValues = preparedValues;
|
||||
_nextSumColumn = nextSumColumn;
|
||||
_currentTablePayments = currentTablePayments;
|
||||
_nextVATColumn = nextVatColumn;
|
||||
_nextVatColumnVt1 = nextVatColumnVt1;
|
||||
_constants = constants;
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ public class BaseSumWithVATColumn : BaseColumnWithSum
|
||||
if (i < _preparedValues.EditPaymentNumber)
|
||||
Values[i] = _currentTablePayments[i - 1].SumWithVATPayment;
|
||||
else
|
||||
Values[i] = _nextSumColumn.GetValue(i) + _nextVATColumn.GetValue(i);
|
||||
Values[i] = _nextSumColumn.GetValue(i) + _nextVatColumnVt1.GetValue(i);
|
||||
|
||||
Values[0] = Sum;
|
||||
}
|
||||
|
||||
@ -6,8 +6,8 @@ namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
public class SumWithVATColumnVT1 : BaseSumWithVATColumn
|
||||
{
|
||||
public SumWithVATColumnVT1(int count, PreparedValues preparedValues, BaseSumColumn nextSumColumn,
|
||||
TablePaymentsRow[] currentTablePayments, VATColumn nextVatColumn, Constants.Calculation constants) : base(
|
||||
count, preparedValues, nextSumColumn, currentTablePayments, nextVatColumn, constants)
|
||||
TablePaymentsRow[] currentTablePayments, VATColumnVT1 nextVatColumnVt1, Constants.Calculation constants) : base(
|
||||
count, preparedValues, nextSumColumn, currentTablePayments, nextVatColumnVt1, constants)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@ -10,9 +10,9 @@ public class SumWithVATColumnVT2 : BaseSumWithVATColumn, IGoalSeekAlgorithm
|
||||
private readonly NextValues _nextValues;
|
||||
|
||||
public SumWithVATColumnVT2(int count, PreparedValues preparedValues, BaseSumColumn nextSumColumn,
|
||||
TablePaymentsRow[] currentTablePayments, VATColumn nextVatColumn, Constants.Calculation constants,
|
||||
TablePaymentsRow[] currentTablePayments, VATColumnVT1 nextVatColumnVt1, Constants.Calculation constants,
|
||||
NextValues nextValues) : base(count, preparedValues, nextSumColumn, currentTablePayments,
|
||||
nextVatColumn, constants)
|
||||
nextVatColumnVt1, constants)
|
||||
{
|
||||
_nextValues = nextValues;
|
||||
}
|
||||
@ -21,7 +21,7 @@ public class SumWithVATColumnVT2 : BaseSumWithVATColumn, IGoalSeekAlgorithm
|
||||
{
|
||||
_nextSumColumn.ComputeValues(inputVariable);
|
||||
_nextSumColumn.RoundValues();
|
||||
_nextVATColumn.ComputeValues(_preparedValues, _nextSumColumn, _currentTablePayments, _constants);
|
||||
_nextVatColumnVt1.ComputeValues(_preparedValues, _nextSumColumn, _currentTablePayments, _constants);
|
||||
|
||||
FillValues();
|
||||
return Convert.ToDecimal(Sum);
|
||||
|
||||
@ -0,0 +1,22 @@
|
||||
using System.Linq;
|
||||
using EvoCalculator.Core.Base.Columns;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Prepared;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Prepared.PreparedTables;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class SumWithVATColumnVT3 : BaseColumnWithSum
|
||||
{
|
||||
public void ComputeValues(
|
||||
PreparedValues preparedValues
|
||||
, TablePaymentsRow[] currentTablePayments
|
||||
, Constants.Calculation constants)
|
||||
{
|
||||
Values = new decimal[] {0}
|
||||
.Concat(currentTablePayments.Select(x => x.SumPayment)).ToArray();
|
||||
|
||||
Values[1] = currentTablePayments[0].SumWithVATPayment +
|
||||
preparedValues.SubsidySum * (decimal) (1 + constants.VatValue);
|
||||
Values[0] = Sum;
|
||||
}
|
||||
}
|
||||
@ -7,9 +7,9 @@ using EvoCalculator.Core.Tools.Check;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class VATColumn : BaseColumnWithSum
|
||||
public class VATColumnVT1 : BaseColumnWithSum
|
||||
{
|
||||
public VATColumn(int count) : base(count)
|
||||
public VATColumnVT1(int count) : base(count)
|
||||
{
|
||||
}
|
||||
|
||||
@ -20,11 +20,14 @@ public class VATColumn : BaseColumnWithSum
|
||||
, Constants.Calculation constants)
|
||||
{
|
||||
Values[1] = currentTablePayments[0].VATPayment + preparedValues.SubsidySum * (decimal) constants.VatValue;
|
||||
|
||||
for (var i = 2; i < Values.Length; i++)
|
||||
if (i < preparedValues.EditPaymentNumber)
|
||||
Values[i] = currentTablePayments[i - 1].VATPayment;
|
||||
else
|
||||
Values[i] = Math.Round(nextSumColumn.GetValue(i) * (decimal) constants.VatValue, 2);
|
||||
|
||||
Values[0] = Sum;
|
||||
}
|
||||
|
||||
public void PostCheck()
|
||||
@ -0,0 +1,21 @@
|
||||
using System.Linq;
|
||||
using EvoCalculator.Core.Base.Columns;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Prepared;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Prepared.PreparedTables;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
|
||||
public class VATColumnVT2 : BaseColumnWithSum
|
||||
{
|
||||
public void ComputeValues(
|
||||
PreparedValues preparedValues
|
||||
, TablePaymentsRow[] currentTablePayments
|
||||
, Constants.Calculation constants)
|
||||
{
|
||||
Values = new decimal[] {0}
|
||||
.Concat(currentTablePayments.Select(x => x.VATPayment)).ToArray();
|
||||
|
||||
Values[1] = currentTablePayments[0].VATPayment + preparedValues.SubsidySum * (decimal) constants.VatValue;
|
||||
Values[0] = Sum;
|
||||
}
|
||||
}
|
||||
@ -83,7 +83,7 @@ public static partial class CalculateManager
|
||||
preparedValues, nextValues, currentTablePayments, nextTablePayments);
|
||||
techNextSumColumn.ComputeValues((decimal) currentSumColumn.IRR);
|
||||
|
||||
var techNextVATColumn = new VATColumn(preparedValues.Nmper.Next + 1);
|
||||
var techNextVATColumn = new VATColumnVT1(preparedValues.Nmper.Next + 1);
|
||||
techNextVATColumn.ComputeValues(preparedValues, techNextSumColumn, currentTablePayments, constants);
|
||||
|
||||
var techNextSumWithVATColumn = new SumWithVATColumnVT1(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
@ -130,7 +130,7 @@ public static partial class CalculateManager
|
||||
var nextSumColumn = new SumColumnVT2(preparedValues.Nmper.Next + 1, nextDateTempColumn,
|
||||
preparedValues, nextValues, currentTablePayments, nextTablePayments);
|
||||
|
||||
var nextVATColumn = new VATColumn(preparedValues.Nmper.Next + 1);
|
||||
var nextVATColumn = new VATColumnVT1(preparedValues.Nmper.Next + 1);
|
||||
|
||||
var nextSumWithVATColumn = new SumWithVATColumnVT2(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
nextSumColumn, currentTablePayments, nextVATColumn, constants, nextValues);
|
||||
@ -139,7 +139,7 @@ public static partial class CalculateManager
|
||||
nextVATColumn.PostCheck();
|
||||
nextSumWithVATColumn.PostCheck();
|
||||
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumnVT1(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
currentTablePayments, nextSumColumn);
|
||||
var nsibRequiredValue = currentTablePayments
|
||||
.Where((x, i) => i >= preparedValues.EditPaymentNumber - 1)
|
||||
@ -185,7 +185,7 @@ public static partial class CalculateManager
|
||||
var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1);
|
||||
nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn);
|
||||
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumn();
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumnVT1();
|
||||
nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn,
|
||||
nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn,
|
||||
nextDateTempColumn, nextCashflowMSFOForNIColumn, constants);
|
||||
@ -206,10 +206,10 @@ public static partial class CalculateManager
|
||||
nextValues.Nmper = preparedValues.Nmper.Next;
|
||||
|
||||
|
||||
var nextRevenueColumn = new RevenueColumn(nextValues.Nmper + 1);
|
||||
var nextRevenueColumn = new RevenueColumnVT1(nextValues.Nmper + 1);
|
||||
nextRevenueColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumn(nextValues.Nmper + 1);
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumnVT1(nextValues.Nmper + 1);
|
||||
nextNSIBExpensesColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextCashflowNSIBColumn = new CashflowNSIBColumn(nextValues.Nmper + 1);
|
||||
|
||||
@ -63,7 +63,7 @@ public static partial class CalculateManager
|
||||
|
||||
var nextSumColumn = new SumColumnVT2(preparedValues.Nmper.Next + 1, nextDateTempColumn,
|
||||
preparedValues, nextValues, currentTablePayments, nextTablePayments);
|
||||
var nextVATColumn = new VATColumn(preparedValues.Nmper.Next + 1);
|
||||
var nextVATColumn = new VATColumnVT1(preparedValues.Nmper.Next + 1);
|
||||
|
||||
var nextSumWithVATColumn = new SumWithVATColumnVT2(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
nextSumColumn, currentTablePayments, nextVATColumn, constants, nextValues);
|
||||
@ -72,7 +72,7 @@ public static partial class CalculateManager
|
||||
nextVATColumn.PostCheck();
|
||||
nextSumColumn.PostCheck();
|
||||
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumnVT1(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
currentTablePayments, nextSumColumn);
|
||||
var nsibRequiredValue = currentTablePayments
|
||||
.Where((x, i) => i >= preparedValues.EditPaymentNumber - 1)
|
||||
@ -118,7 +118,7 @@ public static partial class CalculateManager
|
||||
var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1);
|
||||
nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn);
|
||||
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumn();
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumnVT1();
|
||||
nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn,
|
||||
nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn,
|
||||
nextDateTempColumn, nextCashflowMSFOForNIColumn, constants);
|
||||
@ -140,10 +140,10 @@ public static partial class CalculateManager
|
||||
nextValues.Nmper = preparedValues.Nmper.Next;
|
||||
|
||||
|
||||
var nextRevenueColumn = new RevenueColumn(nextValues.Nmper + 1);
|
||||
var nextRevenueColumn = new RevenueColumnVT1(nextValues.Nmper + 1);
|
||||
nextRevenueColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumn(nextValues.Nmper + 1);
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumnVT1(nextValues.Nmper + 1);
|
||||
nextNSIBExpensesColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextCashflowNSIBColumn = new CashflowNSIBColumn(nextValues.Nmper + 1);
|
||||
|
||||
@ -88,7 +88,7 @@ public static partial class CalculateManager
|
||||
nextSumColumn.PostCheck();
|
||||
nextSumColumn.RoundValues();
|
||||
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumnVT1(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
currentTablePayments, nextSumColumn);
|
||||
var nsibRequiredValue = currentTablePayments
|
||||
.Where((x, i) => i >= preparedValues.EditPaymentNumber - 1)
|
||||
@ -106,7 +106,7 @@ public static partial class CalculateManager
|
||||
nextSubsidyExpensesColumn, nextNSIBBruttoGrColumn, nextTableInsurance, nextDateTempColumn,
|
||||
nextTlmDateColumn);
|
||||
|
||||
var nextVATColumn = new VATColumn(preparedValues.Nmper.Next + 1);
|
||||
var nextVATColumn = new VATColumnVT1(preparedValues.Nmper.Next + 1);
|
||||
nextVATColumn.ComputeValues(preparedValues, nextSumColumn, currentTablePayments, constants);
|
||||
|
||||
var nextSumWithVATColumn = new SumWithVATColumnVT1(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
@ -143,7 +143,7 @@ public static partial class CalculateManager
|
||||
var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1);
|
||||
nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn);
|
||||
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumn();
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumnVT1();
|
||||
nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn,
|
||||
nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn,
|
||||
nextDateTempColumn, nextCashflowMSFOForNIColumn, constants);
|
||||
@ -165,10 +165,10 @@ public static partial class CalculateManager
|
||||
nextValues.Nmper = preparedValues.Nmper.Next;
|
||||
|
||||
|
||||
var nextRevenueColumn = new RevenueColumn(nextValues.Nmper + 1);
|
||||
var nextRevenueColumn = new RevenueColumnVT1(nextValues.Nmper + 1);
|
||||
nextRevenueColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumn(nextValues.Nmper + 1);
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumnVT1(nextValues.Nmper + 1);
|
||||
nextNSIBExpensesColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextCashflowNSIBColumn = new CashflowNSIBColumn(nextValues.Nmper + 1);
|
||||
|
||||
@ -0,0 +1,206 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Manager;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Request;
|
||||
using EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
using EvoCalculator.Core.PostCalculation.v1.Managers.lib.Helper;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Managers;
|
||||
|
||||
public static partial class CalculateManager
|
||||
{
|
||||
public static ManagerResult ChangingLastPayment(RequestCalculation requestCalculation)
|
||||
{
|
||||
try
|
||||
{
|
||||
var constants = new Constants.Calculation();
|
||||
var preparedValues = requestCalculation.PreparedValues;
|
||||
|
||||
var currentTablePayments = requestCalculation.TablePayments.Current;
|
||||
var nextTablePayments = requestCalculation.TablePayments.Next;
|
||||
|
||||
var currentTableInsurance = requestCalculation?.TableInsurance?.Current;
|
||||
var nextTableInsurance = requestCalculation?.TableInsurance?.Next;
|
||||
|
||||
var currentTableTLMTracker = requestCalculation?.TableTLMTracker?.Current;
|
||||
var nextTableTLMTracker = requestCalculation?.TableTLMTracker?.Next;
|
||||
/*
|
||||
* NEXT
|
||||
*/
|
||||
var nextDateColumn = new DateColumnVT1(preparedValues.Nmper.Next + 1);
|
||||
nextDateColumn.ComputeValues(preparedValues, currentTablePayments);
|
||||
|
||||
var nextDateTempColumn = new DateTempColumn(preparedValues.Nmper.Next + 1);
|
||||
nextDateTempColumn.ComputeValues(preparedValues, nextDateColumn);
|
||||
|
||||
|
||||
TLMDateColumn nextTlmDateColumn = null;
|
||||
TLMCostColumn nextTlmCostColumn = null;
|
||||
TLMGrColumn nextTlmGrColumn = null;
|
||||
|
||||
var tlmData = new Helper().GetTLMData(preparedValues
|
||||
, currentTableTLMTracker, nextTableTLMTracker
|
||||
, nextDateColumn);
|
||||
|
||||
if (tlmData != null)
|
||||
{
|
||||
nextTlmDateColumn = new TLMDateColumn(tlmData.Duration + 1);
|
||||
nextTlmDateColumn.ComputeValues(tlmData);
|
||||
nextTlmCostColumn = new TLMCostColumn(tlmData.Duration + 1, nextTlmDateColumn.Values);
|
||||
nextTlmCostColumn.ComputeValues(preparedValues, requestCalculation.TableTLMTracker);
|
||||
// nextTlmCostColumn.PostCheck();
|
||||
nextTlmGrColumn = new TLMGrColumn(preparedValues.Nmper.Next + 1);
|
||||
nextTlmGrColumn.ComputeValues(nextDateColumn, nextTlmDateColumn, nextTlmCostColumn);
|
||||
// nextTlmGrColumn.PostCheck();
|
||||
}
|
||||
|
||||
|
||||
var nextValues = new NextValues(preparedValues);
|
||||
nextValues.ComputeBaseCost(nextTableInsurance, nextTlmGrColumn,
|
||||
currentTablePayments);
|
||||
|
||||
|
||||
var nextSumColumn = new SumColumnVT4(preparedValues.Nmper.Next + 1, nextDateTempColumn,
|
||||
preparedValues, nextValues, currentTablePayments, nextTablePayments);
|
||||
nextSumColumn.ComputeValues();
|
||||
|
||||
var nextVATColumn = new VATColumnVT2();
|
||||
nextVATColumn.ComputeValues(preparedValues, currentTablePayments, constants);
|
||||
|
||||
var nextSumWithVATColumn = new SumWithVATColumnVT3();
|
||||
nextSumWithVATColumn.ComputeValues(preparedValues, currentTablePayments, constants);
|
||||
// nextSumWithVATColumn.PostCheck();
|
||||
// nextVATColumn.PostCheck();
|
||||
// nextSumColumn.PostCheck();
|
||||
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumnVT2();
|
||||
nextNSIBBruttoGrColumn.ComputeValues(currentTablePayments);
|
||||
|
||||
var nextSubsidyExpensesColumn = new SubsidyExpensesColumn(preparedValues.Nmper.Next + 1);
|
||||
nextSubsidyExpensesColumn.ComputeValues(preparedValues);
|
||||
|
||||
nextValues.ComputeAcquisitionExpenses(nextTableInsurance);
|
||||
|
||||
|
||||
var nextCashflowMSFOColumn = new CashflowMSFOColumn();
|
||||
nextCashflowMSFOColumn.ComputeValues(nextValues, preparedValues, nextSumColumn, nextTlmCostColumn,
|
||||
nextSubsidyExpensesColumn, nextNSIBBruttoGrColumn, nextTableInsurance, nextDateTempColumn,
|
||||
nextTlmDateColumn);
|
||||
|
||||
var nextCashflowMSFOForNIColumn = new CashflowMSFOForNIColumn();
|
||||
nextCashflowMSFOForNIColumn.ComputeValues(preparedValues, nextValues, nextDateTempColumn,
|
||||
nextCashflowMSFOColumn);
|
||||
// nextCashflowMSFOColumn.PostCheck();
|
||||
|
||||
var nextIRRGrColumn = new IRRGrColumn(nextCashflowMSFOForNIColumn.Values.Length);
|
||||
nextIRRGrColumn.ComputeValues(nextCashflowMSFOForNIColumn, nextCashflowMSFOColumn);
|
||||
|
||||
var nextNIColumn = new NIColumn(nextCashflowMSFOForNIColumn.Values.Length);
|
||||
nextNIColumn.ComputeValues(nextCashflowMSFOForNIColumn, nextIRRGrColumn);
|
||||
|
||||
var nextInterestColumn = new InterestColumn(nextCashflowMSFOForNIColumn.Values.Length);
|
||||
nextInterestColumn.ComputeValues(nextNIColumn, nextIRRGrColumn);
|
||||
// nextInterestColumn.PostCheck(nextSumColumn, nextDateColumn, nextCashflowMSFOColumn.Dates);
|
||||
|
||||
var nextSumCurrentColumn = new SumCurrentColumn(preparedValues.Nmper.Next + 1);
|
||||
nextSumCurrentColumn.ComputeValues(nextSumWithVATColumn);
|
||||
|
||||
var nextSumCurrentNegativeColumn = new SumCurrentNegativeColumn(preparedValues.Nmper.Next + 1);
|
||||
nextSumCurrentNegativeColumn.ComputeValues(nextDateTempColumn, nextTableInsurance);
|
||||
|
||||
var nextSumCurrentInterestColumn =
|
||||
new SumCurrentInterestColumn(nextCashflowMSFOForNIColumn.Values.Length);
|
||||
nextSumCurrentInterestColumn.ComputeValues(nextInterestColumn);
|
||||
|
||||
var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1);
|
||||
nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn);
|
||||
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumnVT2();
|
||||
nextSumRepaymentColumn.ComputeValues(currentTablePayments);
|
||||
// nextSumRepaymentColumn.PostCheck();
|
||||
|
||||
var nextCashflowMSFOFinalColumn = new CashflowMSFOFinalColumn();
|
||||
nextCashflowMSFOFinalColumn.ComputeValues(nextCashflowMSFOColumn, nextDateTempColumn, preparedValues);
|
||||
|
||||
var nextCashflowMSFOFinal2Column = new CashflowMSFOFinal2Column();
|
||||
nextCashflowMSFOFinal2Column.ComputeValues(nextCashflowMSFOFinalColumn, nextDateTempColumn,
|
||||
preparedValues);
|
||||
|
||||
var nextSumCreditColumn = new SumCreditColumn(preparedValues.LoanRatePeriod + 2);
|
||||
nextSumCreditColumn.ComputeValues(preparedValues, nextValues, constants, nextSumColumn);
|
||||
|
||||
var nextCreditColumn = new CreditColumn(preparedValues.LoanRatePeriod + 4);
|
||||
nextCreditColumn.ComputeValues(preparedValues, nextSumCreditColumn);
|
||||
|
||||
nextValues.Nmper = preparedValues.Nmper.Next;
|
||||
|
||||
|
||||
var nextRevenueColumn = new RevenueColumnVT2();
|
||||
nextRevenueColumn.ComputeValues(currentTablePayments);
|
||||
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumnVT2();
|
||||
nextNSIBExpensesColumn.ComputeValues(currentTablePayments);
|
||||
|
||||
var nextCashflowNSIBColumn = new CashflowNSIBColumn(nextValues.Nmper + 1);
|
||||
nextCashflowNSIBColumn.ComputeValues(nextNSIBBruttoGrColumn, nextRevenueColumn);
|
||||
|
||||
|
||||
nextValues.ComputeNiAtInception(currentTablePayments);
|
||||
nextValues.ComputeNiAtInceptionMSFO();
|
||||
/*
|
||||
* NEXT
|
||||
*/
|
||||
|
||||
var postValues = new PostValues(preparedValues);
|
||||
postValues.ComputeContractEconomy(nextCashflowMSFOColumn, nextCreditColumn);
|
||||
|
||||
|
||||
return new ManagerResult
|
||||
{
|
||||
PostValues = postValues,
|
||||
NextValues = nextValues,
|
||||
PreparedValues = preparedValues,
|
||||
Columns = new
|
||||
{
|
||||
nextDateColumn,
|
||||
nextDateTempColumn,
|
||||
nextTlmDateColumn,
|
||||
nextTlmCostColumn,
|
||||
nextTlmGrColumn,
|
||||
nextSumColumn,
|
||||
nextNSIBBruttoGrColumn,
|
||||
nextSubsidyExpensesColumn,
|
||||
nextCashflowMSFOColumn,
|
||||
nextVATColumn,
|
||||
nextSumWithVATColumn,
|
||||
nextCashflowMSFOForNIColumn,
|
||||
nextIRRGrColumn,
|
||||
nextNIColumn,
|
||||
nextInterestColumn,
|
||||
nextSumCurrentColumn,
|
||||
nextSumCurrentNegativeColumn,
|
||||
nextSumCurrentInterestColumn,
|
||||
nextSumCurrentTLMColumn,
|
||||
nextSumRepaymentColumn,
|
||||
nextCashflowMSFOFinalColumn,
|
||||
nextCashflowMSFOFinal2Column,
|
||||
nextSumCreditColumn,
|
||||
nextCreditColumn,
|
||||
nextNSIBExpensesColumn,
|
||||
nextCashflowNSIBColumn,
|
||||
nextRevenueColumn
|
||||
}
|
||||
};
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return new ManagerResult
|
||||
{
|
||||
Errors = new List<string>
|
||||
{
|
||||
ex.Message
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -65,14 +65,14 @@ public static partial class CalculateManager
|
||||
var techNextSumColumn = new SumColumnVT2(preparedValues.Nmper.Current + 1, techNextDateTempColumn,
|
||||
preparedValues, nextValues, currentTablePayments, nextTablePayments);
|
||||
|
||||
var techNextVATColumn = new VATColumn(preparedValues.Nmper.Current + 1);
|
||||
var techNextVATColumn = new VATColumnVT1(preparedValues.Nmper.Current + 1);
|
||||
techNextVATColumn.ComputeValues(preparedValues, techNextSumColumn, currentTablePayments, constants);
|
||||
|
||||
var techNextSumWithVATColumn = new SumWithVATColumnVT2(preparedValues.Nmper.Current + 1, preparedValues,
|
||||
techNextSumColumn, currentTablePayments, techNextVATColumn, constants, nextValues);
|
||||
techNextSumWithVATColumn.ComputeValues(preparedValues.TotalExpected);
|
||||
|
||||
var techNextNSIBBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper.Current + 1,
|
||||
var techNextNSIBBruttoGrColumn = new NSIBBruttoGrColumnVT1(preparedValues.Nmper.Current + 1,
|
||||
preparedValues,
|
||||
currentTablePayments, techNextSumColumn);
|
||||
var nsibRequiredValue = currentTablePayments
|
||||
@ -119,7 +119,7 @@ public static partial class CalculateManager
|
||||
var techNextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Current + 1);
|
||||
techNextSumCurrentTLMColumn.ComputeValues(techNextTlmGrColumn);
|
||||
|
||||
var techNextSumRepaymentColumn = new SumRepaymentColumn();
|
||||
var techNextSumRepaymentColumn = new SumRepaymentColumnVT1();
|
||||
techNextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments,
|
||||
techNextSumCurrentNegativeColumn,
|
||||
techNextSumCurrentColumn, techNextSumCurrentTLMColumn, techNextSumCurrentInterestColumn,
|
||||
@ -172,7 +172,7 @@ public static partial class CalculateManager
|
||||
nextSumColumn.PostCheck();
|
||||
nextSumColumn.RoundValues();
|
||||
|
||||
var nextVATColumn = new VATColumn(preparedValues.Nmper.Next + 1);
|
||||
var nextVATColumn = new VATColumnVT1(preparedValues.Nmper.Next + 1);
|
||||
nextVATColumn.ComputeValues(preparedValues, nextSumColumn, currentTablePayments, constants);
|
||||
|
||||
var nextSumWithVATColumn = new SumWithVATColumnVT1(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
@ -181,7 +181,7 @@ public static partial class CalculateManager
|
||||
nextVATColumn.PostCheck();
|
||||
nextSumWithVATColumn.PostCheck();
|
||||
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumnVT1(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
currentTablePayments, nextSumColumn);
|
||||
nextNSIBBruttoGrColumn.ComputeValues(nsibRequiredValue);
|
||||
|
||||
@ -224,7 +224,7 @@ public static partial class CalculateManager
|
||||
var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1);
|
||||
nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn);
|
||||
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumn();
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumnVT1();
|
||||
nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn,
|
||||
nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn,
|
||||
nextDateTempColumn, nextCashflowMSFOForNIColumn, constants);
|
||||
@ -246,10 +246,10 @@ public static partial class CalculateManager
|
||||
nextValues.Nmper = preparedValues.Nmper.Next;
|
||||
|
||||
|
||||
var nextRevenueColumn = new RevenueColumn(nextValues.Nmper + 1);
|
||||
var nextRevenueColumn = new RevenueColumnVT1(nextValues.Nmper + 1);
|
||||
nextRevenueColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumn(nextValues.Nmper + 1);
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumnVT1(nextValues.Nmper + 1);
|
||||
nextNSIBExpensesColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextCashflowNSIBColumn = new CashflowNSIBColumn(nextValues.Nmper + 1);
|
||||
|
||||
@ -85,7 +85,7 @@ public static partial class CalculateManager
|
||||
preparedValues, nextValues, currentTablePayments, nextTablePayments);
|
||||
techNextSumColumn.ComputeValues((decimal) currentSumColumn.IRR);
|
||||
|
||||
var techNextVATColumn = new VATColumn(preparedValues.Nmper.Next + 1);
|
||||
var techNextVATColumn = new VATColumnVT1(preparedValues.Nmper.Next + 1);
|
||||
techNextVATColumn.ComputeValues(preparedValues, techNextSumColumn, currentTablePayments, constants);
|
||||
|
||||
var techNextSumWithVATColumn = new SumWithVATColumnVT1(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
@ -135,7 +135,7 @@ public static partial class CalculateManager
|
||||
var nextSumColumn = new SumColumnVT2(nextValues.Nmper + 1, nextDateTempColumn,
|
||||
preparedValues, nextValues, currentTablePayments, nextTablePayments);
|
||||
|
||||
var nextVATColumn = new VATColumn(nextValues.Nmper + 1);
|
||||
var nextVATColumn = new VATColumnVT1(nextValues.Nmper + 1);
|
||||
|
||||
var nextSumWithVATColumn = new SumWithVATColumnVT2(nextValues.Nmper + 1, preparedValues,
|
||||
nextSumColumn, currentTablePayments, nextVATColumn, constants, nextValues);
|
||||
@ -144,7 +144,7 @@ public static partial class CalculateManager
|
||||
nextVATColumn.PostCheck();
|
||||
nextSumColumn.PostCheck();
|
||||
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumn(nextValues.Nmper + 1, preparedValues,
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumnVT1(nextValues.Nmper + 1, preparedValues,
|
||||
currentTablePayments, nextSumColumn);
|
||||
var nsibRequiredValue = currentTablePayments
|
||||
.Where((x, i) => i >= preparedValues.EditPaymentNumber - 1)
|
||||
@ -190,7 +190,7 @@ public static partial class CalculateManager
|
||||
var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(nextValues.Nmper + 1);
|
||||
nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn);
|
||||
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumn();
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumnVT1();
|
||||
nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn,
|
||||
nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn,
|
||||
nextDateTempColumn, nextCashflowMSFOForNIColumn, constants);
|
||||
@ -209,10 +209,10 @@ public static partial class CalculateManager
|
||||
var nextCreditColumn = new CreditColumn(preparedValues.LoanRatePeriod + 4);
|
||||
nextCreditColumn.ComputeValues(preparedValues, nextSumCreditColumn);
|
||||
|
||||
var nextRevenueColumn = new RevenueColumn(nextValues.Nmper + 1);
|
||||
var nextRevenueColumn = new RevenueColumnVT1(nextValues.Nmper + 1);
|
||||
nextRevenueColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumn(nextValues.Nmper + 1);
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumnVT1(nextValues.Nmper + 1);
|
||||
nextNSIBExpensesColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextCashflowNSIBColumn = new CashflowNSIBColumn(nextValues.Nmper + 1);
|
||||
|
||||
@ -86,7 +86,7 @@ public static partial class CalculateManager
|
||||
preparedValues, nextValues, currentTablePayments, nextTablePayments);
|
||||
techNextSumColumn.ComputeValues((decimal) currentSumColumn.IRR);
|
||||
|
||||
var techNextVATColumn = new VATColumn(preparedValues.Nmper.Next + 1);
|
||||
var techNextVATColumn = new VATColumnVT1(preparedValues.Nmper.Next + 1);
|
||||
techNextVATColumn.ComputeValues(preparedValues, techNextSumColumn, currentTablePayments, constants);
|
||||
|
||||
var techNextSumWithVATColumn = new SumWithVATColumnVT1(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
@ -97,7 +97,7 @@ public static partial class CalculateManager
|
||||
|
||||
var nextSumColumn = new SumColumnVT2(preparedValues.Nmper.Next + 1, nextDateTempColumn, preparedValues,
|
||||
nextValues, currentTablePayments, nextTablePayments);
|
||||
var nextVATColumn = new VATColumn(preparedValues.Nmper.Next + 1);
|
||||
var nextVATColumn = new VATColumnVT1(preparedValues.Nmper.Next + 1);
|
||||
|
||||
var nextSumWithVATColumn = new SumWithVATColumnVT2(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
nextSumColumn, currentTablePayments, nextVATColumn, constants, nextValues);
|
||||
@ -106,7 +106,7 @@ public static partial class CalculateManager
|
||||
nextSumWithVATColumn.PostCheck();
|
||||
nextVATColumn.PostCheck();
|
||||
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumnVT1(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
currentTablePayments, nextSumColumn);
|
||||
var nsibRequiredValue = currentTablePayments
|
||||
.Where((x, i) => i >= preparedValues.EditPaymentNumber - 1)
|
||||
@ -152,7 +152,7 @@ public static partial class CalculateManager
|
||||
var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1);
|
||||
nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn);
|
||||
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumn();
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumnVT1();
|
||||
nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn,
|
||||
nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn,
|
||||
nextSumWithVATColumn,
|
||||
@ -174,10 +174,10 @@ public static partial class CalculateManager
|
||||
|
||||
nextValues.Nmper = preparedValues.Nmper.Next;
|
||||
|
||||
var nextRevenueColumn = new RevenueColumn(nextValues.Nmper + 1);
|
||||
var nextRevenueColumn = new RevenueColumnVT1(nextValues.Nmper + 1);
|
||||
nextRevenueColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumn(nextValues.Nmper + 1);
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumnVT1(nextValues.Nmper + 1);
|
||||
nextNSIBExpensesColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextCashflowNSIBColumn = new CashflowNSIBColumn(nextValues.Nmper + 1);
|
||||
|
||||
211
EvoCalculator.Core.PostCalculation/v1/Managers/Suspension.cs
Normal file
211
EvoCalculator.Core.PostCalculation/v1/Managers/Suspension.cs
Normal file
@ -0,0 +1,211 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Manager;
|
||||
using EvoCalculator.Core.Models.PostCalculation.Models.Request;
|
||||
using EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||
using EvoCalculator.Core.PostCalculation.v1.Managers.lib.Helper;
|
||||
|
||||
namespace EvoCalculator.Core.PostCalculation.v1.Managers;
|
||||
|
||||
public static partial class CalculateManager
|
||||
{
|
||||
public static ManagerResult Suspension(RequestCalculation requestCalculation)
|
||||
{
|
||||
try
|
||||
{
|
||||
var constants = new Constants.Calculation();
|
||||
var preparedValues = requestCalculation.PreparedValues;
|
||||
|
||||
var currentTablePayments = requestCalculation.TablePayments.Current;
|
||||
var nextTablePayments = requestCalculation.TablePayments.Next;
|
||||
|
||||
var currentTableInsurance = requestCalculation?.TableInsurance?.Current;
|
||||
var nextTableInsurance = requestCalculation?.TableInsurance?.Next;
|
||||
|
||||
var currentTableTLMTracker = requestCalculation?.TableTLMTracker?.Current;
|
||||
var nextTableTLMTracker = requestCalculation?.TableTLMTracker?.Next;
|
||||
/*
|
||||
* NEXT
|
||||
*/
|
||||
var nextDateColumn = new DateColumnVT1(preparedValues.Nmper.Next + 1);
|
||||
nextDateColumn.ComputeValues(preparedValues, currentTablePayments);
|
||||
|
||||
var nextDateTempColumn = new DateTempColumn(preparedValues.Nmper.Next + 1);
|
||||
nextDateTempColumn.ComputeValues(preparedValues, nextDateColumn);
|
||||
|
||||
|
||||
TLMDateColumn nextTlmDateColumn = null;
|
||||
TLMCostColumn nextTlmCostColumn = null;
|
||||
TLMGrColumn nextTlmGrColumn = null;
|
||||
|
||||
var tlmData = new Helper().GetTLMData(preparedValues
|
||||
, currentTableTLMTracker, nextTableTLMTracker
|
||||
, nextDateColumn);
|
||||
|
||||
if (tlmData != null)
|
||||
{
|
||||
nextTlmDateColumn = new TLMDateColumn(tlmData.Duration + 1);
|
||||
nextTlmDateColumn.ComputeValues(tlmData);
|
||||
nextTlmCostColumn = new TLMCostColumn(tlmData.Duration + 1, nextTlmDateColumn.Values);
|
||||
nextTlmCostColumn.ComputeValues(preparedValues, requestCalculation.TableTLMTracker);
|
||||
// nextTlmCostColumn.PostCheck();
|
||||
nextTlmGrColumn = new TLMGrColumn(preparedValues.Nmper.Next + 1);
|
||||
nextTlmGrColumn.ComputeValues(nextDateColumn, nextTlmDateColumn, nextTlmCostColumn);
|
||||
// nextTlmGrColumn.PostCheck();
|
||||
}
|
||||
|
||||
|
||||
var nextValues = new NextValues(preparedValues);
|
||||
nextValues.ComputeBaseCost(nextTableInsurance, nextTlmGrColumn,
|
||||
currentTablePayments);
|
||||
|
||||
|
||||
var nextSumColumn = new SumColumnVT2(preparedValues.Nmper.Next + 1, nextDateTempColumn,
|
||||
preparedValues, nextValues, currentTablePayments, nextTablePayments);
|
||||
var nextVATColumn = new VATColumnVT1(preparedValues.Nmper.Next + 1);
|
||||
|
||||
var nextSumWithVATColumn = new SumWithVATColumnVT2(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
nextSumColumn, currentTablePayments, nextVATColumn, constants, nextValues);
|
||||
nextSumWithVATColumn.ComputeValues(preparedValues.TotalExpected);
|
||||
// nextSumWithVATColumn.PostCheck();
|
||||
// nextVATColumn.PostCheck();
|
||||
// nextSumColumn.PostCheck();
|
||||
|
||||
var nextNSIBBruttoGrColumn = new NSIBBruttoGrColumnVT1(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
currentTablePayments, nextSumColumn);
|
||||
var nsibRequiredValue = currentTablePayments
|
||||
.Where((x, i) => i >= preparedValues.EditPaymentNumber - 1)
|
||||
.Sum(x => x.NSIBBruttoPayment);
|
||||
nextNSIBBruttoGrColumn.ComputeValues(nsibRequiredValue);
|
||||
|
||||
var nextSubsidyExpensesColumn = new SubsidyExpensesColumn(preparedValues.Nmper.Next + 1);
|
||||
nextSubsidyExpensesColumn.ComputeValues(preparedValues);
|
||||
|
||||
nextValues.ComputeAcquisitionExpenses(nextTableInsurance);
|
||||
|
||||
|
||||
var nextCashflowMSFOColumn = new CashflowMSFOColumn();
|
||||
nextCashflowMSFOColumn.ComputeValues(nextValues, preparedValues, nextSumColumn, nextTlmCostColumn,
|
||||
nextSubsidyExpensesColumn, nextNSIBBruttoGrColumn, nextTableInsurance, nextDateTempColumn,
|
||||
nextTlmDateColumn);
|
||||
|
||||
var nextCashflowMSFOForNIColumn = new CashflowMSFOForNIColumn();
|
||||
nextCashflowMSFOForNIColumn.ComputeValues(preparedValues, nextValues, nextDateTempColumn,
|
||||
nextCashflowMSFOColumn);
|
||||
// nextCashflowMSFOColumn.PostCheck();
|
||||
|
||||
var nextIRRGrColumn = new IRRGrColumn(nextCashflowMSFOForNIColumn.Values.Length);
|
||||
nextIRRGrColumn.ComputeValues(nextCashflowMSFOForNIColumn, nextCashflowMSFOColumn);
|
||||
|
||||
var nextNIColumn = new NIColumn(nextCashflowMSFOForNIColumn.Values.Length);
|
||||
nextNIColumn.ComputeValues(nextCashflowMSFOForNIColumn, nextIRRGrColumn);
|
||||
|
||||
var nextInterestColumn = new InterestColumn(nextCashflowMSFOForNIColumn.Values.Length);
|
||||
nextInterestColumn.ComputeValues(nextNIColumn, nextIRRGrColumn);
|
||||
// nextInterestColumn.PostCheck(nextSumColumn, nextDateColumn, nextCashflowMSFOColumn.Dates);
|
||||
|
||||
var nextSumCurrentColumn = new SumCurrentColumn(preparedValues.Nmper.Next + 1);
|
||||
nextSumCurrentColumn.ComputeValues(nextSumWithVATColumn);
|
||||
|
||||
var nextSumCurrentNegativeColumn = new SumCurrentNegativeColumn(preparedValues.Nmper.Next + 1);
|
||||
nextSumCurrentNegativeColumn.ComputeValues(nextDateTempColumn, nextTableInsurance);
|
||||
|
||||
var nextSumCurrentInterestColumn =
|
||||
new SumCurrentInterestColumn(nextCashflowMSFOForNIColumn.Values.Length);
|
||||
nextSumCurrentInterestColumn.ComputeValues(nextInterestColumn);
|
||||
|
||||
var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1);
|
||||
nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn);
|
||||
|
||||
var nextSumRepaymentColumn = new SumRepaymentColumnVT1();
|
||||
nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn,
|
||||
nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn,
|
||||
nextDateTempColumn, nextCashflowMSFOForNIColumn, constants);
|
||||
// nextSumRepaymentColumn.PostCheck();
|
||||
|
||||
var nextCashflowMSFOFinalColumn = new CashflowMSFOFinalColumn();
|
||||
nextCashflowMSFOFinalColumn.ComputeValues(nextCashflowMSFOColumn, nextDateTempColumn, preparedValues);
|
||||
|
||||
var nextCashflowMSFOFinal2Column = new CashflowMSFOFinal2Column();
|
||||
nextCashflowMSFOFinal2Column.ComputeValues(nextCashflowMSFOFinalColumn, nextDateTempColumn,
|
||||
preparedValues);
|
||||
|
||||
var nextSumCreditColumn = new SumCreditColumn(preparedValues.LoanRatePeriod + 2);
|
||||
nextSumCreditColumn.ComputeValues(preparedValues, nextValues, constants, nextSumColumn);
|
||||
|
||||
var nextCreditColumn = new CreditColumn(preparedValues.LoanRatePeriod + 4);
|
||||
nextCreditColumn.ComputeValues(preparedValues, nextSumCreditColumn);
|
||||
|
||||
nextValues.Nmper = preparedValues.Nmper.Next;
|
||||
|
||||
|
||||
var nextRevenueColumn = new RevenueColumnVT1(nextValues.Nmper + 1);
|
||||
nextRevenueColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextNSIBExpensesColumn = new NSIBExpensesColumnVT1(nextValues.Nmper + 1);
|
||||
nextNSIBExpensesColumn.ComputeValues(preparedValues, currentTablePayments, nextValues);
|
||||
|
||||
var nextCashflowNSIBColumn = new CashflowNSIBColumn(nextValues.Nmper + 1);
|
||||
nextCashflowNSIBColumn.ComputeValues(nextNSIBBruttoGrColumn, nextRevenueColumn);
|
||||
|
||||
|
||||
nextValues.ComputeNiAtInception(currentTablePayments);
|
||||
nextValues.ComputeNiAtInceptionMSFO();
|
||||
/*
|
||||
* NEXT
|
||||
*/
|
||||
|
||||
var postValues = new PostValues(preparedValues);
|
||||
postValues.ComputeContractEconomy(nextCashflowMSFOColumn, nextCreditColumn);
|
||||
|
||||
|
||||
return new ManagerResult
|
||||
{
|
||||
PostValues = postValues,
|
||||
NextValues = nextValues,
|
||||
PreparedValues = preparedValues,
|
||||
Columns = new
|
||||
{
|
||||
nextDateColumn,
|
||||
nextDateTempColumn,
|
||||
nextTlmDateColumn,
|
||||
nextTlmCostColumn,
|
||||
nextTlmGrColumn,
|
||||
nextSumColumn,
|
||||
nextNSIBBruttoGrColumn,
|
||||
nextSubsidyExpensesColumn,
|
||||
nextCashflowMSFOColumn,
|
||||
nextVATColumn,
|
||||
nextSumWithVATColumn,
|
||||
nextCashflowMSFOForNIColumn,
|
||||
nextIRRGrColumn,
|
||||
nextNIColumn,
|
||||
nextInterestColumn,
|
||||
nextSumCurrentColumn,
|
||||
nextSumCurrentNegativeColumn,
|
||||
nextSumCurrentInterestColumn,
|
||||
nextSumCurrentTLMColumn,
|
||||
nextSumRepaymentColumn,
|
||||
nextCashflowMSFOFinalColumn,
|
||||
nextCashflowMSFOFinal2Column,
|
||||
nextSumCreditColumn,
|
||||
nextCreditColumn,
|
||||
nextNSIBExpensesColumn,
|
||||
nextCashflowNSIBColumn,
|
||||
nextRevenueColumn
|
||||
}
|
||||
};
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return new ManagerResult
|
||||
{
|
||||
Errors = new List<string>
|
||||
{
|
||||
ex.Message
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -119,7 +119,7 @@ public class NSIBBruttoGrColumnTests
|
||||
}
|
||||
};
|
||||
|
||||
var nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
var nsibBruttoGrColumn = new NSIBBruttoGrColumnVT1(preparedValues.Nmper.Next + 1, preparedValues,
|
||||
tablePayments.Current, sumColumn);
|
||||
// в менеджере считаем формулой
|
||||
nsibBruttoGrColumn.ComputeValues(20000);
|
||||
|
||||
@ -26,6 +26,8 @@ public class PostCalculationController : Controller
|
||||
100000004 => CalculateManager.PERWithoutChangingTheTerm(requestCalculation),
|
||||
100000005 => CalculateManager.PERWithChangingTheTerm(requestCalculation),
|
||||
100000006 => CalculateManager.CalculateByIRRAndSum(requestCalculation),
|
||||
100000007 => CalculateManager.Suspension(requestCalculation),
|
||||
100000008 => CalculateManager.ChangingLastPayment(requestCalculation),
|
||||
_ => CalculateManager.CalculateDefault(requestCalculation)
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user