From 7ebdc14a5e0be0da94051a39a9d9490838a31ba6 Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Tue, 20 Feb 2024 13:47:44 +0300 Subject: [PATCH] =?UTF-8?q?Post/SumIRRColumnVT2:=20=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Next/SumIRRColumn/SumIRRColumnVT2.cs | 44 +++++-------------- 1 file changed, 11 insertions(+), 33 deletions(-) diff --git a/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumIRRColumn/SumIRRColumnVT2.cs b/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumIRRColumn/SumIRRColumnVT2.cs index 7f064b6..40bb17a 100644 --- a/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumIRRColumn/SumIRRColumnVT2.cs +++ b/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumIRRColumn/SumIRRColumnVT2.cs @@ -7,6 +7,7 @@ using EvoCalculator.Core.PostCalculation.v1; using EvoCalculator.Core.PostCalculation.v1.Columns.Current; using EvoCalculator.Core.PostCalculation.v1.Columns.Next; using EvoCalculator.Core.Tools.Array; +using EvoCalculator.Core.Tools.GroupColumns; using TridentGoalSeek; using DateTempColumn = EvoCalculator.Core.PostCalculation.v1.Columns.Next.DateTempColumn; @@ -42,35 +43,6 @@ namespace EvoCalculator.Core.PostCalculation.v2.Columns.Next private void FillValues() { - var costInsurances = Array.Empty(); - - if (_nextTableInsurance != null) - { - costInsurances = _nextTableInsurance - .Where(ins => - ins.PeriodNumberInsurance > 1 - && (ins.TypeRiskInsurance is "KASKO" or "OSAGO" or "GAP" or "EvoKASKO") - ) - .OrderBy(x => x.TypeRiskInsurance) - .Select(x => -(x.CostInsurance + x.InsuranceBonusLoss)) - .ToArray(); - } - - - var dateStartPeriodInsurances = Array.Empty(); - - if (_nextTableInsurance != null) - { - dateStartPeriodInsurances = _nextTableInsurance - .Where(ins => - ins.PeriodNumberInsurance > 1 - && (ins.TypeRiskInsurance is "KASKO" or "OSAGO" or "GAP" or "EvoKASKO") - ) - .OrderBy(x => x.TypeRiskInsurance) - .Select(x => x.DateStartPeriodInsurance) - .ToArray(); - } - var lastDateTempValue = _dateTempColumn.Values.Last(); var lastCurrentDateTempValue = _currentDateTempColumn.Values.Last(); var evoKasko = _nextTableInsurance.FirstOrDefault(x => x.TypeRiskInsurance == "EvoKASKO"); @@ -97,8 +69,7 @@ namespace EvoCalculator.Core.PostCalculation.v2.Columns.Next var xnpvDates = Array.Concat( new[] { _dateTempColumn.GetValue(_preparedValues.EditPaymentNumber - 1) }, - _currentDateTempColumn.GetValues(_preparedValues.EditPaymentNumber), - dateStartPeriodInsurances + _currentSumColumn.Dates.Skip(_preparedValues.EditPaymentNumber) ); if (evoKasko != null) @@ -107,6 +78,14 @@ namespace EvoCalculator.Core.PostCalculation.v2.Columns.Next xnpvDates = xnpvDates.Append(evoKaskoDate).ToArray(); } + + var xnpv = GroupColumns.Split( + GroupColumns.Create(xnpvDates, xnpvValues).Where(x => + x.Key >= _dateTempColumn.GetValue(_preparedValues.EditPaymentNumber - 1))); + + xnpvValues = xnpv.Values; + xnpvDates = xnpv.Dates; + var xnpvColumn = new BaseColumnWithXNPV(0, new DateTempColumn(0) { Values = xnpvDates }, _currentSumColumn.IRR) { @@ -115,8 +94,7 @@ namespace EvoCalculator.Core.PostCalculation.v2.Columns.Next Values = Array.Concat( new[] { -xnpvColumn.XNPV }, - _sumColumn.Values.Skip(_preparedValues.EditPaymentNumber), - costInsurances + _sumColumn.Values.Skip(_preparedValues.EditPaymentNumber) ); if (evoKasko != null)