Post/SumIRRColumnVT2: правки
This commit is contained in:
parent
b9ceeb8d61
commit
7ebdc14a5e
@ -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<decimal>();
|
||||
|
||||
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<DateTime>();
|
||||
|
||||
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<DateTime>.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<decimal>.Concat(
|
||||
new[] { -xnpvColumn.XNPV },
|
||||
_sumColumn.Values.Skip(_preparedValues.EditPaymentNumber),
|
||||
costInsurances
|
||||
_sumColumn.Values.Skip(_preparedValues.EditPaymentNumber)
|
||||
);
|
||||
|
||||
if (evoKasko != null)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user