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.Current;
|
||||||
using EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
using EvoCalculator.Core.PostCalculation.v1.Columns.Next;
|
||||||
using EvoCalculator.Core.Tools.Array;
|
using EvoCalculator.Core.Tools.Array;
|
||||||
|
using EvoCalculator.Core.Tools.GroupColumns;
|
||||||
using TridentGoalSeek;
|
using TridentGoalSeek;
|
||||||
using DateTempColumn = EvoCalculator.Core.PostCalculation.v1.Columns.Next.DateTempColumn;
|
using DateTempColumn = EvoCalculator.Core.PostCalculation.v1.Columns.Next.DateTempColumn;
|
||||||
|
|
||||||
@ -42,35 +43,6 @@ namespace EvoCalculator.Core.PostCalculation.v2.Columns.Next
|
|||||||
|
|
||||||
private void FillValues()
|
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 lastDateTempValue = _dateTempColumn.Values.Last();
|
||||||
var lastCurrentDateTempValue = _currentDateTempColumn.Values.Last();
|
var lastCurrentDateTempValue = _currentDateTempColumn.Values.Last();
|
||||||
var evoKasko = _nextTableInsurance.FirstOrDefault(x => x.TypeRiskInsurance == "EvoKASKO");
|
var evoKasko = _nextTableInsurance.FirstOrDefault(x => x.TypeRiskInsurance == "EvoKASKO");
|
||||||
@ -97,8 +69,7 @@ namespace EvoCalculator.Core.PostCalculation.v2.Columns.Next
|
|||||||
|
|
||||||
var xnpvDates = Array<DateTime>.Concat(
|
var xnpvDates = Array<DateTime>.Concat(
|
||||||
new[] { _dateTempColumn.GetValue(_preparedValues.EditPaymentNumber - 1) },
|
new[] { _dateTempColumn.GetValue(_preparedValues.EditPaymentNumber - 1) },
|
||||||
_currentDateTempColumn.GetValues(_preparedValues.EditPaymentNumber),
|
_currentSumColumn.Dates.Skip(_preparedValues.EditPaymentNumber)
|
||||||
dateStartPeriodInsurances
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if (evoKasko != null)
|
if (evoKasko != null)
|
||||||
@ -107,6 +78,14 @@ namespace EvoCalculator.Core.PostCalculation.v2.Columns.Next
|
|||||||
xnpvDates = xnpvDates.Append(evoKaskoDate).ToArray();
|
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 =
|
var xnpvColumn =
|
||||||
new BaseColumnWithXNPV(0, new DateTempColumn(0) { Values = xnpvDates }, _currentSumColumn.IRR)
|
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(
|
Values = Array<decimal>.Concat(
|
||||||
new[] { -xnpvColumn.XNPV },
|
new[] { -xnpvColumn.XNPV },
|
||||||
_sumColumn.Values.Skip(_preparedValues.EditPaymentNumber),
|
_sumColumn.Values.Skip(_preparedValues.EditPaymentNumber)
|
||||||
costInsurances
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if (evoKasko != null)
|
if (evoKasko != null)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user