From a2022c3535a0b4089f2049eaced08e82a370f363 Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Mon, 26 Feb 2024 17:41:25 +0300 Subject: [PATCH] Post: fix SumIRRColumnVT2 --- .../Next/SumIRRColumn/SumIRRColumnVT2.cs | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumIRRColumn/SumIRRColumnVT2.cs b/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumIRRColumn/SumIRRColumnVT2.cs index 40bb17a..1a01653 100644 --- a/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumIRRColumn/SumIRRColumnVT2.cs +++ b/EvoCalculator.Core.PostCalculation/v2/Columns/Next/SumIRRColumn/SumIRRColumnVT2.cs @@ -43,6 +43,37 @@ 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.DateStartPeriodInsurance >= _preparedValues.EditPaymentDate.Current + && (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.DateStartPeriodInsurance >= _preparedValues.EditPaymentDate.Current + && (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"); @@ -94,7 +125,8 @@ namespace EvoCalculator.Core.PostCalculation.v2.Columns.Next Values = Array.Concat( new[] { -xnpvColumn.XNPV }, - _sumColumn.Values.Skip(_preparedValues.EditPaymentNumber) + _sumColumn.Values.Skip(_preparedValues.EditPaymentNumber), + costInsurances ); if (evoKasko != null)