diff --git a/EvoCalculator.Core.Calculation/v1/Columns/InterestColumn.cs b/EvoCalculator.Core.Calculation/v1/Columns/InterestColumn.cs index 9c3a2a5..827956c 100644 --- a/EvoCalculator.Core.Calculation/v1/Columns/InterestColumn.cs +++ b/EvoCalculator.Core.Calculation/v1/Columns/InterestColumn.cs @@ -1,5 +1,6 @@ using System.Linq; using EvoCalculator.Core.Base.Columns; +using EvoCalculator.Core.Models.Common.Request; using EvoCalculator.Core.Tools.Errors; namespace EvoCalculator.Core.Calculation.v1.Columns; @@ -10,18 +11,19 @@ public class InterestColumn : BaseColumn { } - public void PostCheck(SumColumn sumColumn) + public void PostCheck(SumColumn sumColumn, Flags flags) { - for (var i = 3; i < Values.Skip(1).ToList().Count; i++) - if (Values[i] > sumColumn.Values[i]) - throw new AppException( - "Невозможно осуществить расчет графика, при заданных параметрах получается низкий лизинговый платеж"); + if (flags?.DISABLE_CHECKS_RESULTS == false) + for (var i = 3; i < Values.Skip(1).ToList().Count; i++) + if (Values[i] > sumColumn.Values[i]) + throw new AppException( + "Невозможно осуществить расчет графика, при заданных параметрах получается низкий лизинговый платеж"); } public void ComputeValues(IRRGrColumn irrGrColumn, NIColumn niColumn) { for (var i = 2; i < Values.Length; i++) - Values[i] = niColumn.Values[i - 1] * (decimal) irrGrColumn.Values[i]; + Values[i] = niColumn.Values[i - 1] * (decimal)irrGrColumn.Values[i]; } } \ No newline at end of file diff --git a/EvoCalculator.Core.Calculation/v1/Columns/SumColumn.cs b/EvoCalculator.Core.Calculation/v1/Columns/SumColumn.cs index cff0733..874a11f 100644 --- a/EvoCalculator.Core.Calculation/v1/Columns/SumColumn.cs +++ b/EvoCalculator.Core.Calculation/v1/Columns/SumColumn.cs @@ -2,6 +2,7 @@ using System.Linq; using EvoCalculator.Core.Base.Columns; using EvoCalculator.Core.Models.Calculation.Models.Prepared; +using EvoCalculator.Core.Models.Common.Request; using EvoCalculator.Core.Tools.Check; using EvoCalculator.Core.Tools.Errors; @@ -29,12 +30,12 @@ public class SumColumn : BaseColumnWithXIRR Values[0] = -_postValues.BaseCost; Values[1] = _preparedValues.FirstPaymentSum; - for (var i = 2; i < Values.Length - 1; i++) Values[i] = x * (decimal) _percentPaymentColumn.Values[i] / 100; + for (var i = 2; i < Values.Length - 1; i++) Values[i] = x * (decimal)_percentPaymentColumn.Values[i] / 100; Values[^1] = _preparedValues.LastPaymentSum; } - public virtual void PostCheck() + public virtual void PostCheck(Flags flags) { new CheckTools().CheckColumnForLessThanZeroValue(Values); @@ -42,9 +43,10 @@ public class SumColumn : BaseColumnWithXIRR throw new AppException( "Первый платеж по графику более 50% от суммы лизинговых платежей. Необходимо уменьшить первый платеж"); - for (var i = 2; i < Values.Length - 1; i++) - if (GetValue(i) < _nsibBruttoGrColumn.GetValue(i)) - throw new AppException( - "Невозможно осуществить расчет графика. При заданных параметрах лизинговый платеж не покрывает расходы по НСИБ. Исключите НСИБ или увеличьте лизинговые платежи"); + if (flags.DISABLE_CHECKS_RESULTS == false) + for (var i = 2; i < Values.Length - 1; i++) + if (GetValue(i) < _nsibBruttoGrColumn.GetValue(i)) + throw new AppException( + "Невозможно осуществить расчет графика. При заданных параметрах лизинговый платеж не покрывает расходы по НСИБ. Исключите НСИБ или увеличьте лизинговые платежи"); } } \ No newline at end of file diff --git a/EvoCalculator.Core.Calculation/v1/Managers/CalculateByTotalExpected.cs b/EvoCalculator.Core.Calculation/v1/Managers/CalculateByTotalExpected.cs index 46e0caf..9676545 100644 --- a/EvoCalculator.Core.Calculation/v1/Managers/CalculateByTotalExpected.cs +++ b/EvoCalculator.Core.Calculation/v1/Managers/CalculateByTotalExpected.cs @@ -13,6 +13,7 @@ public static partial class CalculateManager var preparedValues = requestCalculation.preparedValues; var preparedPayments = requestCalculation.preparedPayments; var additionalData = requestCalculation.additionalData; + var flags = requestCalculation.Flags; new Validation().ValidateRequest(requestCalculation); @@ -78,7 +79,7 @@ public static partial class CalculateManager percentPaymentColumn, postValues); sumWithVatColumn.ComputeValues(Convert.ToDecimal(preparedValues.TotalExpected)); sumWithVatColumn.PostCheck(); - sumColumn.PostCheck(); + sumColumn.PostCheck(flags); var agentComissionExpensesColumn = new AgentComissionExpensesColumn(preparedValues.Nmper + 1); agentComissionExpensesColumn.ComputeValues(preparedValues); @@ -180,7 +181,7 @@ public static partial class CalculateManager var interestColumn = new InterestColumn(preparedValues.Nmper + 1); interestColumn.ComputeValues(irrGrColumn, niColumn); - interestColumn.PostCheck(sumColumn); + interestColumn.PostCheck(sumColumn, flags); var cashflowNsibColumn = new CashflowNSIBColumn(preparedValues.Nmper + 1, dateTempColumn, nsibBruttoGrColumn, nsibExpensesColumn); diff --git a/EvoCalculator.Core.Calculation/v1/Managers/CalculateDefault.cs b/EvoCalculator.Core.Calculation/v1/Managers/CalculateDefault.cs index a4588f6..63b0cec 100644 --- a/EvoCalculator.Core.Calculation/v1/Managers/CalculateDefault.cs +++ b/EvoCalculator.Core.Calculation/v1/Managers/CalculateDefault.cs @@ -13,6 +13,7 @@ public static partial class CalculateManager var preparedValues = requestCalculation.preparedValues; var preparedPayments = requestCalculation.preparedPayments; var additionalData = requestCalculation.additionalData; + var flags = requestCalculation.Flags; new Validation().ValidateRequest(requestCalculation); @@ -84,7 +85,7 @@ public static partial class CalculateManager tlmGrColumn, gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn); cashflowMsfoColumn.ComputeValues(Convert.ToDecimal(preparedValues.IrrExpected)); cashflowMsfoColumn.PostCheck(additionalData); - sumColumn.PostCheck(); + sumColumn.PostCheck(flags); var vatColumn = new VATColumn(preparedValues.Nmper + 1, new Constants.Calculation()); vatColumn.ComputeValues(sumColumn, preparedValues); @@ -179,7 +180,7 @@ public static partial class CalculateManager var interestColumn = new InterestColumn(preparedValues.Nmper + 1); interestColumn.ComputeValues(irrGrColumn, niColumn); - interestColumn.PostCheck(sumColumn); + interestColumn.PostCheck(sumColumn, flags); var cashflowNsibColumn = new CashflowNSIBColumn(preparedValues.Nmper + 1, dateTempColumn, nsibBruttoGrColumn, nsibExpensesColumn); diff --git a/EvoCalculator.Core.Calculation/v2/Columns/SumColumn.cs b/EvoCalculator.Core.Calculation/v2/Columns/SumColumn.cs index 50dfabc..a8aa235 100644 --- a/EvoCalculator.Core.Calculation/v2/Columns/SumColumn.cs +++ b/EvoCalculator.Core.Calculation/v2/Columns/SumColumn.cs @@ -28,7 +28,7 @@ public class SumColumn : v1.Columns.SumColumn public void PostCheck(Flags flags) { - base.PostCheck(); + base.PostCheck(flags); if (flags?.DISABLE_CHECKS_RESULTS == false) if (_preparedValues.LastPaymentFix == false && Values[^1] / _preparedValues.PlPrice < 0.01m) diff --git a/EvoCalculator.Core.Calculation/v2/Managers/Calculation/CalculateByTotalExpected.cs b/EvoCalculator.Core.Calculation/v2/Managers/Calculation/CalculateByTotalExpected.cs index 01d1366..30712e0 100644 --- a/EvoCalculator.Core.Calculation/v2/Managers/Calculation/CalculateByTotalExpected.cs +++ b/EvoCalculator.Core.Calculation/v2/Managers/Calculation/CalculateByTotalExpected.cs @@ -195,7 +195,7 @@ public static partial class CalculateManager var interestColumn = new InterestColumn(preparedValues.Nmper + 1); interestColumn.ComputeValues(irrGrColumn, niColumn); - interestColumn.PostCheck(sumColumn); + interestColumn.PostCheck(sumColumn, flags); var cashflowNsibColumn = new CashflowNSIBColumn(preparedValues.Nmper + 1, dateTempColumn, nsibBruttoGrColumn, nsibExpensesColumn); diff --git a/EvoCalculator.Core.Calculation/v2/Managers/Calculation/CalculateDefault.cs b/EvoCalculator.Core.Calculation/v2/Managers/Calculation/CalculateDefault.cs index d445fa6..fd5c5c7 100644 --- a/EvoCalculator.Core.Calculation/v2/Managers/Calculation/CalculateDefault.cs +++ b/EvoCalculator.Core.Calculation/v2/Managers/Calculation/CalculateDefault.cs @@ -194,7 +194,7 @@ public static partial class CalculateManager var interestColumn = new InterestColumn(preparedValues.Nmper + 1); interestColumn.ComputeValues(irrGrColumn, niColumn); - interestColumn.PostCheck(sumColumn); + interestColumn.PostCheck(sumColumn, flags); var cashflowNsibColumn = new CashflowNSIBColumn(preparedValues.Nmper + 1, dateTempColumn, nsibBruttoGrColumn, nsibExpensesColumn); diff --git a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByPI.cs b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByPI.cs index 53f81da..bb0c6ad 100644 --- a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByPI.cs +++ b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByPI.cs @@ -240,7 +240,7 @@ public static partial class CalculateManager var interestColumn = new InterestColumn(preparedValues.Nmper + 1); interestColumn.ComputeValues(irrGrColumn, niColumn); - interestColumn.PostCheck(sumColumn); + interestColumn.PostCheck(sumColumn, flags); var cashflowNsibColumn = new CashflowNSIBColumn(preparedValues.Nmper + 1, dateTempColumn, nsibBruttoGrColumn, nsibExpensesColumn); diff --git a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByTotalExpected.cs b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByTotalExpected.cs index 54806ce..4d2317c 100644 --- a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByTotalExpected.cs +++ b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByTotalExpected.cs @@ -212,7 +212,7 @@ public static partial class CalculateManager var interestColumn = new InterestColumn(preparedValues.Nmper + 1); interestColumn.ComputeValues(irrGrColumn, niColumn); - interestColumn.PostCheck(sumColumn); + interestColumn.PostCheck(sumColumn, flags); var cashflowNsibColumn = new CashflowNSIBColumn(preparedValues.Nmper + 1, dateTempColumn, nsibBruttoGrColumn, nsibExpensesColumn); diff --git a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateDefault.cs b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateDefault.cs index 39ee47b..c91d79f 100644 --- a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateDefault.cs +++ b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateDefault.cs @@ -211,7 +211,7 @@ public static partial class CalculateManager var interestColumn = new InterestColumn(preparedValues.Nmper + 1); interestColumn.ComputeValues(irrGrColumn, niColumn); - interestColumn.PostCheck(sumColumn); + interestColumn.PostCheck(sumColumn, flags); var cashflowNsibColumn = new CashflowNSIBColumn(preparedValues.Nmper + 1, dateTempColumn, nsibBruttoGrColumn, nsibExpensesColumn); diff --git a/EvoCalculator.Core/EvoCalculator.Core.csproj b/EvoCalculator.Core/EvoCalculator.Core.csproj index 9172233..37b8a73 100644 --- a/EvoCalculator.Core/EvoCalculator.Core.csproj +++ b/EvoCalculator.Core/EvoCalculator.Core.csproj @@ -2,7 +2,7 @@ default - net6.0 + net8.0 diff --git a/EvoCalculator.Core/Properties/launchSettings.json b/EvoCalculator.Core/Properties/launchSettings.json index 6191c04..58c5aa7 100644 --- a/EvoCalculator.Core/Properties/launchSettings.json +++ b/EvoCalculator.Core/Properties/launchSettings.json @@ -27,7 +27,7 @@ "calculation_v2_date": "2021-09-02", "calculation_v3_date": "2022-03-30", "post_calculation_v2_date": "2022-04-14", - "calculation_irr": "0.21" + "calculation_irr": "0.24" } } }