merge release/nsib-credit-v2
This commit is contained in:
parent
094f752a32
commit
fb7941ea2e
27
Dockerfile
27
Dockerfile
@ -1,14 +1,19 @@
|
|||||||
# Stage 1
|
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
|
||||||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
|
|
||||||
WORKDIR /build
|
|
||||||
COPY . .
|
|
||||||
RUN dotnet restore
|
|
||||||
RUN dotnet publish -c Release -o /app
|
|
||||||
# Stage 2
|
|
||||||
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS final
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY --from=build /app .
|
|
||||||
|
|
||||||
EXPOSE 5000
|
EXPOSE 5000
|
||||||
|
|
||||||
ENTRYPOINT ["dotnet", "EvoCalculator.Core.dll"]
|
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
|
||||||
|
WORKDIR /src
|
||||||
|
COPY ["EvoCalculator.Core/EvoCalculator.Core.csproj", "EvoCalculator.Core/"]
|
||||||
|
RUN dotnet restore "EvoCalculator.Core/EvoCalculator.Core.csproj"
|
||||||
|
COPY . .
|
||||||
|
WORKDIR "/src/EvoCalculator.Core"
|
||||||
|
RUN dotnet build "EvoCalculator.Core.csproj" -c Release -o /app/build
|
||||||
|
|
||||||
|
FROM build AS publish
|
||||||
|
RUN dotnet publish "EvoCalculator.Core.csproj" -c Release -o /app/publish
|
||||||
|
|
||||||
|
FROM base AS final
|
||||||
|
WORKDIR /app
|
||||||
|
COPY --from=publish /app/publish .
|
||||||
|
ENTRYPOINT ["dotnet", "EvoCalculator.Core.dll"]
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Base.Columns
|
||||||
{
|
{
|
||||||
public abstract class BaseColumn<T>
|
public abstract class BaseColumn<T>
|
||||||
{
|
{
|
||||||
@ -13,12 +13,9 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
|
|
||||||
public T GetValue(int i)
|
public T GetValue(int i)
|
||||||
{
|
{
|
||||||
if (i < Values.Length)
|
if (i < Values.Length) return Values[i];
|
||||||
{
|
|
||||||
return Values[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
return (T) Convert.ChangeType(0.0, typeof(T));
|
return (T)Convert.ChangeType(0.0, typeof(T));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
11
EvoCalculator.Core.Base/Columns/BaseColumnForGoalSeek.cs
Normal file
11
EvoCalculator.Core.Base/Columns/BaseColumnForGoalSeek.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
namespace EvoCalculator.Core.Base.Columns
|
||||||
|
{
|
||||||
|
public abstract class BaseColumnForGoalSeek<T> : BaseColumn<T>
|
||||||
|
{
|
||||||
|
protected BaseColumnForGoalSeek(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void ComputeValues(T x);
|
||||||
|
}
|
||||||
|
}
|
||||||
13
EvoCalculator.Core.Base/Columns/BaseColumnWithNominal.cs
Normal file
13
EvoCalculator.Core.Base/Columns/BaseColumnWithNominal.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Base.Columns
|
||||||
|
{
|
||||||
|
public class BaseColumnWithNominal : BaseColumnWithXIRR
|
||||||
|
{
|
||||||
|
protected BaseColumnWithNominal(int count, BaseColumn<DateTime> dateTempColumn) : base(count, dateTempColumn)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public double Nominal => (Math.Pow(IRR + 1, (double)1 / 12) - 1) * 12;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Base.Columns
|
||||||
{
|
{
|
||||||
public class BaseColumnWithSum : BaseColumn<decimal>
|
public class BaseColumnWithSum : BaseColumn<decimal>
|
||||||
{
|
{
|
||||||
@ -2,11 +2,11 @@
|
|||||||
using EvoCalculator.Core.FinanceFormulas;
|
using EvoCalculator.Core.FinanceFormulas;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models;
|
using EvoCalculator.Core.Models.Calculation.Models;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Base.Columns
|
||||||
{
|
{
|
||||||
public class BaseColumnWithXIRR : BaseColumn<decimal>
|
public class BaseColumnWithXIRR : BaseColumn<decimal>
|
||||||
{
|
{
|
||||||
public BaseColumnWithXIRR(int count, DateTempColumn dateTempColumn) : base(count)
|
public BaseColumnWithXIRR(int count, BaseColumn<DateTime> dateTempColumn) : base(count)
|
||||||
{
|
{
|
||||||
Dates = dateTempColumn.Values;
|
Dates = dateTempColumn.Values;
|
||||||
}
|
}
|
||||||
@ -2,13 +2,13 @@
|
|||||||
using EvoCalculator.Core.FinanceFormulas;
|
using EvoCalculator.Core.FinanceFormulas;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models;
|
using EvoCalculator.Core.Models.Calculation.Models;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Base.Columns
|
||||||
{
|
{
|
||||||
public class BaseColumnWithXNPV : BaseColumn<decimal>
|
public class BaseColumnWithXNPV : BaseColumn<decimal>
|
||||||
{
|
{
|
||||||
private readonly double rate;
|
private readonly double rate;
|
||||||
|
|
||||||
public BaseColumnWithXNPV(int count, DateTempColumn dateTempColumn, double rate) : base(count)
|
public BaseColumnWithXNPV(int count, BaseColumn<DateTime> dateTempColumn, double rate) : base(count)
|
||||||
{
|
{
|
||||||
Dates = dateTempColumn.Values;
|
Dates = dateTempColumn.Values;
|
||||||
this.rate = rate;
|
this.rate = rate;
|
||||||
13
EvoCalculator.Core.Base/EvoCalculator.Core.Base.csproj
Normal file
13
EvoCalculator.Core.Base/EvoCalculator.Core.Base.csproj
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net5.0</TargetFramework>
|
||||||
|
<LangVersion>default</LangVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\EvoCalculator.Core.FinanceFormulas\EvoCalculator.Core.FinanceFormulas.csproj" />
|
||||||
|
<ProjectReference Include="..\EvoCalculator.Core.Models\EvoCalculator.Core.Models.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@ -1,4 +1,4 @@
|
|||||||
namespace EvoCalculator.Core.Calculation.v1.Post
|
namespace EvoCalculator.Core.Base.PostValues
|
||||||
{
|
{
|
||||||
public class BasePostValue<T>
|
public class BasePostValue<T>
|
||||||
{
|
{
|
||||||
@ -1,16 +1,19 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
<TargetFramework>net5.0</TargetFramework>
|
||||||
|
<LangVersion>default</LangVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\EvoCalculator.Core.FinanceFormulas\EvoCalculator.Core.FinanceFormulas.csproj" />
|
<ProjectReference Include="..\EvoCalculator.Core.Base\EvoCalculator.Core.Base.csproj" />
|
||||||
<ProjectReference Include="..\EvoCalculator.Core.Models\EvoCalculator.Core.Models.csproj" />
|
<ProjectReference Include="..\EvoCalculator.Core.FinanceFormulas\EvoCalculator.Core.FinanceFormulas.csproj" />
|
||||||
|
<ProjectReference Include="..\EvoCalculator.Core.Models\EvoCalculator.Core.Models.csproj" />
|
||||||
|
<ProjectReference Include="..\EvoCalculator.Core.Tools\EvoCalculator.Core.Tools.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
public class AcceptInsuranceColumn : BaseColumnWithSum
|
public class AcceptInsuranceColumn : BaseColumnWithSum
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,13 +0,0 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
|
||||||
{
|
|
||||||
public class BaseColumnWithNominal : BaseColumnWithXIRR
|
|
||||||
{
|
|
||||||
protected BaseColumnWithNominal(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public double Nominal => (Math.Pow(IRR + 1, (double) 1 / 12) - 1) * 12;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using EvoCalculator.Core.Calculation.v1.Post;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models;
|
using EvoCalculator.Core.Models.Calculation.Models;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
@ -7,18 +7,36 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
public class BaseCashflowMSFOColumn : BaseColumnWithNominal
|
public class BaseCashflowMSFOColumn : BaseColumnWithNominal
|
||||||
{
|
{
|
||||||
protected readonly PostValues _postValues;
|
|
||||||
protected readonly PreparedValues _preparedValues;
|
|
||||||
protected readonly PercentPaymentColumn _percentPaymentColumn;
|
|
||||||
protected SumColumn _sumColumn;
|
|
||||||
protected readonly NegativeCashflowColumn _negativeCashflowColumn;
|
|
||||||
protected readonly NSIBBruttoGrColumn _nsibBruttoGrColumn;
|
|
||||||
protected readonly TLM_GrColumn _tlmGrColumn;
|
|
||||||
protected readonly GPS_GrColumn _gpsGrColumn;
|
|
||||||
protected readonly NPVBonusExpensesColumn _npvBonusExpensesColumn;
|
|
||||||
protected readonly AgentComissionExpensesColumn _agentComissionExpensesColumn;
|
protected readonly AgentComissionExpensesColumn _agentComissionExpensesColumn;
|
||||||
|
protected readonly BaseColumn<decimal> _gpsGrColumn;
|
||||||
|
protected readonly NegativeCashflowColumn _negativeCashflowColumn;
|
||||||
|
protected readonly BaseColumnWithSum _npvBonusExpensesColumn;
|
||||||
|
protected readonly NSIBBruttoGrColumn _nsibBruttoGrColumn;
|
||||||
|
protected readonly PercentPaymentColumn _percentPaymentColumn;
|
||||||
|
protected readonly PostValues.PostValues _postValues;
|
||||||
|
protected readonly PreparedValues _preparedValues;
|
||||||
|
protected readonly BaseColumn<decimal> _tlmGrColumn;
|
||||||
|
protected SumColumn _sumColumn;
|
||||||
|
|
||||||
protected void FillValues()
|
public BaseCashflowMSFOColumn(int count, DateTempColumn dateTempColumn, PostValues.PostValues postValues,
|
||||||
|
PreparedValues preparedValues, PercentPaymentColumn percentPaymentColumn, SumColumn sumColumn,
|
||||||
|
NegativeCashflowColumn negativeCashflowColumn, NSIBBruttoGrColumn nsibBruttoGrColumn,
|
||||||
|
BaseColumn<decimal> tlmGrColumn, BaseColumn<decimal> gpsGrColumn, BaseColumnWithSum npvBonusExpensesColumn,
|
||||||
|
AgentComissionExpensesColumn agentComissionExpensesColumn) : base(count, dateTempColumn)
|
||||||
|
{
|
||||||
|
_postValues = postValues;
|
||||||
|
_preparedValues = preparedValues;
|
||||||
|
_percentPaymentColumn = percentPaymentColumn;
|
||||||
|
_sumColumn = sumColumn;
|
||||||
|
_negativeCashflowColumn = negativeCashflowColumn;
|
||||||
|
_nsibBruttoGrColumn = nsibBruttoGrColumn;
|
||||||
|
_tlmGrColumn = tlmGrColumn;
|
||||||
|
_gpsGrColumn = gpsGrColumn;
|
||||||
|
_npvBonusExpensesColumn = npvBonusExpensesColumn;
|
||||||
|
_agentComissionExpensesColumn = agentComissionExpensesColumn;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void FillValues()
|
||||||
{
|
{
|
||||||
Values[0] = -_preparedValues.AcquisitionExpenses;
|
Values[0] = -_preparedValues.AcquisitionExpenses;
|
||||||
Values[1] = _sumColumn.Values[1] + _npvBonusExpensesColumn.Values[1] +
|
Values[1] = _sumColumn.Values[1] + _npvBonusExpensesColumn.Values[1] +
|
||||||
@ -39,36 +57,14 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
if (additionalData.MinCashflowMSFONominal != null)
|
if (additionalData.MinCashflowMSFONominal != null)
|
||||||
if (Nominal < additionalData.MinCashflowMSFONominal / 100)
|
if (Nominal < additionalData.MinCashflowMSFONominal / 100)
|
||||||
{
|
|
||||||
throw new Exception(
|
throw new Exception(
|
||||||
$"Невозможно осуществить расчет графика, при заданных параметрах IRR {Math.Round(Nominal * 100, 2)} меньше мин. IRR по данному продукту: {additionalData.MinCashflowMSFONominal}");
|
$"Невозможно осуществить расчет графика, при заданных параметрах IRR {Math.Round(Nominal * 100, 2)} меньше мин. IRR по данному продукту: {additionalData.MinCashflowMSFONominal}");
|
||||||
}
|
|
||||||
|
|
||||||
if (additionalData.MaxCashflowMSFONominal != null)
|
if (additionalData.MaxCashflowMSFONominal != null)
|
||||||
if (Nominal >= additionalData.MaxCashflowMSFONominal / 100)
|
if (Nominal >= additionalData.MaxCashflowMSFONominal / 100)
|
||||||
{
|
|
||||||
throw new Exception(
|
throw new Exception(
|
||||||
$"Невозможно осуществить расчет графика, при заданных параметрах IRR {Math.Round(Nominal * 100, 2)} больше макс. IRR по данному продукту: {additionalData.MaxCashflowMSFONominal}");
|
$"Невозможно осуществить расчет графика, при заданных параметрах IRR {Math.Round(Nominal * 100, 2)} больше макс. IRR по данному продукту: {additionalData.MaxCashflowMSFONominal}");
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public BaseCashflowMSFOColumn(int count, DateTempColumn dateTempColumn, PostValues postValues,
|
|
||||||
PreparedValues preparedValues, PercentPaymentColumn percentPaymentColumn, SumColumn sumColumn,
|
|
||||||
NegativeCashflowColumn negativeCashflowColumn, NSIBBruttoGrColumn nsibBruttoGrColumn,
|
|
||||||
TLM_GrColumn tlmGrColumn, GPS_GrColumn gpsGrColumn, NPVBonusExpensesColumn npvBonusExpensesColumn,
|
|
||||||
AgentComissionExpensesColumn agentComissionExpensesColumn) : base(count, dateTempColumn)
|
|
||||||
{
|
|
||||||
_postValues = postValues;
|
|
||||||
_preparedValues = preparedValues;
|
|
||||||
_percentPaymentColumn = percentPaymentColumn;
|
|
||||||
_sumColumn = sumColumn;
|
|
||||||
_negativeCashflowColumn = negativeCashflowColumn;
|
|
||||||
_nsibBruttoGrColumn = nsibBruttoGrColumn;
|
|
||||||
_tlmGrColumn = tlmGrColumn;
|
|
||||||
_gpsGrColumn = gpsGrColumn;
|
|
||||||
_npvBonusExpensesColumn = npvBonusExpensesColumn;
|
|
||||||
_agentComissionExpensesColumn = agentComissionExpensesColumn;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using EvoCalculator.Core.Calculation.v1.Post;
|
|
||||||
using EvoCalculator.Core.Models.Calculation.Interfaces.Columns;
|
using EvoCalculator.Core.Models.Calculation.Interfaces.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
using TridentGoalSeek;
|
using TridentGoalSeek;
|
||||||
@ -9,6 +8,16 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
public class CashflowMSFOColumnVT1 : BaseCashflowMSFOColumn, IColumnWithGoalSeek
|
public class CashflowMSFOColumnVT1 : BaseCashflowMSFOColumn, IColumnWithGoalSeek
|
||||||
{
|
{
|
||||||
|
public CashflowMSFOColumnVT1(int count, DateTempColumn dateTempColumn, PostValues.PostValues postValues,
|
||||||
|
PreparedValues preparedValues, PercentPaymentColumn percentPaymentColumn, SumColumn sumColumn,
|
||||||
|
NegativeCashflowColumn negativeCashflowColumn, NSIBBruttoGrColumn nsibBruttoGrColumn,
|
||||||
|
TLM_GrColumn tlmGrColumn, GPS_GrColumn gpsGrColumn, NPVBonusExpensesColumn npvBonusExpensesColumn,
|
||||||
|
AgentComissionExpensesColumn agentComissionExpensesColumn) : base(count, dateTempColumn, postValues,
|
||||||
|
preparedValues, percentPaymentColumn, sumColumn, negativeCashflowColumn, nsibBruttoGrColumn, tlmGrColumn,
|
||||||
|
gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public decimal Calculate(decimal inputVariable)
|
public decimal Calculate(decimal inputVariable)
|
||||||
{
|
{
|
||||||
_sumColumn.ComputeValues(inputVariable);
|
_sumColumn.ComputeValues(inputVariable);
|
||||||
@ -33,15 +42,5 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
// , focusPercentage: 50
|
// , focusPercentage: 50
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
public CashflowMSFOColumnVT1(int count, DateTempColumn dateTempColumn, PostValues postValues,
|
|
||||||
PreparedValues preparedValues, PercentPaymentColumn percentPaymentColumn, SumColumn sumColumn,
|
|
||||||
NegativeCashflowColumn negativeCashflowColumn, NSIBBruttoGrColumn nsibBruttoGrColumn,
|
|
||||||
TLM_GrColumn tlmGrColumn, GPS_GrColumn gpsGrColumn, NPVBonusExpensesColumn npvBonusExpensesColumn,
|
|
||||||
AgentComissionExpensesColumn agentComissionExpensesColumn) : base(count, dateTempColumn, postValues,
|
|
||||||
preparedValues, percentPaymentColumn, sumColumn, negativeCashflowColumn, nsibBruttoGrColumn, tlmGrColumn,
|
|
||||||
gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,16 +1,10 @@
|
|||||||
using EvoCalculator.Core.Calculation.v1.Post;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
public class CashflowMSFOColumnVT2 : BaseCashflowMSFOColumn
|
public class CashflowMSFOColumnVT2 : BaseCashflowMSFOColumn
|
||||||
{
|
{
|
||||||
public void ComputeValues()
|
public CashflowMSFOColumnVT2(int count, DateTempColumn dateTempColumn, PostValues.PostValues postValues,
|
||||||
{
|
|
||||||
FillValues();
|
|
||||||
}
|
|
||||||
|
|
||||||
public CashflowMSFOColumnVT2(int count, DateTempColumn dateTempColumn, PostValues postValues,
|
|
||||||
PreparedValues preparedValues, PercentPaymentColumn percentPaymentColumn, SumColumn sumColumn,
|
PreparedValues preparedValues, PercentPaymentColumn percentPaymentColumn, SumColumn sumColumn,
|
||||||
NegativeCashflowColumn negativeCashflowColumn, NSIBBruttoGrColumn nsibBruttoGrColumn,
|
NegativeCashflowColumn negativeCashflowColumn, NSIBBruttoGrColumn nsibBruttoGrColumn,
|
||||||
TLM_GrColumn tlmGrColumn, GPS_GrColumn gpsGrColumn, NPVBonusExpensesColumn npvBonusExpensesColumn,
|
TLM_GrColumn tlmGrColumn, GPS_GrColumn gpsGrColumn, NPVBonusExpensesColumn npvBonusExpensesColumn,
|
||||||
@ -19,5 +13,10 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn)
|
gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ComputeValues()
|
||||||
|
{
|
||||||
|
FillValues();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
@ -8,7 +9,7 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues, DirectorBonusSumColumn directorBonusSumColumn,
|
public void ComputeValues(PreparedValues preparedValues, BaseColumn<decimal> directorBonusSumColumn,
|
||||||
CashflowMSFOFinalColumn cashflowMsfoFinalColumn)
|
CashflowMSFOFinalColumn cashflowMsfoFinalColumn)
|
||||||
{
|
{
|
||||||
Values[0] = -preparedValues.AcquisitionExpenses;
|
Values[0] = -preparedValues.AcquisitionExpenses;
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
@ -10,7 +11,7 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
|
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues, CashflowNPVFinalColumn cashflowNpvFinalColumn,
|
public void ComputeValues(PreparedValues preparedValues, CashflowNPVFinalColumn cashflowNpvFinalColumn,
|
||||||
DirectorBonusSumColumn directorBonusSumColumn)
|
BaseColumn<decimal> directorBonusSumColumn)
|
||||||
{
|
{
|
||||||
Values[0] = -preparedValues.AcquisitionExpenses;
|
Values[0] = -preparedValues.AcquisitionExpenses;
|
||||||
Values[1] = cashflowNpvFinalColumn.GetValue(1);
|
Values[1] = cashflowNpvFinalColumn.GetValue(1);
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
@ -9,7 +10,7 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues, ExtraBonusSumColumn extraBonusSumColumn,
|
public void ComputeValues(PreparedValues preparedValues, ExtraBonusSumColumn extraBonusSumColumn,
|
||||||
CashflowNPVColumn cashflowNpvColumn)
|
BaseColumn<decimal> cashflowNpvColumn)
|
||||||
{
|
{
|
||||||
Values[0] = -preparedValues.AcquisitionExpenses;
|
Values[0] = -preparedValues.AcquisitionExpenses;
|
||||||
Values[1] = cashflowNpvColumn.GetValue(1);
|
Values[1] = cashflowNpvColumn.GetValue(1);
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Interfaces.Columns;
|
using EvoCalculator.Core.Models.Calculation.Interfaces.Columns;
|
||||||
using TridentGoalSeek;
|
using TridentGoalSeek;
|
||||||
|
|
||||||
@ -22,14 +23,6 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
return Convert.ToDecimal(IRR);
|
return Convert.ToDecimal(IRR);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FillValues(decimal x)
|
|
||||||
{
|
|
||||||
Values[1] = _NSIBBruttoGrColumn.Values[1] - x;
|
|
||||||
for (var i = 2; i < Values.Length; i++)
|
|
||||||
Values[i] = _NSIBBruttoGrColumn.Values[i] -
|
|
||||||
x * _NSIBExpensesColumn.Values[i] / _NSIBExpensesColumn.Values[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ComputeValues(decimal requiredValue)
|
public void ComputeValues(decimal requiredValue)
|
||||||
{
|
{
|
||||||
var goalSeek = new GoalSeek(this);
|
var goalSeek = new GoalSeek(this);
|
||||||
@ -43,5 +36,13 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
// , trimFinalInputValue: true
|
// , trimFinalInputValue: true
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void FillValues(decimal x)
|
||||||
|
{
|
||||||
|
Values[1] = _NSIBBruttoGrColumn.Values[1] - x;
|
||||||
|
for (var i = 2; i < Values.Length; i++)
|
||||||
|
Values[i] = _NSIBBruttoGrColumn.Values[i] -
|
||||||
|
x * _NSIBExpensesColumn.Values[i] / _NSIBExpensesColumn.Values[1];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
@ -8,11 +9,11 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
public DateTempColumn(int count) : base(count)
|
public DateTempColumn(int count) : base(count)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues)
|
public void ComputeValues(PreparedValues preparedValues)
|
||||||
{
|
{
|
||||||
Values[0] = preparedValues.PaymentDateNew != null && preparedValues.DeliveryTime == 100000001
|
Values[0] = preparedValues.PaymentDateNew != null && preparedValues.DeliveryTime == 100000001
|
||||||
? preparedValues.PaymentDateNew.Value.AddMonths(-1)
|
? preparedValues.PaymentDateNew.Value.AddMonths(-1)
|
||||||
: preparedValues.DogDate;
|
: preparedValues.DogDate;
|
||||||
Values[1] = Values[0];
|
Values[1] = Values[0];
|
||||||
Values[2] = preparedValues.PaymentDateNew ?? Values[1].AddMonths(1);
|
Values[2] = preparedValues.PaymentDateNew ?? Values[1].AddMonths(1);
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
public class DeprecationColumn : BaseColumnWithSum
|
public class DeprecationColumn : BaseColumnWithSum
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
@ -14,7 +15,7 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
Values[1] = 0;
|
Values[1] = 0;
|
||||||
for (var i = 2; i < Values.Length - 1; i++)
|
for (var i = 2; i < Values.Length - 1; i++)
|
||||||
Values[i] = preparedValues.BalanceHolder == 100000001
|
Values[i] = preparedValues.BalanceHolder == 100000001
|
||||||
? (decimal) preparedValues.DeprecationTime *
|
? (decimal)preparedValues.DeprecationTime *
|
||||||
(preparedValues.AcceptSum - Values.Skip(2).Take(i - 1).Sum(x => x)) / 100
|
(preparedValues.AcceptSum - Values.Skip(2).Take(i - 1).Sum(x => x)) / 100
|
||||||
: 0;
|
: 0;
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
using EvoCalculator.Core.Calculation.v1.Post;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
@ -9,11 +9,11 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues, PostValues postValues)
|
public void ComputeValues(PreparedValues preparedValues, PostValues.PostValues postValues)
|
||||||
{
|
{
|
||||||
Values[2] = -postValues.BonusBase.Value * (decimal) preparedValues.DirectorBonus *
|
Values[2] = -postValues.BonusBase.Value * (decimal)preparedValues.DirectorBonus *
|
||||||
(decimal) (1 + preparedValues.SalaryRate) *
|
(decimal)(1 + preparedValues.SalaryRate) *
|
||||||
(decimal) preparedValues.MarketRate * (decimal) preparedValues.DistrictRate;
|
(decimal)preparedValues.MarketRate * (decimal)preparedValues.DistrictRate;
|
||||||
Values[0] = Sum;
|
Values[0] = Sum;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
public class ExpensesColumn : BaseColumnWithSum
|
public class ExpensesColumn : BaseColumnWithSum
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
using EvoCalculator.Core.Calculation.v1.Post;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
@ -10,13 +10,13 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues, BaseCashflowMSFOColumn cashflowMsfoColumn,
|
public void ComputeValues(PreparedValues preparedValues, BaseCashflowMSFOColumn cashflowMsfoColumn,
|
||||||
PostValues postValues)
|
PostValues.PostValues postValues)
|
||||||
{
|
{
|
||||||
Values[2] = cashflowMsfoColumn.Nominal >= preparedValues.IRR_MSFO_Plan
|
Values[2] = cashflowMsfoColumn.Nominal >= preparedValues.IRR_MSFO_Plan
|
||||||
? -1 * postValues.BonusBase.Value *
|
? -1 * postValues.BonusBase.Value *
|
||||||
(decimal) (cashflowMsfoColumn.Nominal / preparedValues.IRR_MSFO_Plan - 1) *
|
(decimal)(cashflowMsfoColumn.Nominal / preparedValues.IRR_MSFO_Plan - 1) *
|
||||||
(decimal) preparedValues.ExtraBonus * (decimal) (1 + preparedValues.SalaryRate) *
|
(decimal)preparedValues.ExtraBonus * (decimal)(1 + preparedValues.SalaryRate) *
|
||||||
(decimal) preparedValues.MarketRate * (decimal) preparedValues.DistrictRate
|
(decimal)preparedValues.MarketRate * (decimal)preparedValues.DistrictRate
|
||||||
: 0;
|
: 0;
|
||||||
Values[0] = Sum;
|
Values[0] = Sum;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using EvoCalculator.Core.Tools.Check;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
@ -10,7 +12,7 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
|
|
||||||
public void PostCheck()
|
public void PostCheck()
|
||||||
{
|
{
|
||||||
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
|
new CheckTools().CheckColumnForZeroValue(Values);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedPayments preparedPayments, PreparedValues preparedValues)
|
public void ComputeValues(PreparedPayments preparedPayments, PreparedValues preparedValues)
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
@ -8,11 +9,11 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(DateTempColumn dateTempColumn, CashflowColumn cashflowColumn)
|
public void ComputeValues(DateTempColumn dateTempColumn, BaseColumnWithXIRR cashflowColumn)
|
||||||
{
|
{
|
||||||
for (var i = 1; i < Values.Length; i++)
|
for (var i = 1; i < Values.Length; i++)
|
||||||
Values[i] = Math.Pow(1 + cashflowColumn.IRR,
|
Values[i] = Math.Pow(1 + cashflowColumn.IRR,
|
||||||
(double) (dateTempColumn.Values[i] - dateTempColumn.Values[i - 1]).Days / 365) - 1;
|
(double)(dateTempColumn.Values[i] - dateTempColumn.Values[i - 1]).Days / 365) - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
@ -13,17 +14,15 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
for (var i = 1; i < Values.Skip(1).ToList().Count; i++)
|
for (var i = 1; i < Values.Skip(1).ToList().Count; i++)
|
||||||
if (Values[i] > sumColumn.Values[i])
|
if (Values[i] > sumColumn.Values[i])
|
||||||
{
|
|
||||||
throw new Exception(
|
throw new Exception(
|
||||||
"Невозможно осуществить расчет графика, при заданных параметрах получается низкий лизинговый платеж");
|
"Невозможно осуществить расчет графика, при заданных параметрах получается низкий лизинговый платеж");
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void ComputeValues(IRRGrColumn irrGrColumn, NIColumn niColumn)
|
public void ComputeValues(IRRGrColumn irrGrColumn, NIColumn niColumn)
|
||||||
{
|
{
|
||||||
for (var i = 2; i < Values.Length; i++)
|
for (var i = 2; i < Values.Length; i++)
|
||||||
Values[i] = niColumn.Values[i - 1] * (decimal) irrGrColumn.Values[i];
|
Values[i] = niColumn.Values[i - 1] * (decimal)irrGrColumn.Values[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
@ -8,15 +9,15 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues, KaskoNmperGrColumn kaskoNmperGrColumn)
|
public void ComputeValues(PreparedValues preparedValues, BaseColumn<decimal> kaskoNmperGrColumn)
|
||||||
{
|
{
|
||||||
for (var i = 1; i < Values.Length; i++)
|
for (var i = 1; i < Values.Length; i++)
|
||||||
if (i < 13)
|
if (i < 13)
|
||||||
Values[i] = kaskoNmperGrColumn.Values[i] * 1;
|
Values[i] = kaskoNmperGrColumn.Values[i] * 1;
|
||||||
else if (i <= 24)
|
else if (i <= 24)
|
||||||
Values[i] = kaskoNmperGrColumn.Values[i] * (decimal) 0.7;
|
Values[i] = kaskoNmperGrColumn.Values[i] * (decimal)0.7;
|
||||||
else
|
else
|
||||||
Values[i] = kaskoNmperGrColumn.Values[i] * (decimal) 0.5;
|
Values[i] = kaskoNmperGrColumn.Values[i] * (decimal)0.5;
|
||||||
|
|
||||||
Values[0] = Sum;
|
Values[0] = Sum;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using EvoCalculator.Core.Tools.Check;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
@ -8,30 +10,29 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
rate)
|
rate)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PostCheck()
|
public void PostCheck()
|
||||||
{
|
{
|
||||||
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
|
new CheckTools().CheckColumnForZeroValue(Values);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues, Constants.Calculation constants)
|
public void ComputeValues(PreparedValues preparedValues, Constants.Calculation constants)
|
||||||
{
|
{
|
||||||
for (var i = 1; i < Values.Length; i += 12)
|
if (preparedValues.NmperInsurance < constants.MaxOnePolicePeriod)
|
||||||
if (i <= preparedValues.NmperInsurance)
|
Values[1] = preparedValues.InsuranceKasko;
|
||||||
{
|
else
|
||||||
if (preparedValues.NmperInsurance - i >= 3)
|
{
|
||||||
|
var InsuranceKaskoMonth = preparedValues.NmperInsurance >= constants.MaxOnePolicePeriod
|
||||||
|
? preparedValues.InsuranceKasko / 12
|
||||||
|
: preparedValues.InsuranceKasko / preparedValues.NmperInsurance;
|
||||||
|
for (var i = 1; i < preparedValues.NmperInsurance; i += 12)
|
||||||
|
if (i <= preparedValues.NmperInsurance)
|
||||||
{
|
{
|
||||||
if (preparedValues.NmperInsurance - i < constants.MaxOnePolicePeriod - 1)
|
Values[i] = preparedValues.NmperInsurance - i + 1 >= constants.MaxOnePolicePeriod
|
||||||
Values[i] = preparedValues.InsuranceKasko / 12 * (preparedValues.NmperInsurance - i + 1);
|
? InsuranceKaskoMonth * 12
|
||||||
else
|
: InsuranceKaskoMonth * (preparedValues.NmperInsurance - i + 1);
|
||||||
Values[i] = preparedValues.InsuranceKasko;
|
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
{
|
|
||||||
Values[i] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Values[0] = -XNPV;
|
Values[0] = -XNPV;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
@ -8,11 +9,12 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues, CashflowColumn cashflowColumn, IRRGrColumn irrGrColumn)
|
public void ComputeValues(PreparedValues preparedValues, BaseColumnWithXIRR cashflowColumn,
|
||||||
|
IRRGrColumn irrGrColumn)
|
||||||
{
|
{
|
||||||
Values[1] = preparedValues.NiAtInception;
|
Values[1] = preparedValues.NiAtInception;
|
||||||
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] - cashflowColumn.Values[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,5 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using EvoCalculator.Core.Calculation.v1.Post;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
@ -10,17 +10,17 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedValues preparedValues, PostValues postValues)
|
public void ComputeValues(PreparedValues preparedValues, PostValues.PostValues postValues)
|
||||||
{
|
{
|
||||||
Values[1] = -1 * (preparedValues.RatBonus + preparedValues.NsBonus + preparedValues.NsibBonus) *
|
Values[1] = -1 * (preparedValues.RatBonus + preparedValues.NsBonus + preparedValues.NsibBonus) *
|
||||||
(decimal) (1 + preparedValues.SalaryRate) *
|
(decimal)(1 + preparedValues.SalaryRate) *
|
||||||
(decimal) preparedValues.MarketRate * (decimal) preparedValues.DistrictRate;
|
(decimal)preparedValues.MarketRate * (decimal)preparedValues.DistrictRate;
|
||||||
|
|
||||||
Values[2] = preparedValues.BonusFix > 0
|
Values[2] = preparedValues.BonusFix > 0
|
||||||
? -preparedValues.BonusFix
|
? -preparedValues.BonusFix
|
||||||
: -1 * postValues.BonusBase.Value * Convert.ToDecimal(preparedValues.Bonus) *
|
: -1 * postValues.BonusBase.Value * Convert.ToDecimal(preparedValues.Bonus) *
|
||||||
(decimal) (1 + preparedValues.SalaryRate) *
|
(decimal)(1 + preparedValues.SalaryRate) *
|
||||||
(decimal) preparedValues.MarketRate * (decimal) preparedValues.DistrictRate;
|
(decimal)preparedValues.MarketRate * (decimal)preparedValues.DistrictRate;
|
||||||
|
|
||||||
|
|
||||||
for (var i = 3; i < Values.Length; i++) Values[i] = 0;
|
for (var i = 3; i < Values.Length; i++) Values[i] = 0;
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
public class NPVColumn : BaseColumnWithNominal
|
public class NPVColumn : BaseColumnWithNominal
|
||||||
{
|
{
|
||||||
@ -6,10 +8,10 @@
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(CashflowNPVColumn cashflowNpvColumn, NPVWeightColumn npvWeightColumn)
|
public void ComputeValues(BaseColumn<decimal> cashflowNpvColumn, NPVWeightColumn npvWeightColumn)
|
||||||
{
|
{
|
||||||
for (var i = 0; i < Values.Length; i++)
|
for (var i = 0; i < Values.Length; i++)
|
||||||
Values[i] = cashflowNpvColumn.GetValue(i) * (decimal) npvWeightColumn.GetValue(i);
|
Values[i] = cashflowNpvColumn.GetValue(i) * (decimal)npvWeightColumn.GetValue(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,4 +1,6 @@
|
|||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
public class NPVFinal2Column : BaseColumnWithNominal
|
public class NPVFinal2Column : BaseColumnWithNominal
|
||||||
{
|
{
|
||||||
@ -9,9 +11,7 @@
|
|||||||
public void ComputeValues(CashflowNPVFinal2Column cashflowNpvFinal2Column, NPVWeightColumn npvWeightColumn)
|
public void ComputeValues(CashflowNPVFinal2Column cashflowNpvFinal2Column, NPVWeightColumn npvWeightColumn)
|
||||||
{
|
{
|
||||||
for (var i = 0; i < Values.Length; i++)
|
for (var i = 0; i < Values.Length; i++)
|
||||||
{
|
Values[i] = cashflowNpvFinal2Column.GetValue(i) * (decimal)npvWeightColumn.GetValue(i);
|
||||||
Values[i] = cashflowNpvFinal2Column.GetValue(i) * (decimal) npvWeightColumn.GetValue(i);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,4 +1,6 @@
|
|||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
public class NPVFinalColumn : BaseColumnWithNominal
|
public class NPVFinalColumn : BaseColumnWithNominal
|
||||||
{
|
{
|
||||||
@ -9,7 +11,7 @@
|
|||||||
public void ComputeValues(CashflowNPVFinalColumn cashflowNpvFinalColumn, NPVWeightColumn npvWeightColumn)
|
public void ComputeValues(CashflowNPVFinalColumn cashflowNpvFinalColumn, NPVWeightColumn npvWeightColumn)
|
||||||
{
|
{
|
||||||
for (var i = 0; i < Values.Length; i++)
|
for (var i = 0; i < Values.Length; i++)
|
||||||
Values[i] = cashflowNpvFinalColumn.GetValue(i) * (decimal) npvWeightColumn.GetValue(i);
|
Values[i] = cashflowNpvFinalColumn.GetValue(i) * (decimal)npvWeightColumn.GetValue(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
public class NegativeCashflowColumn : BaseColumnWithSum
|
public class NegativeCashflowColumn : BaseColumnWithSum
|
||||||
{
|
{
|
||||||
@ -6,7 +8,7 @@
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(KaskoNmperGrColumn kaskoNmperGrColumn)
|
public void ComputeValues(BaseColumn<decimal> kaskoNmperGrColumn)
|
||||||
{
|
{
|
||||||
for (var i = 1; i < Values.Length; i++) Values[i] = -kaskoNmperGrColumn.Values[i];
|
for (var i = 1; i < Values.Length; i++) Values[i] = -kaskoNmperGrColumn.Values[i];
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
public class RevenueColumn : BaseColumn<decimal>
|
public class RevenueColumn : BaseColumn<decimal>
|
||||||
{
|
{
|
||||||
@ -11,10 +13,7 @@
|
|||||||
{
|
{
|
||||||
if (nsibBruttoGrColumn.Sum == 0)
|
if (nsibBruttoGrColumn.Sum == 0)
|
||||||
{
|
{
|
||||||
for (var i = 0; i < Values.Length; i++)
|
for (var i = 0; i < Values.Length; i++) Values[i] = 0;
|
||||||
{
|
|
||||||
Values[i] = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,26 +1,29 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using EvoCalculator.Core.Calculation.v1.Post;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using EvoCalculator.Core.Tools.Check;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
public class SumColumn : BaseColumnWithXIRR
|
public class SumColumn : BaseColumnWithXIRR
|
||||||
{
|
{
|
||||||
private readonly PercentPaymentColumn _percentPaymentColumn;
|
protected readonly PercentPaymentColumn _percentPaymentColumn;
|
||||||
private readonly PreparedValues _preparedValues;
|
protected readonly PostValues.PostValues _postValues;
|
||||||
private readonly PostValues _postValues;
|
protected readonly PreparedValues _preparedValues;
|
||||||
|
protected readonly BaseColumn<decimal> _nsibBruttoGrColumn;
|
||||||
|
|
||||||
public SumColumn(int count, DateTempColumn dateTempColumn
|
public SumColumn(int count, BaseColumn<DateTime> dateTempColumn, PreparedValues preparedValues,
|
||||||
, PreparedValues preparedValues
|
PercentPaymentColumn percentPaymentColumn,
|
||||||
, PercentPaymentColumn percentPaymentColumn, PostValues postValues) : base(count, dateTempColumn)
|
PostValues.PostValues postValues, BaseColumn<decimal> nsibBruttoGrColumn) : base(count, dateTempColumn)
|
||||||
{
|
{
|
||||||
_preparedValues = preparedValues;
|
_preparedValues = preparedValues;
|
||||||
_percentPaymentColumn = percentPaymentColumn;
|
_percentPaymentColumn = percentPaymentColumn;
|
||||||
_postValues = postValues;
|
_postValues = postValues;
|
||||||
|
_nsibBruttoGrColumn = nsibBruttoGrColumn;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(decimal x)
|
public virtual void ComputeValues(decimal x)
|
||||||
{
|
{
|
||||||
Values[0] = -_postValues.BaseCost.Value;
|
Values[0] = -_postValues.BaseCost.Value;
|
||||||
Values[1] = _preparedValues.FirstPaymentSum;
|
Values[1] = _preparedValues.FirstPaymentSum;
|
||||||
@ -32,12 +35,19 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
|
|
||||||
public void PostCheck()
|
public void PostCheck()
|
||||||
{
|
{
|
||||||
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
|
new CheckTools().CheckColumnForZeroValue(Values);
|
||||||
|
|
||||||
if (Values[1] / Values.Skip(1).Sum() >= 0.5m)
|
if (Values[1] / Values.Skip(1).Sum() >= 0.5m)
|
||||||
{
|
|
||||||
throw new Exception(
|
throw new Exception(
|
||||||
"Первый платеж по графику более 50% от суммы лизинговых платежей. Необходимо уменьшить первый платеж");
|
"Первый платеж по графику более 50% от суммы лизинговых платежей. Необходимо уменьшить первый платеж");
|
||||||
|
|
||||||
|
for (int i = 2; i < Values.Length; i++)
|
||||||
|
{
|
||||||
|
if (GetValue(i) < _nsibBruttoGrColumn.GetValue(i))
|
||||||
|
{
|
||||||
|
throw new Exception(
|
||||||
|
"Невозможно осуществить расчет графика. При заданных параметрах лизинговый платеж не покрывает расходы по НСИБ. Исключите НСИБ или увеличьте лизинговые платежи");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
@ -8,7 +9,7 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(TLM_GrColumn tlmGrColumn)
|
public void ComputeValues(BaseColumn<decimal> tlmGrColumn)
|
||||||
{
|
{
|
||||||
const int FIRST_YEAR_NUM = 13;
|
const int FIRST_YEAR_NUM = 13;
|
||||||
for (var i = 1; i < Values.Length; i++)
|
for (var i = 1; i < Values.Length; i++)
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using EvoCalculator.Core.Tools.Check;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
@ -10,7 +12,7 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
|
|
||||||
public void PostCheck()
|
public void PostCheck()
|
||||||
{
|
{
|
||||||
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
|
new CheckTools().CheckColumnForZeroValue(Values);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(Constants.Calculation calculation, PreparedValues preparedValues,
|
public void ComputeValues(Constants.Calculation calculation, PreparedValues preparedValues,
|
||||||
@ -19,9 +21,9 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
for (var i = 7; i < Values.Length; i++)
|
for (var i = 7; i < Values.Length; i++)
|
||||||
Values[i] = sumCurrentColumn.Values[i] + sumCurrentNegativeColumn.Values[i] -
|
Values[i] = sumCurrentColumn.Values[i] + sumCurrentNegativeColumn.Values[i] -
|
||||||
sumCurrentTlmColumn.Values[i] * (1 + (decimal) calculation.VatValue) -
|
sumCurrentTlmColumn.Values[i] * (1 + (decimal)calculation.VatValue) -
|
||||||
sumCurrentInterestColumn.Values[i] * (1 + (decimal) calculation.VatValue) *
|
sumCurrentInterestColumn.Values[i] * (1 + (decimal)calculation.VatValue) *
|
||||||
(decimal) preparedValues.Repayment;
|
(decimal)preparedValues.Repayment;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,30 +1,15 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using EvoCalculator.Core.Tools.Check;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
public class BaseSumWithVATColumn : BaseColumnWithSum
|
public class BaseSumWithVATColumn : BaseColumnWithSum
|
||||||
{
|
{
|
||||||
protected readonly PreparedValues _preparedValues;
|
|
||||||
protected readonly Constants.Calculation _constants;
|
protected readonly Constants.Calculation _constants;
|
||||||
|
protected readonly PreparedValues _preparedValues;
|
||||||
protected SumColumn _sumColumn;
|
protected SumColumn _sumColumn;
|
||||||
|
|
||||||
protected void FillValues()
|
|
||||||
{
|
|
||||||
Values[0] = 0;
|
|
||||||
Values[1] = _preparedValues.FirstPaymentWithNdsAbs > 0
|
|
||||||
? _preparedValues.FirstPaymentWithNdsAbs
|
|
||||||
: (decimal) (1 + _constants.VatValue) * _sumColumn.Values[1];
|
|
||||||
for (var i = 2; i < Values.Length; i++)
|
|
||||||
Values[i] = (decimal) (1 + _constants.VatValue) * _sumColumn.Values[i];
|
|
||||||
|
|
||||||
Values[0] = Sum;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void PostCheck()
|
|
||||||
{
|
|
||||||
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected BaseSumWithVATColumn(int count, SumColumn sumColumn, PreparedValues preparedValues,
|
protected BaseSumWithVATColumn(int count, SumColumn sumColumn, PreparedValues preparedValues,
|
||||||
Constants.Calculation constants) : base(count)
|
Constants.Calculation constants) : base(count)
|
||||||
{
|
{
|
||||||
@ -32,5 +17,22 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
_preparedValues = preparedValues;
|
_preparedValues = preparedValues;
|
||||||
_constants = constants;
|
_constants = constants;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void FillValues()
|
||||||
|
{
|
||||||
|
Values[0] = 0;
|
||||||
|
Values[1] = _preparedValues.FirstPaymentWithNdsAbs > 0
|
||||||
|
? _preparedValues.FirstPaymentWithNdsAbs
|
||||||
|
: (decimal)(1 + _constants.VatValue) * _sumColumn.Values[1];
|
||||||
|
for (var i = 2; i < Values.Length; i++)
|
||||||
|
Values[i] = (decimal)(1 + _constants.VatValue) * _sumColumn.Values[i];
|
||||||
|
|
||||||
|
Values[0] = Sum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PostCheck()
|
||||||
|
{
|
||||||
|
new CheckTools().CheckColumnForZeroValue(Values);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4,14 +4,14 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
public class SumWithVATColumnVT1 : BaseSumWithVATColumn
|
public class SumWithVATColumnVT1 : BaseSumWithVATColumn
|
||||||
{
|
{
|
||||||
public void ComputeValues()
|
|
||||||
{
|
|
||||||
FillValues();
|
|
||||||
}
|
|
||||||
|
|
||||||
public SumWithVATColumnVT1(int count, SumColumn sumColumn, PreparedValues preparedValues,
|
public SumWithVATColumnVT1(int count, SumColumn sumColumn, PreparedValues preparedValues,
|
||||||
Constants.Calculation constants) : base(count, sumColumn, preparedValues, constants)
|
Constants.Calculation constants) : base(count, sumColumn, preparedValues, constants)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ComputeValues()
|
||||||
|
{
|
||||||
|
FillValues();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,6 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using EvoCalculator.Core.Calculation.v1.Post;
|
|
||||||
using EvoCalculator.Core.Models.Calculation.Interfaces.Columns;
|
using EvoCalculator.Core.Models.Calculation.Interfaces.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
using TridentGoalSeek;
|
using TridentGoalSeek;
|
||||||
@ -9,8 +8,18 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
{
|
{
|
||||||
public class SumWithVATColumnVT2 : BaseSumWithVATColumn, IColumnWithGoalSeek
|
public class SumWithVATColumnVT2 : BaseSumWithVATColumn, IColumnWithGoalSeek
|
||||||
{
|
{
|
||||||
private PercentPaymentColumn _percentPaymentColumn;
|
private readonly PercentPaymentColumn _percentPaymentColumn;
|
||||||
private PostValues _postValues;
|
private readonly PostValues.PostValues _postValues;
|
||||||
|
|
||||||
|
public SumWithVATColumnVT2(int count, SumColumn sumColumn, PreparedValues preparedValues,
|
||||||
|
Constants.Calculation constants, PercentPaymentColumn percentPaymentColumn,
|
||||||
|
PostValues.PostValues postValues) : base(
|
||||||
|
count, sumColumn,
|
||||||
|
preparedValues, constants)
|
||||||
|
{
|
||||||
|
_percentPaymentColumn = percentPaymentColumn;
|
||||||
|
_postValues = postValues;
|
||||||
|
}
|
||||||
|
|
||||||
public decimal Calculate(decimal inputVariable)
|
public decimal Calculate(decimal inputVariable)
|
||||||
{
|
{
|
||||||
@ -36,14 +45,5 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
// , focusPercentage: 50
|
// , focusPercentage: 50
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
public SumWithVATColumnVT2(int count, SumColumn sumColumn, PreparedValues preparedValues,
|
|
||||||
Constants.Calculation constants, PercentPaymentColumn percentPaymentColumn, PostValues postValues) : base(
|
|
||||||
count, sumColumn,
|
|
||||||
preparedValues, constants)
|
|
||||||
{
|
|
||||||
_percentPaymentColumn = percentPaymentColumn;
|
|
||||||
_postValues = postValues;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using EvoCalculator.Core.Tools.Check;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
@ -10,7 +12,7 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
|
|
||||||
public void PostCheck()
|
public void PostCheck()
|
||||||
{
|
{
|
||||||
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
|
new CheckTools().CheckColumnForZeroValue(Values);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(PreparedPayments preparedPayments, PreparedValues preparedValues)
|
public void ComputeValues(PreparedPayments preparedPayments, PreparedValues preparedValues)
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
public class TaxColumn : BaseColumnWithSum
|
public class TaxColumn : BaseColumnWithSum
|
||||||
{
|
{
|
||||||
@ -15,18 +17,18 @@
|
|||||||
GPSExpensesColumn gpsExpensesColumn)
|
GPSExpensesColumn gpsExpensesColumn)
|
||||||
{
|
{
|
||||||
for (var i = 1; i < Values.Length; i++)
|
for (var i = 1; i < Values.Length; i++)
|
||||||
Values[i] = (decimal) constants.IncomeTaxValue * (sumColumn.GetValue(i)
|
Values[i] = (decimal)constants.IncomeTaxValue * (sumColumn.GetValue(i)
|
||||||
- acceptInsuranceColumn.GetValue(i)
|
- acceptInsuranceColumn.GetValue(i)
|
||||||
- deprecationColumn.GetValue(i)
|
- deprecationColumn.GetValue(i)
|
||||||
+ ratExpensesColumn.GetValue(i)
|
+ ratExpensesColumn.GetValue(i)
|
||||||
+ registrExpensesColumn.GetValue(i)
|
+ registrExpensesColumn.GetValue(i)
|
||||||
+ comissionBonusExpensesColumn.GetValue(i)
|
+ comissionBonusExpensesColumn.GetValue(i)
|
||||||
+ transExpensesColumn.GetValue(i)
|
+ transExpensesColumn.GetValue(i)
|
||||||
+ npvBonusExpensesColumn.GetValue(i)
|
+ npvBonusExpensesColumn.GetValue(i)
|
||||||
+ agentComissionExpensesColumn.GetValue(i)
|
+ agentComissionExpensesColumn.GetValue(i)
|
||||||
+ insuranceBonusExpensesColumn.GetValue(i)
|
+ insuranceBonusExpensesColumn.GetValue(i)
|
||||||
+ tlmExpensesColumn.GetValue(i)
|
+ tlmExpensesColumn.GetValue(i)
|
||||||
+ gpsExpensesColumn.GetValue(i)
|
+ gpsExpensesColumn.GetValue(i)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using EvoCalculator.Core.Tools.Check;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Columns
|
namespace EvoCalculator.Core.Calculation.v1.Columns
|
||||||
{
|
{
|
||||||
@ -10,7 +12,7 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
|
|
||||||
public void PostCheck()
|
public void PostCheck()
|
||||||
{
|
{
|
||||||
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
|
new CheckTools().CheckColumnForZeroValue(Values);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ComputeValues(Constants.Calculation constants, SumColumn sumColumn, PreparedValues preparedValues)
|
public void ComputeValues(Constants.Calculation constants, SumColumn sumColumn, PreparedValues preparedValues)
|
||||||
@ -18,8 +20,8 @@ namespace EvoCalculator.Core.Calculation.v1.Columns
|
|||||||
Values[0] = 0;
|
Values[0] = 0;
|
||||||
Values[1] = preparedValues.FirstPaymentNdsAbs > 0
|
Values[1] = preparedValues.FirstPaymentNdsAbs > 0
|
||||||
? preparedValues.FirstPaymentNdsAbs
|
? preparedValues.FirstPaymentNdsAbs
|
||||||
: (decimal) constants.VatValue * sumColumn.Values[1];
|
: (decimal)constants.VatValue * sumColumn.Values[1];
|
||||||
for (var i = 2; i < Values.Length; i++) Values[i] = (decimal) constants.VatValue * sumColumn.Values[i];
|
for (var i = 2; i < Values.Length; i++) Values[i] = (decimal)constants.VatValue * sumColumn.Values[i];
|
||||||
|
|
||||||
Values[0] = Sum;
|
Values[0] = Sum;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,11 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using EvoCalculator.Core.Calculation.v1.Columns;
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
using EvoCalculator.Core.Calculation.v1.Post;
|
|
||||||
using EvoCalculator.Core.Models.Calculation.Models;
|
using EvoCalculator.Core.Models.Calculation.Models;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Request;
|
using EvoCalculator.Core.Models.Calculation.Models.Request;
|
||||||
|
using EvoCalculator.Core.Tools.Validation;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Managers
|
namespace EvoCalculator.Core.Calculation.v1.Managers.Calculation
|
||||||
{
|
{
|
||||||
public static partial class CalculateManager
|
public static partial class CalculateManager
|
||||||
{
|
{
|
||||||
@ -15,15 +15,12 @@ namespace EvoCalculator.Core.Calculation.v1.Managers
|
|||||||
var preparedPayments = requestCalculation.preparedPayments;
|
var preparedPayments = requestCalculation.preparedPayments;
|
||||||
var additionalData = requestCalculation.additionalData;
|
var additionalData = requestCalculation.additionalData;
|
||||||
|
|
||||||
var validationErrors = new Validation().ValidatePreparedData(requestCalculation);
|
var validationErrors = new Validation().ValidatePreparedValues(preparedValues);
|
||||||
if (validationErrors.Count > 0)
|
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
||||||
{
|
|
||||||
return new ManagerResult {Errors = validationErrors};
|
|
||||||
}
|
|
||||||
|
|
||||||
var constants = new Constants.Calculation();
|
var constants = new Constants.Calculation();
|
||||||
|
|
||||||
var postValues = new PostValues();
|
var postValues = new PostValues.PostValues();
|
||||||
|
|
||||||
|
|
||||||
var maxColumnLength = preparedValues.Nmper > preparedValues.NmperDeprecation
|
var maxColumnLength = preparedValues.Nmper > preparedValues.NmperDeprecation
|
||||||
@ -67,11 +64,16 @@ namespace EvoCalculator.Core.Calculation.v1.Managers
|
|||||||
|
|
||||||
postValues.BaseCost.ComputeValue(preparedValues, kaskoNmperGrColumn, tlmGrColumn, gpsGrColumn);
|
postValues.BaseCost.ComputeValue(preparedValues, kaskoNmperGrColumn, tlmGrColumn, gpsGrColumn);
|
||||||
|
|
||||||
|
var nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper + 1);
|
||||||
|
nsibBruttoGrColumn.ComputeValues(preparedValues);
|
||||||
|
|
||||||
var sumColumn = new SumColumn(
|
var sumColumn = new SumColumn(
|
||||||
preparedValues.Nmper + 1
|
preparedValues.Nmper + 1
|
||||||
, dateTempColumn
|
, dateColumn
|
||||||
, preparedValues
|
, preparedValues
|
||||||
, percentPaymentColumn, postValues);
|
, percentPaymentColumn
|
||||||
|
, postValues
|
||||||
|
, nsibBruttoGrColumn);
|
||||||
|
|
||||||
var sumWithVatColumn =
|
var sumWithVatColumn =
|
||||||
new SumWithVATColumnVT2(preparedValues.Nmper + 1, sumColumn, preparedValues, constants,
|
new SumWithVATColumnVT2(preparedValues.Nmper + 1, sumColumn, preparedValues, constants,
|
||||||
@ -86,9 +88,6 @@ namespace EvoCalculator.Core.Calculation.v1.Managers
|
|||||||
var negativeCashflowColumn = new NegativeCashflowColumn(preparedValues.Nmper + 1);
|
var negativeCashflowColumn = new NegativeCashflowColumn(preparedValues.Nmper + 1);
|
||||||
negativeCashflowColumn.ComputeValues(kaskoNmperGrColumn);
|
negativeCashflowColumn.ComputeValues(kaskoNmperGrColumn);
|
||||||
|
|
||||||
var nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper + 1);
|
|
||||||
nsibBruttoGrColumn.ComputeValues(preparedValues);
|
|
||||||
|
|
||||||
var cashflowMsfoColumn = new CashflowMSFOColumnVT2(preparedValues.Nmper + 1, dateTempColumn, postValues,
|
var cashflowMsfoColumn = new CashflowMSFOColumnVT2(preparedValues.Nmper + 1, dateTempColumn, postValues,
|
||||||
preparedValues, percentPaymentColumn, sumColumn, negativeCashflowColumn, nsibBruttoGrColumn,
|
preparedValues, percentPaymentColumn, sumColumn, negativeCashflowColumn, nsibBruttoGrColumn,
|
||||||
tlmGrColumn, gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn);
|
tlmGrColumn, gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn);
|
||||||
@ -1,11 +1,11 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using EvoCalculator.Core.Calculation.v1.Columns;
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
using EvoCalculator.Core.Calculation.v1.Post;
|
|
||||||
using EvoCalculator.Core.Models.Calculation.Models;
|
using EvoCalculator.Core.Models.Calculation.Models;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Request;
|
using EvoCalculator.Core.Models.Calculation.Models.Request;
|
||||||
|
using EvoCalculator.Core.Tools.Validation;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Managers
|
namespace EvoCalculator.Core.Calculation.v1.Managers.Calculation
|
||||||
{
|
{
|
||||||
public static partial class CalculateManager
|
public static partial class CalculateManager
|
||||||
{
|
{
|
||||||
@ -15,15 +15,13 @@ namespace EvoCalculator.Core.Calculation.v1.Managers
|
|||||||
var preparedPayments = requestCalculation.preparedPayments;
|
var preparedPayments = requestCalculation.preparedPayments;
|
||||||
var additionalData = requestCalculation.additionalData;
|
var additionalData = requestCalculation.additionalData;
|
||||||
|
|
||||||
var validationErrors = new Validation().ValidatePreparedData(requestCalculation);
|
var validationErrors = new Validation().ValidatePreparedValues(preparedValues);
|
||||||
if (validationErrors.Count > 0)
|
|
||||||
{
|
if (validationErrors.Count > 0) return new ManagerResult { Errors = validationErrors };
|
||||||
return new ManagerResult {Errors = validationErrors};
|
|
||||||
}
|
|
||||||
|
|
||||||
var constants = new Constants.Calculation();
|
var constants = new Constants.Calculation();
|
||||||
|
|
||||||
var postValues = new PostValues();
|
var postValues = new PostValues.PostValues();
|
||||||
|
|
||||||
|
|
||||||
var maxColumnLength = preparedValues.Nmper > preparedValues.NmperDeprecation
|
var maxColumnLength = preparedValues.Nmper > preparedValues.NmperDeprecation
|
||||||
@ -75,12 +73,14 @@ namespace EvoCalculator.Core.Calculation.v1.Managers
|
|||||||
|
|
||||||
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
|
||||||
, dateTempColumn
|
, dateColumn
|
||||||
, preparedValues
|
, preparedValues
|
||||||
, percentPaymentColumn, postValues);
|
, percentPaymentColumn
|
||||||
|
, postValues
|
||||||
|
, nsibBruttoGrColumn);
|
||||||
|
|
||||||
var cashflowMsfoColumn = new CashflowMSFOColumnVT1(preparedValues.Nmper + 1, dateTempColumn, postValues,
|
var cashflowMsfoColumn = new CashflowMSFOColumnVT1(preparedValues.Nmper + 1, dateTempColumn, postValues,
|
||||||
preparedValues, percentPaymentColumn, sumColumn, negativeCashflowColumn, nsibBruttoGrColumn,
|
preparedValues, percentPaymentColumn, sumColumn, negativeCashflowColumn, nsibBruttoGrColumn,
|
||||||
@ -188,7 +188,7 @@ namespace EvoCalculator.Core.Calculation.v1.Managers
|
|||||||
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);
|
||||||
@ -1,12 +0,0 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Post
|
|
||||||
{
|
|
||||||
public class PriceUP_PR : BasePostValue<double>
|
|
||||||
{
|
|
||||||
public void ComputeValue(PreparedValues preparedValues, PostValues postValues)
|
|
||||||
{
|
|
||||||
Value = (double) postValues.PriceUP.Value / (double) preparedValues.PriceUpTotal;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Post
|
|
||||||
{
|
|
||||||
public class PriceUP_Year_PR : BasePostValue<double>
|
|
||||||
{
|
|
||||||
public void ComputeValue(PreparedValues preparedValues, PostValues postValues)
|
|
||||||
{
|
|
||||||
Value = (double) postValues.PriceUP_Year.Value / (double) preparedValues.PriceUpTotal;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,18 +1,19 @@
|
|||||||
using System;
|
using System;
|
||||||
using EvoCalculator.Core.Calculation.v1.Columns;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Base.PostValues;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Post
|
namespace EvoCalculator.Core.Calculation.v1.PostValues
|
||||||
{
|
{
|
||||||
public class BaseCost : BasePostValue<decimal>
|
public class BaseCost : BasePostValue<decimal>
|
||||||
{
|
{
|
||||||
public void ComputeValue(PreparedValues preparedValues, KaskoNmperGrColumn kaskoNmperGrColumn,
|
public void ComputeValue(PreparedValues preparedValues, BaseColumn<decimal> kaskoNmperGrColumn,
|
||||||
TLM_GrColumn tlmGrColumn, GPS_GrColumn gpsGrColumn)
|
BaseColumn<decimal> tlmGrColumn, BaseColumn<decimal> gpsGrColumn)
|
||||||
{
|
{
|
||||||
Value = preparedValues.PlPrice + preparedValues.InsuranceOsago + Math.Abs(kaskoNmperGrColumn.Values[0])
|
Value = preparedValues.PlPrice + preparedValues.InsuranceOsago + Math.Abs(kaskoNmperGrColumn.Values[0])
|
||||||
+ Math.Abs(tlmGrColumn.Values[0]) + Math.Abs(gpsGrColumn.Values[0]) + preparedValues.Rats +
|
+ Math.Abs(tlmGrColumn.Values[0]) + Math.Abs(gpsGrColumn.Values[0]) + preparedValues.Rats +
|
||||||
preparedValues.Registration + preparedValues.TrackerCost +
|
preparedValues.Registration + preparedValues.TrackerCost +
|
||||||
preparedValues.TLMCost + preparedValues.TransportTaxGr * (decimal) preparedValues.Leasing0K +
|
preparedValues.TLMCost + preparedValues.TransportTaxGr * (decimal)preparedValues.Leasing0K +
|
||||||
preparedValues.NsibBrutto;
|
preparedValues.NsibBrutto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,8 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using EvoCalculator.Core.Base.PostValues;
|
||||||
using EvoCalculator.Core.Calculation.v1.Columns;
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Post
|
namespace EvoCalculator.Core.Calculation.v1.PostValues
|
||||||
{
|
{
|
||||||
public class BonusBase : BasePostValue<decimal>
|
public class BonusBase : BasePostValue<decimal>
|
||||||
{
|
{
|
||||||
@ -1,16 +1,17 @@
|
|||||||
using System;
|
using System;
|
||||||
using EvoCalculator.Core.Calculation.v1.Columns;
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Base.PostValues;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Post
|
namespace EvoCalculator.Core.Calculation.v1.PostValues
|
||||||
{
|
{
|
||||||
public class BonusResult : BasePostValue<decimal>
|
public class BonusResult : BasePostValue<decimal>
|
||||||
{
|
{
|
||||||
public void ComputeValue(PreparedValues preparedValues, NPVBonusExpensesColumn npvBonusExpensesColumn)
|
public void ComputeValue(PreparedValues preparedValues, BaseColumnWithSum npvBonusExpensesColumn)
|
||||||
{
|
{
|
||||||
Value = Math.Abs(npvBonusExpensesColumn.Values[0]) -
|
Value = Math.Abs(npvBonusExpensesColumn.Values[0]) -
|
||||||
Math.Abs(npvBonusExpensesColumn.Values[0]) * (decimal) preparedValues.SalaryRate /
|
Math.Abs(npvBonusExpensesColumn.Values[0]) * (decimal)preparedValues.SalaryRate /
|
||||||
(decimal) (1 + preparedValues.SalaryRate);
|
(decimal)(1 + preparedValues.SalaryRate);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,14 +1,15 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using EvoCalculator.Core.Base.PostValues;
|
||||||
using EvoCalculator.Core.Calculation.v1.Columns;
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Post
|
namespace EvoCalculator.Core.Calculation.v1.PostValues
|
||||||
{
|
{
|
||||||
public class NPVNI : BasePostValue<double>
|
public class NPVNI : BasePostValue<double>
|
||||||
{
|
{
|
||||||
public void ComputeValue(PreparedValues preparedValues, NPVColumn npvColumn)
|
public void ComputeValue(PreparedValues preparedValues, NPVColumn npvColumn)
|
||||||
{
|
{
|
||||||
Value = npvColumn.Values.Sum(x => (double) x) / (double) preparedValues.NpvBase;
|
Value = npvColumn.Values.Sum(x => (double)x) / (double)preparedValues.NpvBase;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,17 +1,29 @@
|
|||||||
namespace EvoCalculator.Core.Calculation.v1.Post
|
namespace EvoCalculator.Core.Calculation.v1.PostValues
|
||||||
{
|
{
|
||||||
public class PostValues
|
public class PostValues
|
||||||
{
|
{
|
||||||
public BaseCost BaseCost;
|
public BaseCost BaseCost;
|
||||||
public BonusBase BonusBase;
|
public BonusBase BonusBase;
|
||||||
|
public BonusResult BonusResult;
|
||||||
|
public NPVNI NPVNI;
|
||||||
public PriceUP PriceUP;
|
public PriceUP PriceUP;
|
||||||
public PriceUP_PR PriceUP_PR;
|
public PriceUP_PR PriceUP_PR;
|
||||||
public PriceUP_Year PriceUP_Year;
|
public PriceUP_Year PriceUP_Year;
|
||||||
public PriceUP_Year_PR PriceUP_Year_PR;
|
public PriceUP_Year_PR PriceUP_Year_PR;
|
||||||
public NPVNI NPVNI;
|
|
||||||
public BonusResult BonusResult;
|
|
||||||
|
|
||||||
public object GetValues()
|
public PostValues()
|
||||||
|
{
|
||||||
|
BaseCost = new BaseCost();
|
||||||
|
BonusBase = new BonusBase();
|
||||||
|
PriceUP = new PriceUP();
|
||||||
|
PriceUP_PR = new PriceUP_PR();
|
||||||
|
PriceUP_Year = new PriceUP_Year();
|
||||||
|
PriceUP_Year_PR = new PriceUP_Year_PR();
|
||||||
|
NPVNI = new NPVNI();
|
||||||
|
BonusResult = new BonusResult();
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual object GetValues()
|
||||||
{
|
{
|
||||||
return new
|
return new
|
||||||
{
|
{
|
||||||
@ -25,17 +37,5 @@
|
|||||||
BonusResult = BonusResult.Value
|
BonusResult = BonusResult.Value
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public PostValues()
|
|
||||||
{
|
|
||||||
BaseCost = new BaseCost();
|
|
||||||
BonusBase = new BonusBase();
|
|
||||||
PriceUP = new PriceUP();
|
|
||||||
PriceUP_PR = new PriceUP_PR();
|
|
||||||
PriceUP_Year = new PriceUP_Year();
|
|
||||||
PriceUP_Year_PR = new PriceUP_Year_PR();
|
|
||||||
NPVNI = new NPVNI();
|
|
||||||
BonusResult = new BonusResult();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,8 +1,9 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using EvoCalculator.Core.Base.PostValues;
|
||||||
using EvoCalculator.Core.Calculation.v1.Columns;
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Post
|
namespace EvoCalculator.Core.Calculation.v1.PostValues
|
||||||
{
|
{
|
||||||
public class PriceUP : BasePostValue<decimal>
|
public class PriceUP : BasePostValue<decimal>
|
||||||
{
|
{
|
||||||
13
EvoCalculator.Core.Calculation/v1/PostValues/PriceUP_PR.cs
Normal file
13
EvoCalculator.Core.Calculation/v1/PostValues/PriceUP_PR.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using EvoCalculator.Core.Base.PostValues;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v1.PostValues
|
||||||
|
{
|
||||||
|
public class PriceUP_PR : BasePostValue<double>
|
||||||
|
{
|
||||||
|
public void ComputeValue(PreparedValues preparedValues, PostValues postValues)
|
||||||
|
{
|
||||||
|
Value = (double)postValues.PriceUP.Value / (double)preparedValues.PriceUpTotal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,6 +1,7 @@
|
|||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Base.PostValues;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Calculation.v1.Post
|
namespace EvoCalculator.Core.Calculation.v1.PostValues
|
||||||
{
|
{
|
||||||
public class PriceUP_Year : BasePostValue<decimal>
|
public class PriceUP_Year : BasePostValue<decimal>
|
||||||
{
|
{
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
using EvoCalculator.Core.Base.PostValues;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v1.PostValues
|
||||||
|
{
|
||||||
|
public class PriceUP_Year_PR : BasePostValue<double>
|
||||||
|
{
|
||||||
|
public void ComputeValue(PreparedValues preparedValues, PostValues postValues)
|
||||||
|
{
|
||||||
|
Value = (double)postValues.PriceUP_Year.Value / (double)preparedValues.PriceUpTotal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
22
EvoCalculator.Core.Calculation/v2/Columns/CashflowColumn.cs
Normal file
22
EvoCalculator.Core.Calculation/v2/Columns/CashflowColumn.cs
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class CashflowColumn : BaseColumnWithXIRR
|
||||||
|
{
|
||||||
|
public CashflowColumn(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedValues preparedValues, SumColumn sumColumn,
|
||||||
|
NegativeCashflowColumn negativeCashflowColumn, SubsidyExpensesColumn subsidyExpensesColumn)
|
||||||
|
{
|
||||||
|
Values[0] = -preparedValues.AcquisitionExpenses;
|
||||||
|
Values[1] = sumColumn.Values[1] - preparedValues.SubsidySum;
|
||||||
|
for (var i = 2; i < Values.Length; i++)
|
||||||
|
Values[i] = sumColumn.Values[i] + negativeCashflowColumn.Values[i] + subsidyExpensesColumn.GetValue(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class CashflowLeasingColumn : BaseColumnWithXIRR
|
||||||
|
{
|
||||||
|
public CashflowLeasingColumn(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedValues preparedValues, SumColumn sumColumn,
|
||||||
|
NegativeCashflowColumn negativeCashflowColumn,
|
||||||
|
NSIBBruttoGrColumn nsibBruttoGrColumn, TLM_GrColumn tlmGrColumn, GPS_GrColumn gpsGrColumn,
|
||||||
|
SubsidyExpensesColumn subsidyExpensesColumn)
|
||||||
|
{
|
||||||
|
Values[0] = -preparedValues.AcquisitionExpenses;
|
||||||
|
Values[1] = sumColumn.Values[1] - preparedValues.SubsidySum;
|
||||||
|
for (var i = 2; i < Values.Length; i++)
|
||||||
|
Values[i] = sumColumn.Values[i]
|
||||||
|
+ negativeCashflowColumn.Values[i]
|
||||||
|
- nsibBruttoGrColumn.Values[i]
|
||||||
|
- tlmGrColumn.Values[i]
|
||||||
|
- gpsGrColumn.Values[i]
|
||||||
|
+ subsidyExpensesColumn.GetValue(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class BaseCashflowMSFOColumn : EvoCalculator.Core.Calculation.v1.Columns.BaseCashflowMSFOColumn
|
||||||
|
{
|
||||||
|
protected readonly SubsidyExpensesColumn _subsidyExpensesColumn;
|
||||||
|
|
||||||
|
protected override void FillValues()
|
||||||
|
{
|
||||||
|
Values[0] = -_preparedValues.AcquisitionExpenses - _preparedValues.FuelCardSum;
|
||||||
|
Values[1] = _sumColumn.Values[1] + _npvBonusExpensesColumn.Values[1] +
|
||||||
|
_agentComissionExpensesColumn.Values[1] - _preparedValues.SubsidySum;
|
||||||
|
for (var i = 2; i < Values.Length; i++)
|
||||||
|
Values[i] = _sumColumn.Values[i]
|
||||||
|
+ _negativeCashflowColumn.Values[i]
|
||||||
|
- _nsibBruttoGrColumn.Values[i]
|
||||||
|
- _tlmGrColumn.Values[i]
|
||||||
|
- _gpsGrColumn.Values[i]
|
||||||
|
+ _npvBonusExpensesColumn.Values[i]
|
||||||
|
+ _agentComissionExpensesColumn.Values[i]
|
||||||
|
+ _subsidyExpensesColumn.Values[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
public BaseCashflowMSFOColumn(int count, DateTempColumn dateTempColumn, PostValues.PostValues postValues,
|
||||||
|
PreparedValues preparedValues, PercentPaymentColumn percentPaymentColumn, SumColumn sumColumn,
|
||||||
|
NegativeCashflowColumn negativeCashflowColumn, NSIBBruttoGrColumn nsibBruttoGrColumn,
|
||||||
|
BaseColumn<decimal> tlmGrColumn, BaseColumn<decimal> gpsGrColumn, BaseColumnWithSum npvBonusExpensesColumn,
|
||||||
|
AgentComissionExpensesColumn agentComissionExpensesColumn, SubsidyExpensesColumn subsidyExpensesColumn) :
|
||||||
|
base(count, dateTempColumn, postValues,
|
||||||
|
preparedValues, percentPaymentColumn, sumColumn, negativeCashflowColumn, nsibBruttoGrColumn,
|
||||||
|
tlmGrColumn,
|
||||||
|
gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn)
|
||||||
|
{
|
||||||
|
_subsidyExpensesColumn = subsidyExpensesColumn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Interfaces.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using TridentGoalSeek;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class CashflowMSFOColumnVT1 : BaseCashflowMSFOColumn, IColumnWithGoalSeek
|
||||||
|
{
|
||||||
|
public CashflowMSFOColumnVT1(int count, DateTempColumn dateTempColumn, PostValues.PostValues postValues,
|
||||||
|
PreparedValues preparedValues, PercentPaymentColumn percentPaymentColumn, SumColumn sumColumn,
|
||||||
|
NegativeCashflowColumn negativeCashflowColumn, NSIBBruttoGrColumn nsibBruttoGrColumn,
|
||||||
|
TLM_GrColumn tlmGrColumn, GPS_GrColumn gpsGrColumn, NPVBonusExpensesColumn npvBonusExpensesColumn,
|
||||||
|
AgentComissionExpensesColumn agentComissionExpensesColumn, SubsidyExpensesColumn subsidyExpensesColumn) :
|
||||||
|
base(count, dateTempColumn, postValues, preparedValues, percentPaymentColumn, sumColumn,
|
||||||
|
negativeCashflowColumn, nsibBruttoGrColumn, tlmGrColumn, gpsGrColumn, npvBonusExpensesColumn,
|
||||||
|
agentComissionExpensesColumn, subsidyExpensesColumn)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public decimal Calculate(decimal inputVariable)
|
||||||
|
{
|
||||||
|
_sumColumn.ComputeValues(inputVariable);
|
||||||
|
FillValues();
|
||||||
|
return Convert.ToDecimal(Nominal);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(decimal requiredValue)
|
||||||
|
{
|
||||||
|
var NUMBER_OF_LARGE_PERCENTS = _percentPaymentColumn.Values
|
||||||
|
.Skip(2)
|
||||||
|
.Take(_percentPaymentColumn.Values.Length - 1)
|
||||||
|
.Where(x => x >= 10).ToArray().Length;
|
||||||
|
|
||||||
|
var goalSeek = new GoalSeek(this);
|
||||||
|
goalSeek.SeekResult(requiredValue,
|
||||||
|
new GoalSeekOptions(
|
||||||
|
startingStabPoint:
|
||||||
|
(_postValues.BaseCost.Value - _preparedValues.FirstPaymentSum) / NUMBER_OF_LARGE_PERCENTS
|
||||||
|
, maximumAttempts: 1000
|
||||||
|
, initialTineSpacing: (_postValues.BaseCost.Value - _preparedValues.FirstPaymentSum) / _preparedValues.Nmper
|
||||||
|
// , focusPercentage: 50
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class CashflowMSFOColumnVT2 : BaseCashflowMSFOColumn
|
||||||
|
{
|
||||||
|
public CashflowMSFOColumnVT2(int count, DateTempColumn dateTempColumn, PostValues.PostValues postValues,
|
||||||
|
PreparedValues preparedValues, PercentPaymentColumn percentPaymentColumn, SumColumn sumColumn,
|
||||||
|
NegativeCashflowColumn negativeCashflowColumn, NSIBBruttoGrColumn nsibBruttoGrColumn,
|
||||||
|
TLM_GrColumn tlmGrColumn, GPS_GrColumn gpsGrColumn, NPVBonusExpensesColumn npvBonusExpensesColumn,
|
||||||
|
AgentComissionExpensesColumn agentComissionExpensesColumn, SubsidyExpensesColumn subsidyExpensesColumn) :
|
||||||
|
base(count, dateTempColumn, postValues, preparedValues, percentPaymentColumn, sumColumn,
|
||||||
|
negativeCashflowColumn, nsibBruttoGrColumn, tlmGrColumn, gpsGrColumn, npvBonusExpensesColumn,
|
||||||
|
agentComissionExpensesColumn, subsidyExpensesColumn)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues()
|
||||||
|
{
|
||||||
|
FillValues();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class CashflowNPVColumn : BaseColumn<decimal>
|
||||||
|
{
|
||||||
|
public CashflowNPVColumn(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedValues preparedValues, SumColumn sumColumn,
|
||||||
|
NPVBonusExpensesColumn npvBonusExpensesColumn, AgentComissionExpensesColumn agentComissionExpensesColumn,
|
||||||
|
TaxColumn taxColumn, NSIBExpensesColumn nsibExpensesColumn, NegativeCashflowColumn negativeCashflowColumn,
|
||||||
|
RatExpensesColumn ratExpensesColumn, TransExpensesColumn transExpensesColumn,
|
||||||
|
TLMExpensesColumn tlmExpensesColumn, GPSExpensesColumn gpsExpensesColumn,
|
||||||
|
SubsidyExpensesColumn subsidyExpensesColumn)
|
||||||
|
{
|
||||||
|
Values[0] = -preparedValues.AcquisitionExpenses;
|
||||||
|
Values[1] = sumColumn.GetValue(1) + npvBonusExpensesColumn.GetValue(1) +
|
||||||
|
agentComissionExpensesColumn.GetValue(1) - taxColumn.GetValue(1) +
|
||||||
|
nsibExpensesColumn.GetValue(1) -
|
||||||
|
preparedValues.SubsidySum;
|
||||||
|
|
||||||
|
for (var i = 2; i < Values.Length; i++)
|
||||||
|
Values[i] = sumColumn.GetValue(i)
|
||||||
|
+ negativeCashflowColumn.GetValue(i)
|
||||||
|
+ npvBonusExpensesColumn.GetValue(i)
|
||||||
|
+ agentComissionExpensesColumn.GetValue(i)
|
||||||
|
+ ratExpensesColumn.GetValue(i)
|
||||||
|
- taxColumn.GetValue(i)
|
||||||
|
+ transExpensesColumn.GetValue(i)
|
||||||
|
+ nsibExpensesColumn.GetValue(i)
|
||||||
|
+ tlmExpensesColumn.GetValue(i)
|
||||||
|
+ gpsExpensesColumn.GetValue(i)
|
||||||
|
+ subsidyExpensesColumn.GetValue(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
29
EvoCalculator.Core.Calculation/v2/Columns/CreditColumn.cs
Normal file
29
EvoCalculator.Core.Calculation/v2/Columns/CreditColumn.cs
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class CreditColumn : BaseColumnWithSum
|
||||||
|
{
|
||||||
|
public CreditColumn(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedValues preparedValues, SumCreditColumn sumCreditColumn)
|
||||||
|
{
|
||||||
|
Values[1] = -sumCreditColumn.GetValue(1) * (decimal)preparedValues.LoanRate / 12;
|
||||||
|
for (var i = 2; i < Values.Length; i++)
|
||||||
|
{
|
||||||
|
if (GetValue(i - 1) < 0)
|
||||||
|
{
|
||||||
|
Values[i] = -sumCreditColumn.GetValue(i - 1) * (decimal)preparedValues.LoanRate / 12;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Values[i] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Values[0] = Sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class DirectorBonusSumColumn : BaseColumnWithSum
|
||||||
|
{
|
||||||
|
public DirectorBonusSumColumn(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedValues preparedValues, PostValues.PostValues postValues)
|
||||||
|
{
|
||||||
|
Values[2] = -1 * (postValues.BonusBase.Value * (decimal)preparedValues.DirectorBonus *
|
||||||
|
(decimal)(1 + preparedValues.SalaryRate) *
|
||||||
|
(decimal)preparedValues.MarketRate * (decimal)preparedValues.DistrictRate
|
||||||
|
+ preparedValues.DirectorBonusNsib * (decimal)(1 + preparedValues.SalaryRate) +
|
||||||
|
preparedValues.RegionalDirectorBonusNsib * (decimal)(1 + preparedValues.SalaryRate));
|
||||||
|
Values[0] = Sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
38
EvoCalculator.Core.Calculation/v2/Columns/ExpensesColumn.cs
Normal file
38
EvoCalculator.Core.Calculation/v2/Columns/ExpensesColumn.cs
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class ExpensesColumn : BaseColumnWithSum
|
||||||
|
{
|
||||||
|
public ExpensesColumn(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(AgentComissionExpensesColumn agentComissionExpensesColumn,
|
||||||
|
RatExpensesColumn ratExpensesColumn, TransExpensesColumn transExpensesColumn,
|
||||||
|
NSIBExpensesColumn nsibExpensesColumn, TLMExpensesColumn tlmExpensesColumn,
|
||||||
|
GPSExpensesColumn gpsExpensesColumn, RegistrExpensesColumn registrExpensesColumn,
|
||||||
|
InsuranceBonusExpensesColumn insuranceBonusExpensesColumn,
|
||||||
|
ComissionBonusExpensesColumn comissionBonusExpensesColumn,
|
||||||
|
NPVBonusExpensesColumn npvBonusExpensesColumn,
|
||||||
|
SubsidyExpensesColumn subsidyExpensesColumn)
|
||||||
|
{
|
||||||
|
for (var i = 1; i < Values.Length; i++)
|
||||||
|
Values[i] =
|
||||||
|
agentComissionExpensesColumn.Values[i]
|
||||||
|
+ ratExpensesColumn.Values[i]
|
||||||
|
+ transExpensesColumn.Values[i]
|
||||||
|
+ nsibExpensesColumn.Values[i]
|
||||||
|
+ tlmExpensesColumn.Values[i]
|
||||||
|
+ gpsExpensesColumn.Values[i]
|
||||||
|
+ registrExpensesColumn.Values[i]
|
||||||
|
+ insuranceBonusExpensesColumn.Values[i]
|
||||||
|
+ comissionBonusExpensesColumn.Values[i]
|
||||||
|
+ npvBonusExpensesColumn.Values[i]
|
||||||
|
+ subsidyExpensesColumn.Values[i];
|
||||||
|
|
||||||
|
Values[0] = Sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
25
EvoCalculator.Core.Calculation/v2/Columns/GPS_GrColumn.cs
Normal file
25
EvoCalculator.Core.Calculation/v2/Columns/GPS_GrColumn.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using EvoCalculator.Core.Tools.Check;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class GPS_GrColumn : BaseColumnWithSum
|
||||||
|
{
|
||||||
|
public GPS_GrColumn(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PostCheck()
|
||||||
|
{
|
||||||
|
new CheckTools().CheckColumnForZeroValue(Values);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedPayments preparedPayments, PreparedValues preparedValues)
|
||||||
|
{
|
||||||
|
for (var i = 1; i < Values.Length; i++) Values[i] = preparedPayments.Rows[i - 1].GpsCostPayment;
|
||||||
|
|
||||||
|
Values[0] = -Sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using EvoCalculator.Core.Tools.Check;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class KaskoNmperGrColumn : BaseColumnWithSum
|
||||||
|
{
|
||||||
|
public KaskoNmperGrColumn(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PostCheck()
|
||||||
|
{
|
||||||
|
new CheckTools().CheckColumnForZeroValue(Values);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedValues preparedValues, Constants.Calculation constants)
|
||||||
|
{
|
||||||
|
if (preparedValues.NmperInsurance < constants.MaxOnePolicePeriod)
|
||||||
|
Values[1] = preparedValues.InsuranceKasko;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var InsuranceKaskoMonth = preparedValues.NmperInsurance >= constants.MaxOnePolicePeriod
|
||||||
|
? preparedValues.InsuranceKasko / 12
|
||||||
|
: preparedValues.InsuranceKasko / preparedValues.NmperInsurance;
|
||||||
|
for (var i = 1; i < preparedValues.NmperInsurance; i += 12)
|
||||||
|
if (i <= preparedValues.NmperInsurance)
|
||||||
|
{
|
||||||
|
Values[i] = preparedValues.NmperInsurance - i + 1 >= constants.MaxOnePolicePeriod
|
||||||
|
? InsuranceKaskoMonth * 12
|
||||||
|
: InsuranceKaskoMonth * (preparedValues.NmperInsurance - i + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Values[0] = -Sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
using System;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class NPVBonusExpensesColumn : BaseColumnWithSum
|
||||||
|
{
|
||||||
|
public NPVBonusExpensesColumn(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedValues preparedValues, PostValues.PostValues postValues)
|
||||||
|
{
|
||||||
|
Values[1] = -1 * (preparedValues.RatBonus + preparedValues.NsBonus + preparedValues.NsibBonus) *
|
||||||
|
(decimal)(1 + preparedValues.SalaryRate);
|
||||||
|
|
||||||
|
Values[2] = preparedValues.BonusFix > 0
|
||||||
|
? -preparedValues.BonusFix
|
||||||
|
: -1 * postValues.BonusBase.Value * Convert.ToDecimal(preparedValues.Bonus) *
|
||||||
|
(decimal)(1 + preparedValues.SalaryRate) *
|
||||||
|
(decimal)preparedValues.MarketRate * (decimal)preparedValues.DistrictRate;
|
||||||
|
|
||||||
|
|
||||||
|
for (var i = 3; i < Values.Length; i++) Values[i] = 0;
|
||||||
|
|
||||||
|
Values[0] = Sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class SubsidyExpensesColumn : BaseColumnWithSum
|
||||||
|
{
|
||||||
|
public SubsidyExpensesColumn(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedValues preparedValues)
|
||||||
|
{
|
||||||
|
Values[preparedValues.SubsidyPaymentNumber] = preparedValues.SubsidySum;
|
||||||
|
Values[0] = Sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
27
EvoCalculator.Core.Calculation/v2/Columns/SumColumn.cs
Normal file
27
EvoCalculator.Core.Calculation/v2/Columns/SumColumn.cs
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
using System;
|
||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class SumColumn : EvoCalculator.Core.Calculation.v1.Columns.SumColumn
|
||||||
|
{
|
||||||
|
public SumColumn(int count, BaseColumn<DateTime> dateTempColumn, PreparedValues preparedValues,
|
||||||
|
PercentPaymentColumn percentPaymentColumn, v1.PostValues.PostValues postValues,
|
||||||
|
BaseColumn<decimal> nsibBruttoGrColumn) : base(count, dateTempColumn, preparedValues, percentPaymentColumn,
|
||||||
|
postValues, nsibBruttoGrColumn)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void ComputeValues(decimal x)
|
||||||
|
{
|
||||||
|
Values[0] = -_postValues.BaseCost.Value - _preparedValues.FuelCardSum;
|
||||||
|
Values[1] = _preparedValues.FirstPaymentSum;
|
||||||
|
|
||||||
|
for (var i = 2; i < Values.Length - 1; i++) Values[i] = x * (decimal) _percentPaymentColumn.Values[i] / 100;
|
||||||
|
|
||||||
|
Values[^1] = _preparedValues.LastPaymentSum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
31
EvoCalculator.Core.Calculation/v2/Columns/SumCreditColumn.cs
Normal file
31
EvoCalculator.Core.Calculation/v2/Columns/SumCreditColumn.cs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class SumCreditColumn : BaseColumn<decimal>
|
||||||
|
{
|
||||||
|
public SumCreditColumn(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedValues preparedValues, PostValues.PostValues postValues
|
||||||
|
, Constants.Calculation constants, SumColumn sumColumn)
|
||||||
|
{
|
||||||
|
Values[1] = (postValues.BaseCost.Value - sumColumn.GetValue(1)) * (1 + (decimal)constants.VatValue);
|
||||||
|
Values[2] = Values[1];
|
||||||
|
|
||||||
|
for (var i = 3; i < Values.Length; i++)
|
||||||
|
{
|
||||||
|
if (GetValue(i - 1) > 0)
|
||||||
|
{
|
||||||
|
Values[i] = GetValue(i - 1) - GetValue(2) / preparedValues.LoanRatePeriod;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Values[i] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
25
EvoCalculator.Core.Calculation/v2/Columns/TLM_GrColumn.cs
Normal file
25
EvoCalculator.Core.Calculation/v2/Columns/TLM_GrColumn.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
using EvoCalculator.Core.Tools.Check;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class TLM_GrColumn : BaseColumnWithSum
|
||||||
|
{
|
||||||
|
public TLM_GrColumn(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PostCheck()
|
||||||
|
{
|
||||||
|
new CheckTools().CheckColumnForZeroValue(Values);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedPayments preparedPayments, PreparedValues preparedValues)
|
||||||
|
{
|
||||||
|
for (var i = 1; i < Values.Length; i++) Values[i] = preparedPayments.Rows[i - 1].TlmCostPayment;
|
||||||
|
|
||||||
|
Values[0] = -Sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
45
EvoCalculator.Core.Calculation/v2/Columns/TaxColumn.cs
Normal file
45
EvoCalculator.Core.Calculation/v2/Columns/TaxColumn.cs
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
using EvoCalculator.Core.Base.Columns;
|
||||||
|
using EvoCalculator.Core.Calculation.v1.Columns;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
|
|
||||||
|
namespace EvoCalculator.Core.Calculation.v2.Columns
|
||||||
|
{
|
||||||
|
public class TaxColumn : BaseColumnWithSum
|
||||||
|
{
|
||||||
|
public TaxColumn(int count) : base(count)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ComputeValues(PreparedValues preparedValues, Constants.Calculation constants, SumColumn sumColumn,
|
||||||
|
AcceptInsuranceColumn acceptInsuranceColumn, DeprecationColumn deprecationColumn,
|
||||||
|
RatExpensesColumn ratExpensesColumn, RegistrExpensesColumn registrExpensesColumn,
|
||||||
|
ComissionBonusExpensesColumn comissionBonusExpensesColumn, TransExpensesColumn transExpensesColumn,
|
||||||
|
NPVBonusExpensesColumn npvBonusExpensesColumn,
|
||||||
|
AgentComissionExpensesColumn agentComissionExpensesColumn,
|
||||||
|
InsuranceBonusExpensesColumn insuranceBonusExpensesColumn, TLMExpensesColumn tlmExpensesColumn,
|
||||||
|
GPSExpensesColumn gpsExpensesColumn, SubsidyExpensesColumn subsidyExpensesColumn)
|
||||||
|
{
|
||||||
|
for (var i = 1; i < Values.Length; i++)
|
||||||
|
Values[i] = (decimal)constants.IncomeTaxValue * (sumColumn.GetValue(i)
|
||||||
|
- acceptInsuranceColumn.GetValue(i)
|
||||||
|
- deprecationColumn.GetValue(i)
|
||||||
|
+ ratExpensesColumn.GetValue(i)
|
||||||
|
+ registrExpensesColumn.GetValue(i)
|
||||||
|
+ comissionBonusExpensesColumn.GetValue(i)
|
||||||
|
+ transExpensesColumn.GetValue(i)
|
||||||
|
+ npvBonusExpensesColumn.GetValue(i)
|
||||||
|
+ agentComissionExpensesColumn.GetValue(i)
|
||||||
|
+ insuranceBonusExpensesColumn.GetValue(i)
|
||||||
|
+ tlmExpensesColumn.GetValue(i)
|
||||||
|
+ gpsExpensesColumn.GetValue(i)
|
||||||
|
+ subsidyExpensesColumn.GetValue(i)
|
||||||
|
- (i == 1
|
||||||
|
? preparedValues.SubsidySum
|
||||||
|
: 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
Values[0] = Sum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user