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)