diff --git a/EvoCalculator.Core.Calculation/v3/Columns/SumRepaymentColumn.cs b/EvoCalculator.Core.Calculation/v3/Columns/SumRepaymentColumn.cs new file mode 100644 index 0000000..71aeb11 --- /dev/null +++ b/EvoCalculator.Core.Calculation/v3/Columns/SumRepaymentColumn.cs @@ -0,0 +1,36 @@ +using System; +using EvoCalculator.Core.Base.Columns; +using EvoCalculator.Core.Calculation.v1.Columns; +using EvoCalculator.Core.Models.Calculation.Models.Prepared; +using EvoCalculator.Core.Tools.Check; + +namespace EvoCalculator.Core.Calculation.v3.Columns; + +public class SumRepaymentColumn : BaseColumn +{ + public SumRepaymentColumn(int count) : base(count) + { + } + + public void PostCheck() + { + new CheckTools().CheckColumnForLessThanZeroValue(Values); + } + + public void ComputeValues(Constants.Calculation calculation, PreparedValues preparedValues, + SumCurrentColumn sumCurrentColumn, SumCurrentNegativeColumn sumCurrentNegativeColumn, + SumCurrentInterestColumn sumCurrentInterestColumn, SumCurrentTLMColumn sumCurrentTlmColumn) + { + for (var i = 7; i < Values.Length; i++) + if (preparedValues.DogDate >= new DateTime(2023, 08, 01) + && preparedValues.Nmper >= 40 + && i <= 24) + Values[i] = sumCurrentColumn.Values[i] + sumCurrentNegativeColumn.Values[i] - + sumCurrentTlmColumn.Values[i] * (1 + (decimal)calculation.VatValue); + else + Values[i] = sumCurrentColumn.Values[i] + sumCurrentNegativeColumn.Values[i] - + sumCurrentTlmColumn.Values[i] * (1 + (decimal)calculation.VatValue) - + sumCurrentInterestColumn.Values[i] * (1 + (decimal)calculation.VatValue) * + (decimal)preparedValues.Repayment; + } +} \ No newline at end of file diff --git a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByPI.cs b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByPI.cs index a4a702b..2077239 100644 --- a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByPI.cs +++ b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByPI.cs @@ -20,6 +20,7 @@ using SumCreditColumn = EvoCalculator.Core.Calculation.v3.Columns.SumCreditColum using TaxColumn = EvoCalculator.Core.Calculation.v2.Columns.TaxColumn; using TLM_GrColumn = EvoCalculator.Core.Calculation.v2.Columns.TLM_GrColumn; using ExtraBonusSumColumn = EvoCalculator.Core.Calculation.v3.Columns.ExtraBonusSumColumn; +using SumRepaymentColumn = EvoCalculator.Core.Calculation.v3.Columns.SumRepaymentColumn; namespace EvoCalculator.Core.Calculation.v3.Managers.Calculation; diff --git a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByTotalExpected.cs b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByTotalExpected.cs index cf023d9..381fbc7 100644 --- a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByTotalExpected.cs +++ b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByTotalExpected.cs @@ -21,6 +21,7 @@ using SumCreditColumn = EvoCalculator.Core.Calculation.v3.Columns.SumCreditColum using TaxColumn = EvoCalculator.Core.Calculation.v2.Columns.TaxColumn; using TLM_GrColumn = EvoCalculator.Core.Calculation.v2.Columns.TLM_GrColumn; using ExtraBonusSumColumn = EvoCalculator.Core.Calculation.v3.Columns.ExtraBonusSumColumn; +using SumRepaymentColumn = EvoCalculator.Core.Calculation.v3.Columns.SumRepaymentColumn; namespace EvoCalculator.Core.Calculation.v3.Managers.Calculation; diff --git a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateDefault.cs b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateDefault.cs index 2b0f2dd..277cf6e 100644 --- a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateDefault.cs +++ b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateDefault.cs @@ -21,6 +21,7 @@ using SumCreditColumn = EvoCalculator.Core.Calculation.v3.Columns.SumCreditColum using TaxColumn = EvoCalculator.Core.Calculation.v2.Columns.TaxColumn; using TLM_GrColumn = EvoCalculator.Core.Calculation.v2.Columns.TLM_GrColumn; using ExtraBonusSumColumn = EvoCalculator.Core.Calculation.v3.Columns.ExtraBonusSumColumn; +using SumRepaymentColumn = EvoCalculator.Core.Calculation.v3.Columns.SumRepaymentColumn; namespace EvoCalculator.Core.Calculation.v3.Managers.Calculation; diff --git a/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumRepaymentColumn/BaseSumRepaymentColumn.cs b/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumRepaymentColumn/BaseSumRepaymentColumn.cs new file mode 100644 index 0000000..83b9a34 --- /dev/null +++ b/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumRepaymentColumn/BaseSumRepaymentColumn.cs @@ -0,0 +1,5 @@ +namespace EvoCalculator.Core.PostCalculation.v2.Columns.Next; + +public class BaseSumRepaymentColumn : v1.Columns.Next.BaseSumRepaymentColumn +{ +} \ No newline at end of file diff --git a/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumRepaymentColumn/SumRepaymentColumnVT1.cs b/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumRepaymentColumn/SumRepaymentColumnVT1.cs new file mode 100644 index 0000000..3ea5843 --- /dev/null +++ b/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumRepaymentColumn/SumRepaymentColumnVT1.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using EvoCalculator.Core.Base.Columns; +using EvoCalculator.Core.Models.PostCalculation.Models.Prepared; +using EvoCalculator.Core.Models.PostCalculation.Models.Prepared.PreparedTables; +using EvoCalculator.Core.PostCalculation.v1; +using EvoCalculator.Core.PostCalculation.v1.Columns.Next; +using EvoCalculator.Core.Tools.Array; +using EvoCalculator.Core.Tools.GroupColumns; +using EvoCalculator.Core.Tools.GroupColumns.Models; + +namespace EvoCalculator.Core.PostCalculation.v2.Columns.Next; + +public class SumRepaymentColumnVT1 : BaseSumRepaymentColumn +{ + public void ComputeValues(PreparedValues preparedValues + , TablePaymentsRow[] currentTablePayments + , BaseColumn nextSumCurrentNegativeColumn + , BaseColumn nextSumCurrentColumn + , BaseColumn nextSumCurrentTlmColumn + , BaseColumn nextSumCurrentInterestColumn + , BaseColumn nextSumWithVatColumn + , BaseColumn nextDateTempColumn + , CashflowMSFOForNIColumn nextCashflowMsfoForNiColumn + , Constants.Calculation constants + , NextValues nextValues) + { + var firstPart = currentTablePayments + .Skip(1) + .Take(preparedValues.EditPaymentNumber - 2) + .Select(x => x.RepaymentPayment); + + + var secondPart = GroupColumns.SumToMainGroup( + new SumRules() + , GroupColumns.Create(nextDateTempColumn.GetValues(1), + ArraySegment.Empty) + , GroupColumns.Create(nextDateTempColumn.GetValues(1), nextSumCurrentColumn.GetValues(1)) + , GroupColumns.Create(nextDateTempColumn.GetValues(1), + nextSumCurrentNegativeColumn.GetValues(1).Select(x => -x).ToArray()) + , GroupColumns.Create(nextDateTempColumn.GetValues(1), + nextSumCurrentTlmColumn.GetValues(1) + .Select(x => -x * (1 + (decimal)constants.VatValue))) + , GroupColumns.Create(nextCashflowMsfoForNiColumn.Dates.Skip(1), nextSumCurrentInterestColumn + .GetValues(1) + .Select(x => -x * (1 + (decimal)constants.VatValue) * (decimal)preparedValues.Repayment)) + ); + + + if (preparedValues.DogDate >= new DateTime(2023, 08, 01) + && nextValues.Nmper >= 40) + { + var secondPartWithoutDiscount = GroupColumns.SumToMainGroup( + new SumRules() + , GroupColumns.Create(nextDateTempColumn.GetValues(1), + ArraySegment.Empty) + , GroupColumns.Create(nextDateTempColumn.GetValues(1), nextSumCurrentColumn.GetValues(1)) + , GroupColumns.Create(nextDateTempColumn.GetValues(1), + nextSumCurrentNegativeColumn.GetValues(1).Select(x => -x).ToArray()) + , GroupColumns.Create(nextDateTempColumn.GetValues(1), + nextSumCurrentTlmColumn.GetValues(1) + .Select(x => -x * (1 + (decimal)constants.VatValue))) + ); + + // поправочка на то, что у GroupColumns нет "нулевого" значения + const int THRESHOLD = 1; + + for (var i = 7 - THRESHOLD; i <= 24 - THRESHOLD; i++) + secondPart[i] = secondPartWithoutDiscount[i]; + } + + + Values = Array.Concat( + new[] { 0m, 0 }, + firstPart, + GroupColumns.Split(secondPart.Skip(preparedValues.EditPaymentNumber - 1).SkipLast(1)).Values, + new[] { nextSumWithVatColumn.Values[^1] } + ); + } +} \ No newline at end of file diff --git a/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumRepaymentColumn/SumRepaymentColumnVT2.cs b/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumRepaymentColumn/SumRepaymentColumnVT2.cs new file mode 100644 index 0000000..d10be34 --- /dev/null +++ b/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumRepaymentColumn/SumRepaymentColumnVT2.cs @@ -0,0 +1,5 @@ +namespace EvoCalculator.Core.PostCalculation.v2.Columns.Next; + +public class SumRepaymentColumnVT2 : v1.Columns.Next.SumRepaymentColumnVT2 +{ +} \ No newline at end of file diff --git a/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateByIRRAndSum.cs b/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateByIRRAndSum.cs index 7c98bd9..a3b5106 100644 --- a/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateByIRRAndSum.cs +++ b/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateByIRRAndSum.cs @@ -9,6 +9,7 @@ using EvoCalculator.Core.PostCalculation.v2.Columns.Next; using DateTempColumn = EvoCalculator.Core.PostCalculation.v1.Columns.Next.DateTempColumn; using SumCreditColumn = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumCreditColumn; using SumVATCreditColumn = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumVATCreditColumn; +using SumRepaymentColumnVT1 = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumRepaymentColumnVT1; namespace EvoCalculator.Core.PostCalculation.v2.Managers; @@ -185,10 +186,12 @@ public static partial class CalculateManager var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1); nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn); + nextValues.Nmper = preparedValues.Nmper.Next; + var nextSumRepaymentColumn = new SumRepaymentColumnVT1(); nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn, nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn, - nextDateTempColumn, nextCashflowMSFOForNIColumn, constants); + nextDateTempColumn, nextCashflowMSFOForNIColumn, constants, nextValues); nextSumRepaymentColumn.PostCheck(); var nextCashflowMSFOFinalColumn = new CashflowMSFOFinalColumn(); @@ -204,8 +207,6 @@ public static partial class CalculateManager var nextCreditColumn = new CreditColumn(preparedValues.LoanRatePeriod + 4); nextCreditColumn.ComputeValues(preparedValues, nextSumCreditColumn); - nextValues.Nmper = preparedValues.Nmper.Next; - var nextSumVATCreditColumn = new SumVATCreditColumn(12 + 2); nextSumVATCreditColumn.ComputeValues(preparedValues, nextVATColumn); diff --git a/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateByIRRNoLimit.cs b/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateByIRRNoLimit.cs index 601af24..2283f36 100644 --- a/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateByIRRNoLimit.cs +++ b/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateByIRRNoLimit.cs @@ -8,6 +8,7 @@ using EvoCalculator.Core.PostCalculation.v1.Managers.lib.Helper; using EvoCalculator.Core.PostCalculation.v2.Columns.Next; using DateTempColumn = EvoCalculator.Core.PostCalculation.v1.Columns.Current.DateTempColumn; using SumCreditColumn = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumCreditColumn; +using SumRepaymentColumnVT1 = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumRepaymentColumnVT1; namespace EvoCalculator.Core.PostCalculation.v2.Managers; @@ -141,10 +142,12 @@ public static partial class CalculateManager var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1); nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn); + nextValues.Nmper = preparedValues.Nmper.Next; + var nextSumRepaymentColumn = new SumRepaymentColumnVT1(); nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn, nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn, - nextDateTempColumn, nextCashflowMSFOForNIColumn, constants); + nextDateTempColumn, nextCashflowMSFOForNIColumn, constants, nextValues); nextSumRepaymentColumn.PostCheck(); var nextCashflowMSFOFinalColumn = new CashflowMSFOFinalColumn(); @@ -160,8 +163,6 @@ public static partial class CalculateManager var nextCreditColumn = new CreditColumn(preparedValues.LoanRatePeriod + 4); nextCreditColumn.ComputeValues(preparedValues, nextSumCreditColumn); - nextValues.Nmper = preparedValues.Nmper.Next; - var nextSumVATCreditColumn = new SumVATCreditColumn(12 + 2); nextSumVATCreditColumn.ComputeValues(preparedValues, nextVATColumn); diff --git a/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateByTotalExpected.cs b/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateByTotalExpected.cs index 462af71..ed13991 100644 --- a/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateByTotalExpected.cs +++ b/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateByTotalExpected.cs @@ -6,6 +6,7 @@ using EvoCalculator.Core.PostCalculation.v1.Columns.Next; using EvoCalculator.Core.PostCalculation.v1.Managers.lib.Helper; using EvoCalculator.Core.PostCalculation.v2.Columns.Next; using SumCreditColumn = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumCreditColumn; +using SumRepaymentColumnVT1 = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumRepaymentColumnVT1; namespace EvoCalculator.Core.PostCalculation.v2.Managers; @@ -117,10 +118,12 @@ public static partial class CalculateManager var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1); nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn); + nextValues.Nmper = preparedValues.Nmper.Next; + var nextSumRepaymentColumn = new SumRepaymentColumnVT1(); nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn, nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn, - nextDateTempColumn, nextCashflowMSFOForNIColumn, constants); + nextDateTempColumn, nextCashflowMSFOForNIColumn, constants, nextValues); nextSumRepaymentColumn.PostCheck(); var nextCashflowMSFOFinalColumn = new CashflowMSFOFinalColumn(); @@ -136,8 +139,6 @@ public static partial class CalculateManager var nextCreditColumn = new CreditColumn(preparedValues.LoanRatePeriod + 4); nextCreditColumn.ComputeValues(preparedValues, nextSumCreditColumn); - nextValues.Nmper = preparedValues.Nmper.Next; - var nextSumVATCreditColumn = new SumVATCreditColumn(12 + 2); nextSumVATCreditColumn.ComputeValues(preparedValues, nextVATColumn); diff --git a/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateDefault.cs b/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateDefault.cs index 8064108..795b43c 100644 --- a/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateDefault.cs +++ b/EvoCalculator.Core.PostCalculation/v2/Managers/CalculateDefault.cs @@ -8,6 +8,7 @@ using EvoCalculator.Core.PostCalculation.v1.Managers.lib.Helper; using EvoCalculator.Core.PostCalculation.v2.Columns.Next; using DateTempColumn = EvoCalculator.Core.PostCalculation.v1.Columns.Current.DateTempColumn; using SumCreditColumn = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumCreditColumn; +using SumRepaymentColumnVT1 = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumRepaymentColumnVT1; namespace EvoCalculator.Core.PostCalculation.v2.Managers; @@ -142,10 +143,12 @@ public static partial class CalculateManager var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1); nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn); + nextValues.Nmper = preparedValues.Nmper.Next; + var nextSumRepaymentColumn = new SumRepaymentColumnVT1(); nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn, nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn, - nextDateTempColumn, nextCashflowMSFOForNIColumn, constants); + nextDateTempColumn, nextCashflowMSFOForNIColumn, constants, nextValues); nextSumRepaymentColumn.PostCheck(); var nextCashflowMSFOFinalColumn = new CashflowMSFOFinalColumn(); @@ -161,8 +164,6 @@ public static partial class CalculateManager var nextCreditColumn = new CreditColumn(preparedValues.LoanRatePeriod + 4); nextCreditColumn.ComputeValues(preparedValues, nextSumCreditColumn); - nextValues.Nmper = preparedValues.Nmper.Next; - var nextSumVATCreditColumn = new SumVATCreditColumn(12 + 2); nextSumVATCreditColumn.ComputeValues(preparedValues, nextVATColumn); diff --git a/EvoCalculator.Core.PostCalculation/v2/Managers/ChangingLastPayment.cs b/EvoCalculator.Core.PostCalculation/v2/Managers/ChangingLastPayment.cs index 324e9fe..d0c670c 100644 --- a/EvoCalculator.Core.PostCalculation/v2/Managers/ChangingLastPayment.cs +++ b/EvoCalculator.Core.PostCalculation/v2/Managers/ChangingLastPayment.cs @@ -5,6 +5,7 @@ using EvoCalculator.Core.PostCalculation.v1.Columns.Next; using EvoCalculator.Core.PostCalculation.v1.Managers.lib.Helper; using EvoCalculator.Core.PostCalculation.v2.Columns.Next; using SumCreditColumn = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumCreditColumn; +using SumRepaymentColumnVT2 = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumRepaymentColumnVT2; namespace EvoCalculator.Core.PostCalculation.v2.Managers; @@ -114,6 +115,8 @@ public static partial class CalculateManager var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1); nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn); + nextValues.Nmper = preparedValues.Nmper.Next; + var nextSumRepaymentColumn = new SumRepaymentColumnVT2(); nextSumRepaymentColumn.ComputeValues(currentTablePayments); // nextSumRepaymentColumn.PostCheck(); @@ -131,8 +134,6 @@ public static partial class CalculateManager var nextCreditColumn = new CreditColumn(preparedValues.LoanRatePeriod + 4); nextCreditColumn.ComputeValues(preparedValues, nextSumCreditColumn); - nextValues.Nmper = preparedValues.Nmper.Next; - var nextSumVATCreditColumn = new SumVATCreditColumn(12 + 2); nextSumVATCreditColumn.ComputeValues(preparedValues, nextVATColumn); diff --git a/EvoCalculator.Core.PostCalculation/v2/Managers/EarlyRedemption.cs b/EvoCalculator.Core.PostCalculation/v2/Managers/EarlyRedemption.cs index d5986f1..5f10215 100644 --- a/EvoCalculator.Core.PostCalculation/v2/Managers/EarlyRedemption.cs +++ b/EvoCalculator.Core.PostCalculation/v2/Managers/EarlyRedemption.cs @@ -6,6 +6,7 @@ using EvoCalculator.Core.PostCalculation.v1.Columns.Next; using EvoCalculator.Core.PostCalculation.v1.Managers.lib.Helper; using EvoCalculator.Core.PostCalculation.v2.Columns.Next; using SumCreditColumn = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumCreditColumn; +using SumRepaymentColumnVT1 = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumRepaymentColumnVT1; namespace EvoCalculator.Core.PostCalculation.v2.Managers; @@ -123,7 +124,7 @@ public static partial class CalculateManager techNextSumCurrentNegativeColumn, techNextSumCurrentColumn, techNextSumCurrentTLMColumn, techNextSumCurrentInterestColumn, techNextSumWithVATColumn, - techNextDateTempColumn, techNextCashflowMSFOForNIColumn, constants); + techNextDateTempColumn, techNextCashflowMSFOForNIColumn, constants, nextValues); /* * TECH @@ -223,10 +224,12 @@ public static partial class CalculateManager var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1); nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn); + nextValues.Nmper = preparedValues.Nmper.Next; + var nextSumRepaymentColumn = new SumRepaymentColumnVT1(); nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn, nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn, - nextDateTempColumn, nextCashflowMSFOForNIColumn, constants); + nextDateTempColumn, nextCashflowMSFOForNIColumn, constants, nextValues); nextSumRepaymentColumn.PostCheck(); var nextCashflowMSFOFinalColumn = new CashflowMSFOFinalColumn(); @@ -242,8 +245,6 @@ public static partial class CalculateManager var nextCreditColumn = new CreditColumn(preparedValues.LoanRatePeriod + 4); nextCreditColumn.ComputeValues(preparedValues, nextSumCreditColumn); - nextValues.Nmper = preparedValues.Nmper.Next; - var nextSumVATCreditColumn = new SumVATCreditColumn(12 + 2); nextSumVATCreditColumn.ComputeValues(preparedValues, nextVATColumn); diff --git a/EvoCalculator.Core.PostCalculation/v2/Managers/PERWithChangingTheTerm.cs b/EvoCalculator.Core.PostCalculation/v2/Managers/PERWithChangingTheTerm.cs index 2990c91..a6f211b 100644 --- a/EvoCalculator.Core.PostCalculation/v2/Managers/PERWithChangingTheTerm.cs +++ b/EvoCalculator.Core.PostCalculation/v2/Managers/PERWithChangingTheTerm.cs @@ -8,6 +8,7 @@ using EvoCalculator.Core.PostCalculation.v1.Managers.lib.Helper; using EvoCalculator.Core.PostCalculation.v2.Columns.Next; using DateTempColumn = EvoCalculator.Core.PostCalculation.v1.Columns.Current.DateTempColumn; using SumCreditColumn = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumCreditColumn; +using SumRepaymentColumnVT1 = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumRepaymentColumnVT1; namespace EvoCalculator.Core.PostCalculation.v2.Managers; @@ -192,7 +193,7 @@ public static partial class CalculateManager var nextSumRepaymentColumn = new SumRepaymentColumnVT1(); nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn, nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn, - nextDateTempColumn, nextCashflowMSFOForNIColumn, constants); + nextDateTempColumn, nextCashflowMSFOForNIColumn, constants, nextValues); nextSumRepaymentColumn.PostCheck(); var nextCashflowMSFOFinalColumn = new CashflowMSFOFinalColumn(); diff --git a/EvoCalculator.Core.PostCalculation/v2/Managers/PERWithoutChangingTheTerm.cs b/EvoCalculator.Core.PostCalculation/v2/Managers/PERWithoutChangingTheTerm.cs index 1a6de69..8d3b00e 100644 --- a/EvoCalculator.Core.PostCalculation/v2/Managers/PERWithoutChangingTheTerm.cs +++ b/EvoCalculator.Core.PostCalculation/v2/Managers/PERWithoutChangingTheTerm.cs @@ -8,6 +8,7 @@ using EvoCalculator.Core.PostCalculation.v1.Managers.lib.Helper; using EvoCalculator.Core.PostCalculation.v2.Columns.Next; using DateTempColumn = EvoCalculator.Core.PostCalculation.v1.Columns.Current.DateTempColumn; using SumCreditColumn = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumCreditColumn; +using SumRepaymentColumnVT1 = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumRepaymentColumnVT1; namespace EvoCalculator.Core.PostCalculation.v2.Managers; @@ -151,11 +152,13 @@ public static partial class CalculateManager var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1); nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn); + nextValues.Nmper = preparedValues.Nmper.Next; + var nextSumRepaymentColumn = new SumRepaymentColumnVT1(); nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn, nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn, - nextDateTempColumn, nextCashflowMSFOForNIColumn, constants); + nextDateTempColumn, nextCashflowMSFOForNIColumn, constants, nextValues); nextSumRepaymentColumn.PostCheck(); var nextCashflowMSFOFinalColumn = new CashflowMSFOFinalColumn(); @@ -171,8 +174,6 @@ public static partial class CalculateManager var nextCreditColumn = new CreditColumn(preparedValues.LoanRatePeriod + 4); nextCreditColumn.ComputeValues(preparedValues, nextSumCreditColumn); - nextValues.Nmper = preparedValues.Nmper.Next; - var nextSumVATCreditColumn = new SumVATCreditColumn(12 + 2); nextSumVATCreditColumn.ComputeValues(preparedValues, nextVATColumn); diff --git a/EvoCalculator.Core.PostCalculation/v2/Managers/Suspension.cs b/EvoCalculator.Core.PostCalculation/v2/Managers/Suspension.cs index 78f8800..4e808f3 100644 --- a/EvoCalculator.Core.PostCalculation/v2/Managers/Suspension.cs +++ b/EvoCalculator.Core.PostCalculation/v2/Managers/Suspension.cs @@ -6,6 +6,7 @@ using EvoCalculator.Core.PostCalculation.v1.Columns.Next; using EvoCalculator.Core.PostCalculation.v1.Managers.lib.Helper; using EvoCalculator.Core.PostCalculation.v2.Columns.Next; using SumCreditColumn = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumCreditColumn; +using SumRepaymentColumnVT1 = EvoCalculator.Core.PostCalculation.v2.Columns.Next.SumRepaymentColumnVT1; namespace EvoCalculator.Core.PostCalculation.v2.Managers; @@ -117,10 +118,12 @@ public static partial class CalculateManager var nextSumCurrentTLMColumn = new SumCurrentTLMColumn(preparedValues.Nmper.Next + 1); nextSumCurrentTLMColumn.ComputeValues(nextTlmGrColumn); + nextValues.Nmper = preparedValues.Nmper.Next; + var nextSumRepaymentColumn = new SumRepaymentColumnVT1(); nextSumRepaymentColumn.ComputeValues(preparedValues, currentTablePayments, nextSumCurrentNegativeColumn, nextSumCurrentColumn, nextSumCurrentTLMColumn, nextSumCurrentInterestColumn, nextSumWithVATColumn, - nextDateTempColumn, nextCashflowMSFOForNIColumn, constants); + nextDateTempColumn, nextCashflowMSFOForNIColumn, constants, nextValues); // nextSumRepaymentColumn.PostCheck(); var nextCashflowMSFOFinalColumn = new CashflowMSFOFinalColumn(); @@ -136,8 +139,6 @@ public static partial class CalculateManager var nextCreditColumn = new CreditColumn(preparedValues.LoanRatePeriod + 4); nextCreditColumn.ComputeValues(preparedValues, nextSumCreditColumn); - nextValues.Nmper = preparedValues.Nmper.Next; - var nextSumVATCreditColumn = new SumVATCreditColumn(12 + 2); nextSumVATCreditColumn.ComputeValues(preparedValues, nextVATColumn);