merge branch dyn-980_post-calc_nwe-methods

This commit is contained in:
Chika 2022-04-07 16:36:36 +03:00
parent 09979913e0
commit 1c67b69abe
30 changed files with 642 additions and 71 deletions

View File

@ -8,6 +8,10 @@ public class BaseColumnWithSum : BaseColumn<decimal>
{
}
protected BaseColumnWithSum()
{
}
public decimal Sum
{
get { return Values.Skip(1).Sum(x => x); }

View File

@ -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];

View File

@ -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;
}
}

View File

@ -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();
}

View File

@ -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;
}
}

View File

@ -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)
{
}

View File

@ -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();
}
}

View File

@ -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)
{
}

View File

@ -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();
}
}

View File

@ -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)
{

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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;
}

View File

@ -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)
{
}

View File

@ -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);

View File

@ -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;
}
}

View File

@ -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()

View File

@ -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;
}
}

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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
}
};
}
}
}

View File

@ -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);

View File

@ -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);

View File

@ -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);

View 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
}
};
}
}
}

View File

@ -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);

View File

@ -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)
};