diff --git a/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOColumn/BaseCashflowMSFOColumn.cs b/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOColumn/BaseCashflowMSFOColumn.cs index c983bd4..1196567 100644 --- a/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOColumn/BaseCashflowMSFOColumn.cs +++ b/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOColumn/BaseCashflowMSFOColumn.cs @@ -53,14 +53,14 @@ public class BaseCashflowMSFOColumn : BaseColumnWithNominal public void PostCheck(AdditionalData additionalData) { - if (additionalData != null) + if (_preparedValues.PaymentDateNew == null) { - if (additionalData.MinCashflowMSFONominal != null) + if (additionalData?.MinCashflowMSFONominal != null) if (Nominal < additionalData.MinCashflowMSFONominal / 100) throw new Exception( $"Невозможно осуществить расчет графика, при заданных параметрах IRR {Math.Round(Nominal * 100, 2)} меньше мин. IRR по данному продукту: {additionalData.MinCashflowMSFONominal}"); - if (additionalData.MaxCashflowMSFONominal != null) + if (additionalData?.MaxCashflowMSFONominal != null) if (Nominal >= additionalData.MaxCashflowMSFONominal / 100) throw new Exception( $"Невозможно осуществить расчет графика, при заданных параметрах IRR {Math.Round(Nominal * 100, 2)} больше макс. IRR по данному продукту: {additionalData.MaxCashflowMSFONominal}"); diff --git a/EvoCalculator.Core.Calculation/v2/Columns/CashflowMSFOColumn/BaseCashflowMSFOColumn.cs b/EvoCalculator.Core.Calculation/v2/Columns/CashflowMSFOColumn/BaseCashflowMSFOColumn.cs index 743cb4d..7dc2dee 100644 --- a/EvoCalculator.Core.Calculation/v2/Columns/CashflowMSFOColumn/BaseCashflowMSFOColumn.cs +++ b/EvoCalculator.Core.Calculation/v2/Columns/CashflowMSFOColumn/BaseCashflowMSFOColumn.cs @@ -3,6 +3,7 @@ using EvoCalculator.Core.Base.Columns; using EvoCalculator.Core.Calculation.v1.Columns; using EvoCalculator.Core.Models.Calculation.Models; using EvoCalculator.Core.Models.Calculation.Models.Prepared; +using EvoCalculator.Core.Models.Common.Request; namespace EvoCalculator.Core.Calculation.v2.Columns; @@ -39,12 +40,12 @@ public class BaseCashflowMSFOColumn : v1.Columns.BaseCashflowMSFOColumn + _subsidyExpensesColumn.Values[i]; } - public void PostCheck(AdditionalData additionalData, Constants.Calculation constants) + public void PostCheck(AdditionalData additionalData, Constants.Calculation constants, Flags flags) { base.PostCheck(additionalData); - - if (_preparedValues.PaymentDateNew != null && - this.Nominal < (_preparedValues.IRR_MSFO_Plan - constants.DeltaIRR)) + + if (flags.DISABLE_CHECKS_RESULTS == false && _preparedValues.PaymentDateNew != null && + this.Nominal < ((additionalData.MinCashflowMSFONominal / 100) - constants.DeltaIRR)) { throw new Exception( "По итогам результата расчета данное изменение графика влечет к убыточности сделки. Скорректируйте вносимые изменения либо получите согласование с адреса calculator@evoleasing.ru"); diff --git a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByTotalExpected.cs b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByTotalExpected.cs index b39b7e7..73379ed 100644 --- a/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByTotalExpected.cs +++ b/EvoCalculator.Core.Calculation/v3/Managers/Calculation/CalculateByTotalExpected.cs @@ -116,7 +116,7 @@ public static partial class CalculateManager tlmGrColumn, gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn, subsidyExpensesColumn); cashflowMsfoColumn.ComputeValues(); - cashflowMsfoColumn.PostCheck(additionalData, constants); + cashflowMsfoColumn.PostCheck(additionalData, constants,requestCalculation.Flags); var vatColumn = new VATColumn(preparedValues.Nmper + 1); vatColumn.ComputeValues(new Constants.Calculation(), sumColumn, preparedValues); diff --git a/EvoCalculator.Core.Constants/Calculation.cs b/EvoCalculator.Core.Constants/Calculation.cs index fbfdd57..c3be457 100644 --- a/EvoCalculator.Core.Constants/Calculation.cs +++ b/EvoCalculator.Core.Constants/Calculation.cs @@ -12,5 +12,5 @@ public class Calculation public int MaxOnePolicePeriod = 16; public double VatValue = 0.2; public decimal MinBonus = 100; - public double DeltaIRR = 0.05; + public double DeltaIRR = 0.02; } \ No newline at end of file diff --git a/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs b/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs index 8297faa..2a657a7 100644 --- a/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs +++ b/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs @@ -1,5 +1,6 @@ #nullable enable using EvoCalculator.Core.Models.Calculation.Models.Prepared; +using EvoCalculator.Core.Models.Common.Request; namespace EvoCalculator.Core.Models.Calculation.Models.Request; @@ -8,4 +9,6 @@ public class RequestCalculation public PreparedValues preparedValues { get; set; } public PreparedPayments preparedPayments { get; set; } public AdditionalData? additionalData { get; set; } + + public Flags? Flags { get; set; } } \ No newline at end of file diff --git a/EvoCalculator.Core.Models/PostCalculation/Models/Request/Flags.cs b/EvoCalculator.Core.Models/Common/Request/Flags.cs similarity index 51% rename from EvoCalculator.Core.Models/PostCalculation/Models/Request/Flags.cs rename to EvoCalculator.Core.Models/Common/Request/Flags.cs index 5a23b2e..c7b863a 100644 --- a/EvoCalculator.Core.Models/PostCalculation/Models/Request/Flags.cs +++ b/EvoCalculator.Core.Models/Common/Request/Flags.cs @@ -1,4 +1,4 @@ -namespace EvoCalculator.Core.Models.PostCalculation.Models.Request; +namespace EvoCalculator.Core.Models.Common.Request; public class Flags { diff --git a/EvoCalculator.Core.Models/PostCalculation/Models/Request/RequestCalculation.cs b/EvoCalculator.Core.Models/PostCalculation/Models/Request/RequestCalculation.cs index b33ca4b..da0298e 100644 --- a/EvoCalculator.Core.Models/PostCalculation/Models/Request/RequestCalculation.cs +++ b/EvoCalculator.Core.Models/PostCalculation/Models/Request/RequestCalculation.cs @@ -1,6 +1,7 @@ #nullable enable using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using EvoCalculator.Core.Models.Common.Request; using EvoCalculator.Core.Models.PostCalculation.Models.Prepared; using EvoCalculator.Core.Models.PostCalculation.Models.Prepared.lib; using EvoCalculator.Core.Models.PostCalculation.Models.Prepared.PreparedTables;