DYN-488: досрочка телематики, НСИБ на последнем платеже, и NI от CashflowMSFO
This commit is contained in:
parent
71dd096a11
commit
98f0cd6e2e
@ -9,12 +9,13 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues, BaseColumnWithXIRR cashflowColumn,
|
public void ComputeValues(PreparedValues preparedValues, BaseColumn<decimal> cashflowMSFOColumn,
|
||||||
IRRGrColumn irrGrColumn)
|
IRRGrColumn irrGrColumn)
|
||||||
{
|
{
|
||||||
Values[1] = preparedValues.NiAtInception;
|
Values[1] = -cashflowMSFOColumn.GetValue(0) - cashflowMSFOColumn.GetValue(1);
|
||||||
for (var i = 2; i < Values.Length; i++)
|
for (var i = 2; i < Values.Length; i++)
|
||||||
Values[i] = Values[i - 1] + Values[i - 1] * (decimal)irrGrColumn.Values[i] - cashflowColumn.Values[i];
|
Values[i] = Values[i - 1] + Values[i - 1] * (decimal) irrGrColumn.Values[i] -
|
||||||
|
cashflowMSFOColumn.Values[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -12,8 +12,8 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
public void ComputeValues(PreparedValues preparedValues)
|
public void ComputeValues(PreparedValues preparedValues)
|
||||||
{
|
{
|
||||||
Values[1] = 0;
|
Values[1] = 0;
|
||||||
for (var i = 2; i < Values.Length; i++)
|
for (var i = 2; i < Values.Length - 1; i++)
|
||||||
Values[i] = preparedValues.NsibBrutto / (preparedValues.Nmper - 1);
|
Values[i] = preparedValues.NsibBrutto / (preparedValues.Nmper - 1 - 1);
|
||||||
|
|
||||||
Values[0] = Sum;
|
Values[0] = Sum;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,12 +11,8 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
|
|
||||||
public void ComputeValues(BaseColumn<decimal> tlmGrColumn)
|
public void ComputeValues(BaseColumn<decimal> tlmGrColumn)
|
||||||
{
|
{
|
||||||
const int FIRST_YEAR_NUM = 13;
|
|
||||||
for (var i = 1; i < Values.Length; i++)
|
for (var i = 1; i < Values.Length; i++)
|
||||||
if (i < FIRST_YEAR_NUM)
|
Values[i] = tlmGrColumn.Values.Skip(i + 1).Sum(x => x);
|
||||||
Values[i] = tlmGrColumn.Values.Skip(FIRST_YEAR_NUM).Sum(x => x);
|
|
||||||
else
|
|
||||||
Values[i] = tlmGrColumn.Values.Skip(i + 1).Sum(x => x);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -178,7 +178,7 @@ namespace EvoCalculator.Core.Calculation.v1.Managers.Calculation
|
|||||||
irrGrColumn.ComputeValues(dateTempColumn, cashflowMsfoColumn);
|
irrGrColumn.ComputeValues(dateTempColumn, cashflowMsfoColumn);
|
||||||
|
|
||||||
var niColumn = new NIColumn(preparedValues.Nmper + 1);
|
var niColumn = new NIColumn(preparedValues.Nmper + 1);
|
||||||
niColumn.ComputeValues(preparedValues, cashflowColumn, irrGrColumn);
|
niColumn.ComputeValues(preparedValues, cashflowMsfoColumn, irrGrColumn);
|
||||||
|
|
||||||
var interestColumn = new InterestColumn(preparedValues.Nmper + 1);
|
var interestColumn = new InterestColumn(preparedValues.Nmper + 1);
|
||||||
interestColumn.ComputeValues(irrGrColumn, niColumn);
|
interestColumn.ComputeValues(irrGrColumn, niColumn);
|
||||||
|
|||||||
@ -17,7 +17,7 @@ namespace EvoCalculator.Core.Calculation.v1.Managers.Calculation
|
|||||||
|
|
||||||
var validationErrors = new Validation().ValidatePreparedValues(preparedValues);
|
var validationErrors = new Validation().ValidatePreparedValues(preparedValues);
|
||||||
|
|
||||||
if (validationErrors.Count > 0) return new ManagerResult { Errors = validationErrors };
|
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
||||||
|
|
||||||
var constants = new Constants.Calculation();
|
var constants = new Constants.Calculation();
|
||||||
|
|
||||||
@ -73,7 +73,7 @@ namespace EvoCalculator.Core.Calculation.v1.Managers.Calculation
|
|||||||
|
|
||||||
var nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper + 1);
|
var nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper + 1);
|
||||||
nsibBruttoGrColumn.ComputeValues(preparedValues);
|
nsibBruttoGrColumn.ComputeValues(preparedValues);
|
||||||
|
|
||||||
var sumColumn = new SumColumn(
|
var sumColumn = new SumColumn(
|
||||||
preparedValues.Nmper + 1
|
preparedValues.Nmper + 1
|
||||||
, dateColumn
|
, dateColumn
|
||||||
@ -178,7 +178,7 @@ namespace EvoCalculator.Core.Calculation.v1.Managers.Calculation
|
|||||||
irrGrColumn.ComputeValues(dateTempColumn, cashflowMsfoColumn);
|
irrGrColumn.ComputeValues(dateTempColumn, cashflowMsfoColumn);
|
||||||
|
|
||||||
var niColumn = new NIColumn(preparedValues.Nmper + 1);
|
var niColumn = new NIColumn(preparedValues.Nmper + 1);
|
||||||
niColumn.ComputeValues(preparedValues, cashflowColumn, irrGrColumn);
|
niColumn.ComputeValues(preparedValues, cashflowMsfoColumn, irrGrColumn);
|
||||||
|
|
||||||
var interestColumn = new InterestColumn(preparedValues.Nmper + 1);
|
var interestColumn = new InterestColumn(preparedValues.Nmper + 1);
|
||||||
interestColumn.ComputeValues(irrGrColumn, niColumn);
|
interestColumn.ComputeValues(irrGrColumn, niColumn);
|
||||||
@ -188,7 +188,7 @@ namespace EvoCalculator.Core.Calculation.v1.Managers.Calculation
|
|||||||
nsibBruttoGrColumn, nsibExpensesColumn);
|
nsibBruttoGrColumn, nsibExpensesColumn);
|
||||||
|
|
||||||
if (nsibBruttoGrColumn.Sum != 0)
|
if (nsibBruttoGrColumn.Sum != 0)
|
||||||
cashflowNsibColumn.ComputeValues((decimal)cashflowLeasingColumn.IRR);
|
cashflowNsibColumn.ComputeValues((decimal) cashflowLeasingColumn.IRR);
|
||||||
|
|
||||||
var revenueColumn = new RevenueColumn(preparedValues.Nmper + 1);
|
var revenueColumn = new RevenueColumn(preparedValues.Nmper + 1);
|
||||||
revenueColumn.ComputeValues(nsibBruttoGrColumn, nsibExpensesColumn, cashflowNsibColumn);
|
revenueColumn.ComputeValues(nsibBruttoGrColumn, nsibExpensesColumn, cashflowNsibColumn);
|
||||||
|
|||||||
@ -192,7 +192,7 @@ namespace EvoCalculator.Core.Calculation.v2.Managers.Calculation
|
|||||||
irrGrColumn.ComputeValues(dateTempColumn, cashflowMsfoColumn);
|
irrGrColumn.ComputeValues(dateTempColumn, cashflowMsfoColumn);
|
||||||
|
|
||||||
var niColumn = new NIColumn(preparedValues.Nmper + 1);
|
var niColumn = new NIColumn(preparedValues.Nmper + 1);
|
||||||
niColumn.ComputeValues(preparedValues, cashflowColumn, irrGrColumn);
|
niColumn.ComputeValues(preparedValues, cashflowMsfoColumn, irrGrColumn);
|
||||||
|
|
||||||
var interestColumn = new InterestColumn(preparedValues.Nmper + 1);
|
var interestColumn = new InterestColumn(preparedValues.Nmper + 1);
|
||||||
interestColumn.ComputeValues(irrGrColumn, niColumn);
|
interestColumn.ComputeValues(irrGrColumn, niColumn);
|
||||||
|
|||||||
@ -191,7 +191,7 @@ namespace EvoCalculator.Core.Calculation.v2.Managers.Calculation
|
|||||||
irrGrColumn.ComputeValues(dateTempColumn, cashflowMsfoColumn);
|
irrGrColumn.ComputeValues(dateTempColumn, cashflowMsfoColumn);
|
||||||
|
|
||||||
var niColumn = new NIColumn(preparedValues.Nmper + 1);
|
var niColumn = new NIColumn(preparedValues.Nmper + 1);
|
||||||
niColumn.ComputeValues(preparedValues, cashflowColumn, irrGrColumn);
|
niColumn.ComputeValues(preparedValues, cashflowMsfoColumn, irrGrColumn);
|
||||||
|
|
||||||
var interestColumn = new InterestColumn(preparedValues.Nmper + 1);
|
var interestColumn = new InterestColumn(preparedValues.Nmper + 1);
|
||||||
interestColumn.ComputeValues(irrGrColumn, niColumn);
|
interestColumn.ComputeValues(irrGrColumn, niColumn);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user