complete test of columns | fixes | new columns

This commit is contained in:
Chika 2020-10-22 18:05:18 +03:00
parent f90acff617
commit 25f9b80429
27 changed files with 2300 additions and 137 deletions

View File

@ -47,6 +47,7 @@
<e p="AgentComissionExpensesColumn.cs" t="Include" />
<e p="BaseColumn.cs" t="Include" />
<e p="BaseColumnWithXIRR.cs" t="Include" />
<e p="CashflowColumn.cs" t="Include" />
<e p="ComissionBonusExpensesColumn.cs" t="Include" />
<e p="DateColumn.cs" t="Include" />
<e p="DateTempColumn.cs" t="Include" />
@ -59,13 +60,16 @@
<e p="InsuranceBonusExpensesColumn.cs" t="Include" />
<e p="KaskoBonusGrSumColumn.cs" t="Include" />
<e p="KaskoNmperGrColumn.cs" t="Include" />
<e p="NegativeCashflowColumn.cs" t="Include" />
<e p="NPVBonusExpensesColumn.cs" t="Include" />
<e p="NSIBBruttoGrColumn.cs" t="Include" />
<e p="NsibExpensesColumn.cs" t="Include" />
<e p="PercentPaymentColumn.cs" t="Include" />
<e p="RatExpensesColumn.cs" t="Include" />
<e p="RegistrExpensesColumn.cs" t="Include" />
<e p="SumColumn.cs" t="Include" />
<e p="SumWithVATColumn.cs" t="Include" />
<e p="TaxColumn.cs" t="Include" />
<e p="TLM_GRColumn.cs" t="Include" />
<e p="TlmExpensesColumn.cs" t="Include" />
<e p="TransExprensesColumn.cs" t="Include" />
@ -117,7 +121,9 @@
<e p="PreparedParams.cs" t="Include" />
<e p="PreparedPayments.cs" t="Include" />
</e>
<e p="Request" t="Include" />
<e p="Request" t="Include">
<e p="RequestCalculation.cs" t="Include" />
</e>
<e p="Response" t="Include" />
</e>
</e>
@ -146,6 +152,7 @@
<e p="AcceptOsagoTests.cs" t="Include" />
<e p="AcceptSumTests.cs" t="Include" />
<e p="AgentComissionExpensesTests.cs" t="Include" />
<e p="CashflowTests.cs" t="Include" />
<e p="ComissionBonusExpensesTests.cs" t="Include" />
<e p="DateColumnTests.cs" t="Include" />
<e p="DateTempTests.cs" t="Include" />
@ -158,19 +165,24 @@
<e p="InsuranceBonusExpensesTests.cs" t="Include" />
<e p="KaskoBonusGrSumTests.cs" t="Include" />
<e p="KaskoNmperGrTests.cs" t="Include" />
<e p="NegativeCashflowTests.cs" t="Include" />
<e p="NPVBonusExpensesTests.cs" t="Include" />
<e p="NSIBBruttoGrTests.cs" t="Include" />
<e p="NsibExpensesTests.cs" t="Include" />
<e p="PercentPaymentTests.cs" t="Include" />
<e p="RatExpensesTests.cs" t="Include" />
<e p="RegistrExpensesTests.cs" t="Include" />
<e p="SumColumnTest.cs" t="Include" />
<e p="SumTest.cs" t="Include" />
<e p="SumWithVatTests.cs" t="Include" />
<e p="TaxColumnTests.cs" t="Include" />
<e p="TLM_GrTests.cs" t="Include" />
<e p="TlmExpensesTests.cs" t="Include" />
<e p="TransExprensesTests.cs" t="Include" />
<e p="VATColumnTests.cs" t="Include" />
</e>
<e p="Controllers" t="Include" />
<e p="Controller" t="Include">
<e p="CalculationControllerV1Tests.cs" t="Include" />
</e>
<e p="FinanceFormulas" t="Include">
<e p="FinanceFormulasTests.cs" t="Include" />
</e>

View File

@ -14,34 +14,32 @@
</component>
<component name="ChangeListManager">
<list default="true" id="2c3b0650-5589-43d4-b4b7-2979612bb30f" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/AgentComissionExpensesColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/ComissionBonusExpensesColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/ExpensesColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/GPSExpensesColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/InsuranceBonusExpensesColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoBonusGrSumColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NsibExpensesColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/RatExpensesColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/RegistrExpensesColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TLMExpensesColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TransExprensesColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AgentComissionExpensesTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/ComissionBonusExpensesTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/ExpensesTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/GPSExpensesTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/InsuranceBonusExpensesTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/KaskoBonusGrSumTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NsibExpensesTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/RatExpensesTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/RegistrExpensesTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TLMExpensesTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TransExprensesTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NSIBBruttoGrColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NegativeCashflowColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TaxColumn.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NSIBBruttoGrTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NegativeCashflowTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TaxColumnTests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Controller/CalculationControllerV1Tests.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/contentModel.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/contentModel.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedParams.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedParams.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/KaskoNmperGrTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/KaskoNmperGrTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/GPS_GrColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/GPS_GrColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/EvoCalculator.Core.Calculation.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/EvoCalculator.Core.Calculation.csproj" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Constants/EvoCalculator.Core.Constants.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Constants/EvoCalculator.Core.Constants.csproj" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/EvoCalculator.Core.FinanceFormulas.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/EvoCalculator.Core.FinanceFormulas.csproj" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Models/EvoCalculator.Core.Models.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/EvoCalculator.Core.Models.csproj" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/InsuranceBonusExpensesTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/InsuranceBonusExpensesTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVBonusExpensesTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVBonusExpensesTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumColumnTest.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumTest.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/FinanceFormulas/FinanceFormulasTests.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/FinanceFormulas/FinanceFormulasTests.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Tests/EvoCalculator.Core.Tests.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Tests/EvoCalculator.Core.Tests.csproj" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core/EvoCalculator.Core.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core/EvoCalculator.Core.csproj" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
@ -58,11 +56,17 @@
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/9152434B-0FAC-463B-87F2-DD9AF798817F/2e/201d3c41/Assert.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/E2E1F770-6781-48FC-97C9-82BA075D5898/8a/efc30f2b/IGoalSeekAlgorithm.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/F680C866-D120-4163-9634-EBD842255BE9/1BB/ControllerAttribute.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/72/Double.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/49/DateTime.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/F680C866-D120-4163-9634-EBD842255BE9/19F/ApiControllerAttribute.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/18D5A60D-361A-4AFD-A431-F772FA87FCC3/d9/b0109e6d/TestInvoker`1.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/E2E1F770-6781-48FC-97C9-82BA075D5898/92/f4ccca9d/GoalSeekResult.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/F680C866-D120-4163-9634-EBD842255BE9/3D/HttpPostAttribute.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/F680C866-D120-4163-9634-EBD842255BE9/24/ControllerBase.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/9D995D4A-0EBE-4A93-85A6-BE06CB7C70EE/f6/ada9c10c/FactAttribute.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/558EFF1A-6D86-468A-B5D3-8B990CD1FB1A/C/Controller.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/E2E1F770-6781-48FC-97C9-82BA075D5898/d6/c014ca2d/GoalSeekOptions.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/E2E1F770-6781-48FC-97C9-82BA075D5898/89/f5bc57e5/Trident.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/31F94AF4-0455-4C4C-BD4F-AB58A9F2D1BF/2C/Sum.cs" root0="SKIP_HIGHLIGHTING" />
@ -70,35 +74,11 @@
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/AcceptSumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AcceptSumTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/AcceptKaskoColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/AcceptOsagoColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AcceptKaskoTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AcceptOsagoTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/AcceptInsuranceColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AcceptInsuranceTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DeprecationLPColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/DoubleArrayComparer.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationLPColumnTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DeprecationLDColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationLPTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationLDTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumColumnTest.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DeprecationColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVBonusExpensesColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVBonusExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/KaskoBonusGrSumTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoBonusGrSumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AgentComissionExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/AgentComissionExpensesColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/RatExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/RatExpensesColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v2/CalculationController.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TransExprensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TransExprensesColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NsibExpensesTests.cs" />
@ -114,13 +94,37 @@
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/GPSExpensesColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/RegistrExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/RegistrExpensesColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/InsuranceBonusExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/InsuranceBonusExpensesColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/ComissionBonusExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/ComissionBonusExpensesColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/ExpencesColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/ExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/ExpensesColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/ControllerTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/CalculationControllerTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/FinanceFormulas/FinanceFormulasTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DeprecationTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVBonusExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/InsuranceBonusExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/bin/Debug/netcoreapp3.1/Logs/CalculationControllerV1.log" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/GPS_GrColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Controller/CalculationControllerV1Tests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NegativeCashflowTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NegativeCashflowColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NSIBBruttoGrColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NSIBBruttoGrTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/IncomeTaxColumnTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/IncomeTaxColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TaxColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TaxColumnTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumColumnTest.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumTest.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowTests.cs" />
</list>
</option>
</component>
@ -191,7 +195,9 @@
<workItem from="1602854690202" duration="5777000" />
<workItem from="1603096869934" duration="28730000" />
<workItem from="1603193984674" duration="8364000" />
<workItem from="1603277394554" duration="12579000" />
<workItem from="1603277394554" duration="12806000" />
<workItem from="1603354920953" duration="45000" />
<workItem from="1603359602644" duration="12967000" />
</task>
<task id="LOCAL-00001" summary="rename: flow">
<created>1602593830686</created>
@ -200,7 +206,14 @@
<option name="project" value="LOCAL" />
<updated>1602593830686</updated>
</task>
<option name="localTasksCounter" value="2" />
<task id="LOCAL-00002" summary="more columns(expenses)">
<created>1603291353748</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1603291353749</updated>
</task>
<option name="localTasksCounter" value="3" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@ -224,7 +237,8 @@
<option name="ADD_EXTERNAL_FILES_SILENTLY" value="true" />
<option name="CLEAR_INITIAL_COMMIT_MESSAGE" value="true" />
<MESSAGE value="rename: flow" />
<option name="LAST_COMMIT_MESSAGE" value="rename: flow" />
<MESSAGE value="more columns(expenses)" />
<option name="LAST_COMMIT_MESSAGE" value="more columns(expenses)" />
</component>
<component name="WindowStateProjectService">
<state x="1077" y="489" key="#Web_Browsers" timestamp="1602508282238">
@ -239,90 +253,90 @@
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="1108" y="416" key="#com.intellij.ide.ui.customization.CustomizableActionsPanel.FindAvailableActionsDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603119675236" />
<state width="897" height="464" key="DebuggerActiveHint" timestamp="1603289006522">
<state width="503" height="464" key="DebuggerActiveHint" timestamp="1603378893516">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="897" height="464" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289006522" />
<state width="2517" height="396" key="GridCell.Tab.0.bottom" timestamp="1603289059549">
<state width="503" height="464" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603378893516" />
<state width="2517" height="396" key="GridCell.Tab.0.bottom" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059549" />
<state width="2517" height="396" key="GridCell.Tab.0.center" timestamp="1603289059549">
<state width="2517" height="396" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.0.center" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059549" />
<state width="2517" height="396" key="GridCell.Tab.0.left" timestamp="1603289059549">
<state width="2517" height="396" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.0.left" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059549" />
<state width="2517" height="396" key="GridCell.Tab.0.right" timestamp="1603289059549">
<state width="2517" height="396" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.0.right" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059549" />
<state width="2517" height="396" key="GridCell.Tab.1.bottom" timestamp="1603289059550">
<state width="2517" height="396" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.1.bottom" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059550" />
<state width="2517" height="396" key="GridCell.Tab.1.center" timestamp="1603289059550">
<state width="2517" height="396" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.1.center" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059550" />
<state width="2517" height="396" key="GridCell.Tab.1.left" timestamp="1603289059549">
<state width="2517" height="396" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.1.left" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059549" />
<state width="2517" height="396" key="GridCell.Tab.1.right" timestamp="1603289059550">
<state width="2517" height="396" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.1.right" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059550" />
<state width="2517" height="396" key="GridCell.Tab.2.bottom" timestamp="1603289059550">
<state width="2517" height="396" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.2.bottom" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059550" />
<state width="2517" height="396" key="GridCell.Tab.2.center" timestamp="1603289059550">
<state width="2517" height="396" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.2.center" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059550" />
<state width="2517" height="396" key="GridCell.Tab.2.left" timestamp="1603289059550">
<state width="2517" height="396" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.2.left" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059550" />
<state width="2517" height="396" key="GridCell.Tab.2.right" timestamp="1603289059550">
<state width="2517" height="396" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.2.right" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059550" />
<state width="2517" height="396" key="GridCell.Tab.3.bottom" timestamp="1603289059551">
<state width="2517" height="396" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.3.bottom" timestamp="1603379001094">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059551" />
<state width="2517" height="396" key="GridCell.Tab.3.center" timestamp="1603289059550">
<state width="2517" height="396" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001094" />
<state width="2517" height="396" key="GridCell.Tab.3.center" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059550" />
<state width="2517" height="396" key="GridCell.Tab.3.left" timestamp="1603289059550">
<state width="2517" height="396" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.3.left" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059550" />
<state width="2517" height="396" key="GridCell.Tab.3.right" timestamp="1603289059550">
<state width="2517" height="396" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.3.right" timestamp="1603379001093">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059550" />
<state width="2517" height="396" key="GridCell.Tab.4.bottom" timestamp="1603289059551">
<state width="2517" height="396" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001093" />
<state width="2517" height="396" key="GridCell.Tab.4.bottom" timestamp="1603379001094">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059551" />
<state width="2517" height="396" key="GridCell.Tab.4.center" timestamp="1603289059551">
<state width="2517" height="396" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001094" />
<state width="2517" height="396" key="GridCell.Tab.4.center" timestamp="1603379001094">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059551" />
<state width="2517" height="396" key="GridCell.Tab.4.left" timestamp="1603289059551">
<state width="2517" height="396" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001094" />
<state width="2517" height="396" key="GridCell.Tab.4.left" timestamp="1603379001094">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059551" />
<state width="2517" height="396" key="GridCell.Tab.4.right" timestamp="1603289059551">
<state width="2517" height="396" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001094" />
<state width="2517" height="396" key="GridCell.Tab.4.right" timestamp="1603379001094">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2517" height="396" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603289059551" />
<state width="2517" height="396" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603379001094" />
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size" timestamp="1602854431119">
<screen x="0" y="0" width="2560" height="1400" />
</state>
@ -343,22 +357,22 @@
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="498" height="446" key="SwitcherDM/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602684835910" />
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog" timestamp="1603105849632">
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog" timestamp="1603378800499">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603105849632" />
<state x="872" y="433" key="Vcs.Push.Dialog.v2" timestamp="1602755745888">
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603378800499" />
<state x="872" y="433" key="Vcs.Push.Dialog.v2" timestamp="1603291355983">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="872" y="433" key="Vcs.Push.Dialog.v2/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602755745888" />
<state x="872" y="433" key="Vcs.Push.Dialog.v2/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603291355983" />
<state x="898" y="0" width="1161" height="1387" key="dock-window-1" timestamp="1603198596935">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="898" y="0" width="1161" height="1387" key="dock-window-1/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603198596935" />
<state x="930" y="299" width="730" height="801" key="find.popup" timestamp="1603199842938">
<state x="930" y="299" width="730" height="801" key="find.popup" timestamp="1603378523248">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="930" y="299" width="730" height="801" key="find.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603199842938" />
<state x="930" y="299" width="730" height="801" key="find.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603378523248" />
<state x="936" y="330" key="run.anything.popup" timestamp="1603290743275">
<screen x="0" y="0" width="2560" height="1400" />
</state>
@ -389,10 +403,10 @@
<line>143</line>
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core.Tests\Calculation\Columns\InsuranceBonusExpensesTests.cs" initialLine="143">
<startOffsets>
<option value="3648" />
<option value="3875" />
</startOffsets>
<endOffsets>
<option value="3719" />
<option value="3911" />
</endOffsets>
</properties>
<option name="timeStamp" value="9" />
@ -402,14 +416,40 @@
<line>183</line>
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core.Tests\Calculation\Columns\InsuranceBonusExpensesTests.cs" initialLine="183">
<startOffsets>
<option value="4679" />
<option value="4871" />
</startOffsets>
<endOffsets>
<option value="4750" />
<option value="4942" />
</endOffsets>
</properties>
<option name="timeStamp" value="10" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs</url>
<line>35</line>
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core.Calculation\Columns\SumColumn.cs" initialLine="35">
<startOffsets>
<option value="1205" />
</startOffsets>
<endOffsets>
<option value="1206" />
</endOffsets>
</properties>
<option name="timeStamp" value="18" />
</line-breakpoint>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs</url>
<line>17</line>
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core.Calculation\Columns\SumColumn.cs" initialLine="17">
<startOffsets>
<option value="631" />
</startOffsets>
<endOffsets>
<option value="669" />
</endOffsets>
</properties>
<option name="timeStamp" value="19" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
<pin-to-top-manager>
@ -419,5 +459,10 @@
<PinnedItemInfo parentTag="Frame#EvoCalculator.Core.Tests.Calculation.Suite.Columns.KaskoNmperGrTests.KaskoNmperGrTest2" memberName="preparedValues" />
</pinned-members>
</pin-to-top-manager>
<watches-manager>
<configuration name="RiderUnitTests">
<watch expression="Convert.ToDecimal(&#10; (this._preparedValues.BaseCost - this._preparedValues.FirstPaymentSum) /&#10; this._preparedValues.Nmper)" />
</configuration>
</watches-manager>
</component>
</project>

View File

@ -4,6 +4,7 @@ using EvoCalculator.Core.Models.Calculation.Models;
namespace EvoCalculator.Core.Calculation.Columns
{
//TODO: GET IRR HERE
public class BaseColumnWithXIRR : BaseColumn<double>
{
public double IRR { get; set; }

View File

@ -0,0 +1,26 @@
using EvoCalculator.Core.FinanceFormulas;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class CashflowColumn : BaseColumnWithXIRR
{
public CashflowColumn(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
{
}
public void ComputeValues(PreparedValues preparedValues, SumColumn sumColumn,
NegativeCashflowColumn negativeCashflowColumn)
{
Values[0] = -preparedValues.AcquisitionExpenses;
Values[1] = sumColumn.Values[1];
for (var i = 2; i < Values.Length; i++)
{
Values[i] = sumColumn.Values[i] + negativeCashflowColumn.Values[i];
}
var XIRR = new XIRR(Flows);
IRR = XIRR.GetResult();
}
}
}

View File

@ -13,7 +13,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
for (var i = 1; i < Values.Length; i++)
{
Values[i] = preparedPayments.Rows[i - 1].TlmCostPayment;
Values[i] = preparedPayments.Rows[i - 1].GpsCostPayment;
}

View File

@ -0,0 +1,23 @@
using System.Linq;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class NSIBBruttoGrColumn : BaseColumn<double>
{
public NSIBBruttoGrColumn(int count) : base(count)
{
}
public void ComputeValues(PreparedValues preparedValues)
{
Values[1] = 0;
for (var i = 2; i < Values.Length; i++)
{
Values[i] = preparedValues.NsibBrutto / (preparedValues.Nmper - 1);
}
Values[0] = Values.Skip(1).Sum(x => x);
}
}
}

View File

@ -0,0 +1,21 @@
using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns
{
public class NegativeCashflowColumn : BaseColumn<double>
{
public NegativeCashflowColumn(int count) : base(count)
{
}
public void ComputeValues(KaskoNmperGrColumn kaskoNmperGrColumn)
{
for (var i = 1; i < Values.Length; i++)
{
Values[i] = -kaskoNmperGrColumn.Values[i];
}
Values[0] = Values.Skip(1).Sum(x => x);
}
}
}

View File

@ -47,7 +47,9 @@ namespace EvoCalculator.Core.Calculation.Columns
var goalSeek = new GoalSeek(this);
goalSeek.SeekResult(requiredIRR,
new GoalSeekOptions(
startingStabPoint: Convert.ToDecimal(this._preparedValues.BaseCost / this._preparedValues.Nmper)
startingStabPoint: Convert.ToDecimal(
(this._preparedValues.BaseCost - this._preparedValues.FirstPaymentSum) /
this._preparedValues.Nmper)
, tineExplorePercentage: 10
// , maximumAttempts: 10000
// , initialTineSpacing: 1

View File

@ -0,0 +1,40 @@
using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns
{
public class TaxColumn : BaseColumn<double>
{
public TaxColumn(int count) : base(count)
{
}
public void ComputeValues(Constants.Calculation constants, SumColumn sumColumn,
AcceptInsuranceColumn acceptInsuranceColumn, DeprecationColumn deprecationColumn,
RatExpensesColumn ratExpensesColumn, RegistrExpensesColumn registrExpensesColumn,
ComissionBonusExpensesColumn comissionBonusExpensesColumn, TransExprensesColumn transExprensesColumn,
NPVBonusExpensesColumn npvBonusExpensesColumn, AgentComissionExpensesColumn agentComissionExpensesColumn,
InsuranceBonusExpensesColumn insuranceBonusExpensesColumn, TLMExpensesColumn tlmExpensesColumn,
GPSExpensesColumn gpsExpensesColumn)
{
for (var i = 1; i < Values.Length; i++)
{
Values[i] = constants.IncomeTaxValue * (sumColumn.Values[i]
- acceptInsuranceColumn.Values[i]
- deprecationColumn.Values[i]
+ ratExpensesColumn.Values[i]
+ registrExpensesColumn.Values[i]
+ comissionBonusExpensesColumn.Values[i]
+ transExprensesColumn.Values[i]
+ npvBonusExpensesColumn.Values[i]
+ agentComissionExpensesColumn.Values[i]
+ insuranceBonusExpensesColumn.Values[i]
+ tlmExpensesColumn.Values[i]
+ gpsExpensesColumn.Values[i]
);
}
Values[0] = Values.Skip(1).Sum(x => x);
}
}
}

View File

@ -9,4 +9,8 @@
<ProjectReference Include="..\EvoCalculator.Core.Models\EvoCalculator.Core.Models.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
</ItemGroup>
</Project>

View File

@ -5,4 +5,8 @@
<RootNamespace>Constants</RootNamespace>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
</ItemGroup>
</Project>

View File

@ -10,6 +10,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="TridentGoalSeek" Version="1.0.5" />
</ItemGroup>

View File

@ -0,0 +1,10 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Models.Calculation.Models.Request
{
public class RequestCalculation
{
public PreparedValues preparedValues;
public PreparedPayments preparedPayments;
}
}

View File

@ -5,7 +5,6 @@
</PropertyGroup>
<ItemGroup>
<Folder Include="Calculation\Models\Request" />
<Folder Include="Calculation\Models\Response" />
</ItemGroup>
@ -13,4 +12,8 @@
<ProjectReference Include="..\EvoCalculator.Core.Constants\EvoCalculator.Core.Constants.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,200 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class CashflowTests
{
[Fact]
public void CashflowTest1()
{
var preparedValues = new PreparedValues()
{
Nmper = 25,
AcquisitionExpenses = 2507300
};
var dateTempColumn = new DateTempColumn(67)
{
Values = new[]
{
new DateTime(2018, 10, 31),
new DateTime(2018, 10, 31),
new DateTime(2018, 11, 30),
new DateTime(2018, 12, 31),
new DateTime(2019, 1, 31),
new DateTime(2019, 2, 28),
new DateTime(2019, 3, 31),
new DateTime(2019, 4, 30),
new DateTime(2019, 5, 31),
new DateTime(2019, 6, 30),
new DateTime(2019, 7, 31),
new DateTime(2019, 8, 31),
new DateTime(2019, 9, 30),
new DateTime(2019, 10, 31),
new DateTime(2019, 11, 30),
new DateTime(2019, 12, 31),
new DateTime(2020, 1, 31),
new DateTime(2020, 2, 29),
new DateTime(2020, 3, 31),
new DateTime(2020, 4, 30),
new DateTime(2020, 5, 31),
new DateTime(2020, 6, 30),
new DateTime(2020, 7, 31),
new DateTime(2020, 8, 31),
new DateTime(2020, 9, 30),
new DateTime(2020, 10, 31),
new DateTime(2020, 11, 30),
new DateTime(2020, 12, 31),
new DateTime(2021, 1, 31),
new DateTime(2021, 2, 28),
new DateTime(2021, 3, 31),
new DateTime(2021, 4, 30),
new DateTime(2021, 5, 31),
new DateTime(2021, 6, 30),
new DateTime(2021, 7, 31),
new DateTime(2021, 8, 31),
new DateTime(2021, 9, 30),
new DateTime(2021, 10, 31),
new DateTime(2021, 11, 30),
new DateTime(2021, 12, 31),
new DateTime(2022, 1, 31),
new DateTime(2022, 2, 28),
new DateTime(2022, 3, 31),
new DateTime(2022, 4, 30),
new DateTime(2022, 5, 31),
new DateTime(2022, 6, 30),
new DateTime(2022, 7, 31),
new DateTime(2022, 8, 31),
new DateTime(2022, 9, 30),
new DateTime(2022, 10, 31),
new DateTime(2022, 11, 30),
new DateTime(2022, 12, 31),
new DateTime(2023, 1, 31),
new DateTime(2023, 2, 28),
new DateTime(2023, 3, 31),
new DateTime(2023, 4, 30),
new DateTime(2023, 5, 31),
new DateTime(2023, 6, 30),
new DateTime(2023, 7, 31),
new DateTime(2023, 8, 31),
new DateTime(2023, 9, 30),
new DateTime(2023, 10, 31),
new DateTime(2023, 11, 30),
new DateTime(2023, 12, 31),
new DateTime(2024, 1, 31),
new DateTime(2024, 2, 29),
new DateTime(2024, 3, 31),
}
};
var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn, preparedValues,
new PercentPaymentColumn(preparedValues.Nmper + 1))
{
Values = new[]
{
-2542903.66268442,
625000,
120000,
120000,
120000,
120000,
120000,
120000,
120000,
120000,
120000,
120000,
108000,
108000,
108000,
108000,
108000,
108000,
108000,
108000,
108000,
108000,
108000,
96000,
96000,
25000,
}
};
var negativeCashFlow = new NegativeCashflowColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
-110416.666666667,
-53000,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
-57416.6666666667,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
}
};
var cashflowColumn = new CashflowColumn(preparedValues.Nmper + 1, dateTempColumn);
cashflowColumn.ComputeValues(preparedValues, sumColumn, negativeCashFlow);
var expected = new[]
{
-2507300,
625000,
120000,
120000,
120000,
120000,
120000,
120000,
120000,
120000,
120000,
120000,
108000,
50583.3333333333,
108000,
108000,
108000,
108000,
108000,
108000,
108000,
108000,
108000,
96000,
96000,
25000,
};
Assert.Equal(expected.Length, cashflowColumn.Values.Length);
Assert.Equal(0.3878, cashflowColumn.IRR, new DoubleArrayComparer(0.1));
Assert.Equal(expected, cashflowColumn.Values, new DoubleArrayComparer());
}
}
}

View File

@ -53,7 +53,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
};
var deprectionLDColumn = new DeprecationLDColumn(preparedValues.NmperDeprecation + 2)
var deprecationLDColumn = new DeprecationLDColumn(preparedValues.NmperDeprecation + 2)
{
Values = new[]
{
@ -100,7 +100,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
};
var deprecationColumn = new DeprecationColumn(preparedValues.NmperDeprecation + 2);
deprecationColumn.ComputeValues(deprecationLPColumn, deprectionLDColumn);
deprecationColumn.ComputeValues(deprecationLPColumn, deprecationLDColumn);
var expected = new[]
{

View File

@ -16,8 +16,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
Nmper = 27
};
var targetColumn = new InsuranceBonusExpensesColumn(preparedValues.Nmper + 1);
targetColumn.ComputeValues(preparedValues);
var insuranceBonusExpensesColumn = new InsuranceBonusExpensesColumn(preparedValues.Nmper + 1);
insuranceBonusExpensesColumn.ComputeValues(preparedValues);
var expected = new[]
@ -53,8 +53,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
};
Assert.Equal(expected.Length, targetColumn.Values.Length);
Assert.Equal(expected, targetColumn.Values, new DoubleArrayComparer());
Assert.Equal(expected.Length, insuranceBonusExpensesColumn.Values.Length);
Assert.Equal(expected, insuranceBonusExpensesColumn.Values, new DoubleArrayComparer());
}
[Fact]
@ -67,8 +67,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
Nmper = 24
};
var targetColumn = new InsuranceBonusExpensesColumn(preparedValues.Nmper + 1);
targetColumn.ComputeValues(preparedValues);
var insuranceBonusExpensesColumn = new InsuranceBonusExpensesColumn(preparedValues.Nmper + 1);
insuranceBonusExpensesColumn.ComputeValues(preparedValues);
var expected = new[]
@ -101,8 +101,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
};
Assert.Equal(expected.Length, targetColumn.Values.Length);
Assert.Equal(expected, targetColumn.Values, new DoubleArrayComparer());
Assert.Equal(expected.Length, insuranceBonusExpensesColumn.Values.Length);
Assert.Equal(expected, insuranceBonusExpensesColumn.Values, new DoubleArrayComparer());
}
[Fact]
@ -115,8 +115,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
Nmper = 15
};
var targetColumn = new InsuranceBonusExpensesColumn(preparedValues.Nmper + 1);
targetColumn.ComputeValues(preparedValues);
var insuranceBonusExpensesColumn = new InsuranceBonusExpensesColumn(preparedValues.Nmper + 1);
insuranceBonusExpensesColumn.ComputeValues(preparedValues);
var expected = new[]
@ -140,8 +140,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
};
Assert.Equal(expected.Length, targetColumn.Values.Length);
Assert.Equal(expected, targetColumn.Values, new DoubleArrayComparer());
Assert.Equal(expected.Length, insuranceBonusExpensesColumn.Values.Length);
Assert.Equal(expected, insuranceBonusExpensesColumn.Values, new DoubleArrayComparer());
}
[Fact]

View File

@ -9,7 +9,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
[Fact]
public void NPVBonusExpensesTest1()
{
var preparedValue = new PreparedValues
var preparedValues = new PreparedValues
{
SalaryRate = 0.3,
MarketRate = 0.01,
@ -24,8 +24,8 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
};
var npvBonusExpensesColumn = new NPVBonusExpensesColumn(preparedValue.Nmper + 1);
npvBonusExpensesColumn.ComputeValues(preparedValue);
var npvBonusExpensesColumn = new NPVBonusExpensesColumn(preparedValues.Nmper + 1);
npvBonusExpensesColumn.ComputeValues(preparedValues);
var expected = new[]
{

View File

@ -0,0 +1,62 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class NSIBBruttoGrTests
{
[Fact]
public void NSIBBruttoGrTest1()
{
var preparedValues = new PreparedValues()
{
Nmper = 30,
NsibBrutto = 23842.50
};
var nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper + 1);
nsibBruttoGrColumn.ComputeValues(preparedValues);
var expected = new[]
{
23842.5,
0,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
822.155172413793,
};
Assert.Equal(expected.Length, nsibBruttoGrColumn.Values.Length);
Assert.Equal(expected, nsibBruttoGrColumn.Values, new DoubleArrayComparer());
}
}
}

View File

@ -0,0 +1,100 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class NegativeCashflowTests
{
[Fact]
public void NegativeCashflowTest1()
{
var preparedValues = new PreparedValues()
{
Nmper = 30
};
var kaskoNmperGrColumn =
new KaskoNmperGrColumn(preparedValues.Nmper + 1, new DateTempColumn(preparedValues.Nmper))
{
Values = new[]
{
-114237.279504698,
53000,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
53000,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
26500,
0.00,
0.00,
0.00,
0.00,
0.00,
}
};
var negativeCashflowColumn = new NegativeCashflowColumn(preparedValues.Nmper + 1);
negativeCashflowColumn.ComputeValues(kaskoNmperGrColumn);
var expected = new[]
{
-132500.00,
-53000.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
-53000.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
-26500.00,
0.00,
0.00,
0.00,
0.00,
0.00,
};
Assert.Equal(expected.Length, negativeCashflowColumn.Values.Length);
Assert.Equal(expected, negativeCashflowColumn.Values, new DoubleArrayComparer());
}
}
}

View File

@ -5,10 +5,10 @@ using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class SumColumnTests
public class SumTests
{
[Fact]
public void SumColumnTest1()
public void SumTest1()
{
var preparedValues =
new PreparedValues()
@ -180,7 +180,7 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
}
[Fact]
public void SumColumnTest2()
public void SumTest2()
{
var preparedValues =
new PreparedValues()
@ -308,5 +308,143 @@ namespace EvoCalculator.Core.Tests.Calculation.Columns
var values = sumColumn.Values;
Assert.Equal(expected, values, new DoubleArrayComparer(100));
}
[Fact]
public void SumTest3()
{
var preparedValues =
new PreparedValues()
{
BaseCost = 2586532.79187453,
FirstPaymentSum = 805000,
Nmper = 16,
LastPaymentSum = 23000,
IrrExpected = 0.23
};
var percentPaymentColumn = new PercentPaymentColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
0.00,
0.00,
100.00,
100.00,
100.00,
100.00,
100.00,
100.00,
100.00,
100.00,
100.00,
100.00,
100.00,
100.00,
100.00,
100.00,
0.00,
}
};
var dateTempColumn = new DateTempColumn(67)
{
Values = new[]
{
new DateTime(2020, 10, 12),
new DateTime(2020, 10, 12),
new DateTime(2020, 11, 12),
new DateTime(2020, 12, 12),
new DateTime(2021, 1, 12),
new DateTime(2021, 2, 12),
new DateTime(2021, 3, 12),
new DateTime(2021, 4, 12),
new DateTime(2021, 5, 12),
new DateTime(2021, 6, 12),
new DateTime(2021, 7, 12),
new DateTime(2021, 8, 12),
new DateTime(2021, 9, 12),
new DateTime(2021, 10, 12),
new DateTime(2021, 11, 12),
new DateTime(2021, 12, 12),
new DateTime(2022, 1, 12),
new DateTime(2022, 2, 12),
new DateTime(2022, 3, 12),
new DateTime(2022, 4, 12),
new DateTime(2022, 5, 12),
new DateTime(2022, 6, 12),
new DateTime(2022, 7, 12),
new DateTime(2022, 8, 12),
new DateTime(2022, 9, 12),
new DateTime(2022, 10, 12),
new DateTime(2022, 11, 12),
new DateTime(2022, 12, 12),
new DateTime(2023, 1, 12),
new DateTime(2023, 2, 12),
new DateTime(2023, 3, 12),
new DateTime(2023, 4, 12),
new DateTime(2023, 5, 12),
new DateTime(2023, 6, 12),
new DateTime(2023, 7, 12),
new DateTime(2023, 8, 12),
new DateTime(2023, 9, 12),
new DateTime(2023, 10, 12),
new DateTime(2023, 11, 12),
new DateTime(2023, 12, 12),
new DateTime(2024, 1, 12),
new DateTime(2024, 2, 12),
new DateTime(2024, 3, 12),
new DateTime(2024, 4, 12),
new DateTime(2024, 5, 12),
new DateTime(2024, 6, 12),
new DateTime(2024, 7, 12),
new DateTime(2024, 8, 12),
new DateTime(2024, 9, 12),
new DateTime(2024, 10, 12),
new DateTime(2024, 11, 12),
new DateTime(2024, 12, 12),
new DateTime(2025, 1, 12),
new DateTime(2025, 2, 12),
new DateTime(2025, 3, 12),
new DateTime(2025, 4, 12),
new DateTime(2025, 5, 12),
new DateTime(2025, 6, 12),
new DateTime(2025, 7, 12),
new DateTime(2025, 8, 12),
new DateTime(2025, 9, 12),
}
};
var expected = new[]
{
-2586532.79187453,
805000,
143021.219846191,
143021.219846191,
143021.219846191,
143021.219846191,
143021.219846191,
143021.219846191,
143021.219846191,
143021.219846191,
143021.219846191,
143021.219846191,
143021.219846191,
143021.219846191,
143021.219846191,
143021.219846191,
23000,
};
var sumColumn = new SumColumn(
preparedValues.Nmper + 1
, dateTempColumn
, preparedValues
, percentPaymentColumn);
sumColumn.ComputeValues(Convert.ToDecimal(preparedValues.IrrExpected));
var values = sumColumn.Values;
Assert.Equal(expected, values, new DoubleArrayComparer(100));
}
}
}

View File

@ -0,0 +1,457 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class TaxColumnTests
{
[Fact]
public void TaxColumnTest1()
{
var preparedValues = new PreparedValues()
{
Nmper = 25
};
var sumColumn = new SumColumn(preparedValues.Nmper + 1, new DateTempColumn(preparedValues.Nmper + 1),
preparedValues, new PercentPaymentColumn(preparedValues.Nmper + 1))
{
Values = new[]
{
-2542903.66268442,
625000,
120000,
120000,
120000,
120000,
120000,
120000,
120000,
120000,
120000,
120000,
108000,
108000,
108000,
108000,
108000,
108000,
108000,
108000,
108000,
108000,
108000,
96000,
96000,
25000,
}
};
var acceptInsuranceColumn = new AcceptInsuranceColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
140416.666666667,
0.00,
7327.96717171717,
7327.96717171717,
7327.96717171717,
7327.96717171717,
7327.96717171717,
7327.96717171717,
7327.96717171717,
7327.96717171717,
7327.96717171717,
7327.96717171717,
7327.96717171717,
4600.69444444444,
4600.69444444444,
4600.69444444444,
4600.69444444444,
4600.69444444444,
4600.69444444444,
4600.69444444444,
4600.69444444444,
4600.69444444444,
4600.69444444444,
4600.69444444444,
4600.69444444444,
4600.69444444444,
}
};
var deprecationColumn = new DeprecationColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
2525456.22292856,
488671.869761719,
93824.99899425,
93824.99899425,
93824.99899425,
93824.99899425,
93824.99899425,
93824.99899425,
93824.99899425,
93824.99899425,
93824.99899425,
93824.99899425,
84442.499094825,
84442.499094825,
84442.499094825,
84442.499094825,
84442.499094825,
84442.499094825,
84442.499094825,
84442.499094825,
84442.499094825,
84442.499094825,
84442.499094825,
75059.9991954,
75059.9991954,
19546.8747904687,
}
};
var ratExpensesColumn = new RatExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
-6000,
-12000,
0.00,
0.00,
6000,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
}
};
var registrExpensesColumn = new RegistrExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
-2300,
-2300,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
}
};
var comissionBonusExpensesColumn = new ComissionBonusExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
125000,
125000,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
}
};
var transExprensesColumn = new TransExprensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
-18750,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
-9000,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
-9000,
-750,
}
};
var npvBonusExpensesColumn = new NPVBonusExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
-19774.2041520833,
-1389.58909375,
-18384.6150583333,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
}
};
var agentComissionExpensesColumn = new AgentComissionExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
-446104.166666667,
0.00,
-446104.166666667,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
}
};
var insuranceBonusExpensesColumn = new InsuranceBonusExpensesColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
26337.50,
0.00,
12642.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
13695.50,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
0.00,
}
};
var tlmExpensesColumn = new TLMExpensesColumn(preparedValues.Nmper + 1)
{
Values = new double[]
{
-40000,
-20000,
-1600,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
-800,
}
};
var gpsExpensesColumn = new GPSExpensesColumn(preparedValues.Nmper + 1)
{
Values = new double[]
{
-30000,
-15000,
-1200,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
-600,
}
};
var incomeTaxColumn = new TaxColumn(preparedValues.Nmper + 1);
incomeTaxColumn.ComputeValues(new Constants.Calculation(), sumColumn, acceptInsuranceColumn,
deprecationColumn, ratExpensesColumn, registrExpensesColumn, comissionBonusExpensesColumn,
transExprensesColumn, npvBonusExpensesColumn, agentComissionExpensesColumn,
insuranceBonusExpensesColumn, tlmExpensesColumn, gpsExpensesColumn);
var expected = new[]
{
30507.2479172043,
42127.7082289063,
-87159.9495781934,
3489.40676680657,
4689.40676680657,
3489.40676680657,
3489.40676680657,
3489.40676680657,
3489.40676680657,
3489.40676680657,
3489.40676680657,
3489.40676680657,
1165.90674669157,
6250.46129214612,
3511.36129214612,
3511.36129214612,
3511.36129214612,
3511.36129214612,
3511.36129214612,
3511.36129214612,
3511.36129214612,
3511.36129214612,
3511.36129214612,
2987.86127203112,
1187.86127203112,
-259.513846982638,
};
Assert.Equal(expected.Length, incomeTaxColumn.Values.Length);
Assert.Equal(expected, incomeTaxColumn.Values, new DoubleArrayComparer());
}
}
}

View File

@ -0,0 +1,850 @@
using System;
using System.IO;
using EvoCalculator.Core.Controllers.V1;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using EvoCalculator.Core.Models.Calculation.Models.Request;
using Newtonsoft.Json;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Controller
{
public class CalculationControllerV1Tests
{
[Fact]
public void Test1()
{
var preparedValues = new PreparedValues()
{
CalcDate = new DateTime(2020, 01, 01),
IrrExpected = 0.23,
NpvniExpected = 0.05,
TotalExpected = 0,
Leasing0K = 1,
LoanRate = 0.07,
BalanceHolder = 100000000,
DogDate = new DateTime(2020, 10, 12),
DeliveryTime = 100000001,
Nmper = 16,
FirstPayment = 0.35,
FirstPaymentSum = 805000,
FirstPaymentAbs = 0,
FirstPaymentNdsAbs = 0,
FirstPaymentWithNdsAbs = 0,
LastPayment = 0.01,
LastPaymentSum = 23000,
ScheduleOfPayments = 100000000,
ComissionRub = 46000,
PlPrice = 2300000,
Discount = 115000,
AcceptSum = 2185000,
PlYear = 0,
CarCapacity = 0,
MotorVolume = 0,
PlEngineType = 0,
CarCarrying = 0,
AgentsSum = 13885.675,
DoubleAgentsSum = 16662.81,
DeliverySum = 15295,
BrokerSum = 17480,
BrokerOfDeliverySum = 19665,
FinancialDeptOfDeliverySum = 21850,
ImporterSum = 19166.6666666667,
Bonus = 0.011,
BonusFix = 0,
MarketRate = 0.01,
DistrictRate = 0.02,
SalaryRate = 0.3,
RatBonus = 210,
NsBonus = 210,
NsibBonus = 592.64688,
Rats = 7000,
BaseRatCost = 7000,
RetroBonus = 3500,
Registration = 3000,
BaseRegistration = 2570,
TransTax = 0,
TransIncludeGr = true,
TransportTaxGrYear = 35000,
TransportTaxGr = 46666.6666666667,
TrackerCost = 15000,
TLMCost = 22000,
InsuranceKasko = 85548,
NmperInsurance = 16,
InsuranceOsago = 12560,
Insurance = 98108,
InsuranceKaskoNmper = 213870,
InsuranceContract = 226430,
InsuranceBonus = 0,
NsibBase = 2116596,
NsibBrutto = 19754.896,
NsibNetto = 2822.128,
Repayment = 0.25,
NmperDeprecation = 37,
DeprecationTime = 5.6,
CalculationCost = 2445108,
PriceUpTotal = 2703584.896,
AcquisitionExpenses = 2283678,
NpvBase = 1480794.596,
NiAtInception = 19166.6666666667,
BonusBase = 1513378.6,
BaseCost = 2586532.79187453,
};
var preparedPayments = new PreparedPayments()
{
Rows = new[]
{
new PaymentRow
{
NumberPayment = 1,
PercentPayment = 0.00,
GpsBasePayment = 0.00,
GpsCostPayment = 0.00,
TlmBasePayment = 0.00,
TlmCostPayment = 0.00
},
new PaymentRow
{
NumberPayment = 2,
PercentPayment = 100.00,
GpsBasePayment = 1500.00,
GpsCostPayment = 1800.00,
TlmBasePayment = 1220.00,
TlmCostPayment = 1500.00
},
new PaymentRow
{
NumberPayment = 3,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 4,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 5,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 6,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 7,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 8,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 9,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 10,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 11,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 12,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 13,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 14,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 15,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 16,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
}
};
var requestCalculation = new RequestCalculation()
{
preparedValues = preparedValues,
preparedPayments = preparedPayments
};
var calculationController = new CalculationController();
var res = calculationController.Calculate(requestCalculation);
using var file =
File.CreateText(String.Concat(@".\Logs\CalculationController"
, "_"
, "v1"
, "_"
, "test1"
, "_"
, DateTime.Now.ToString("dd.MM.yyyy_hh.mm.ss")
, ".json"));
var serializer = new JsonSerializer();
serializer.Serialize(file, res);
}
[Fact]
public void Test2()
{
var preparedValues = new PreparedValues()
{
CalcDate = new DateTime(2020, 1, 1),
IrrExpected = 0.22,
NpvniExpected = 0.05,
TotalExpected = 0,
Leasing0K = 1,
LoanRate = 0.07,
BalanceHolder = 100000001,
DogDate = new DateTime(2020, 10, 22),
DeliveryTime = 100000000,
Nmper = 30,
FirstPayment = 0.25,
FirstPaymentSum = 875000,
FirstPaymentAbs = 0,
FirstPaymentNdsAbs = 0,
FirstPaymentWithNdsAbs = 0,
LastPayment = 0.01,
LastPaymentSum = 35000,
ScheduleOfPayments = 100000000,
ComissionRub = 0,
PlPrice = 3500000,
Discount = 175000,
AcceptSum = 3325000,
PlYear = 0,
CarCapacity = 0,
MotorVolume = 0,
PlEngineType = 0,
CarCarrying = 0,
AgentsSum = 21130.375,
DoubleAgentsSum = 25356.45,
DeliverySum = 23275,
BrokerSum = 26600,
BrokerOfDeliverySum = 29925,
FinancialDeptOfDeliverySum = 33250,
ImporterSum = 19166.6666666667,
Bonus = 0.011,
BonusFix = 0,
MarketRate = 0.01,
DistrictRate = 0.02,
SalaryRate = 0.3,
RatBonus = 210,
NsBonus = 210,
NsibBonus = 121.74786,
Rats = 7000,
BaseRatCost = 7000,
RetroBonus = 3500,
Registration = 3000,
BaseRegistration = 2570,
TransTax = 0,
TransIncludeGr = true,
TransportTaxGrYear = 35000,
TransportTaxGr = 87500,
TrackerCost = 15000,
TLMCost = 22000,
InsuranceKasko = 85548,
NmperInsurance = 12,
InsuranceOsago = 12560,
Insurance = 98108,
InsuranceKaskoNmper = 85548,
InsuranceContract = 98108,
InsuranceBonus = 37089.8791666667,
NsibBase = 3246609.6,
NsibBrutto = 4058.262,
NsibNetto = 7304.8716,
Repayment = 0.25,
NmperDeprecation = 37,
DeprecationTime = 5.6,
CalculationCost = 3645108,
PriceUpTotal = 3759566.262,
AcquisitionExpenses = 3469678,
NpvBase = 2597599.94864,
NiAtInception = 19166.6666666667,
BonusBase = 2548108,
BaseCost = 3689559.59284717,
};
var preparedPayments = new PreparedPayments()
{
Rows = new[]
{
new PaymentRow
{
NumberPayment = 1,
PercentPayment = 0.00,
GpsBasePayment = 0.00,
GpsCostPayment = 0.00,
TlmBasePayment = 0.00,
TlmCostPayment = 0.00
},
new PaymentRow
{
NumberPayment = 2,
PercentPayment = 100.00,
GpsBasePayment = 1500.00,
GpsCostPayment = 1800.00,
TlmBasePayment = 1220.00,
TlmCostPayment = 1500.00
},
new PaymentRow
{
NumberPayment = 3,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 4,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 5,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 6,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 7,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 8,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 9,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 10,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 11,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 12,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 13,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 14,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 15,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 16,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 17,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 18,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 19,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 20,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 21,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 22,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 23,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 24,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 25,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 26,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 27,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 28,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 29,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
new PaymentRow
{
NumberPayment = 30,
PercentPayment = 100.00,
GpsBasePayment = 750.00,
GpsCostPayment = 900.00,
TlmBasePayment = 610.00,
TlmCostPayment = 800.00
},
}
};
var requestCalculation = new RequestCalculation()
{
preparedValues = preparedValues,
preparedPayments = preparedPayments
};
var calculationController = new CalculationController();
var res = calculationController.Calculate(requestCalculation);
using var file =
File.CreateText(String.Concat(@".\Logs\CalculationController"
, "_"
, "v1"
, "_"
, "test2"
, "_"
, DateTime.Now.ToString("dd.MM.yyyy_hh.mm.ss")
, ".json"));
var serializer = new JsonSerializer();
serializer.Serialize(file, res);
}
}
}

View File

@ -2,11 +2,10 @@
using System.Linq;
using EvoCalculator.Core.FinanceFormulas;
using EvoCalculator.Core.Models.Calculation.Models;
using TridentGoalSeek;
using Xunit;
using Xunit.Abstractions;
namespace EvoCalculator.Core.Tests.Calculation.Suite
namespace EvoCalculator.Core.Tests.Calculation.FinanceFormulas
{
public class FinanceFormulasTests
{

View File

@ -8,6 +8,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
<PackageReference Include="coverlet.collector" Version="1.2.0" />
@ -18,8 +19,4 @@
<ProjectReference Include="..\EvoCalculator.Core\EvoCalculator.Core.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Calculation\Controllers" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,167 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Request;
using Microsoft.AspNetCore.Mvc;
namespace EvoCalculator.Core.Controllers.V1
{
[ApiController]
[ApiVersion("1.0")]
[Route("api/v{version:apiVersion}/[controller]")]
public class CalculationController : Controller
{
[HttpPost]
public ActionResult<object> Calculate([FromBody] RequestCalculation requestCalculation)
{
var preparedValues = requestCalculation.preparedValues;
var preparedPayments = requestCalculation.preparedPayments;
var constants = new Constants.Calculation();
var dateColumn = new DateColumn(requestCalculation.preparedValues.Nmper + 1);
dateColumn.ComputeValues(preparedValues, constants);
var dateTempColumn = new DateTempColumn(67);
dateTempColumn.ComputeValues(preparedValues);
var percentPaymentColumn = new PercentPaymentColumn(preparedPayments.Rows.Length + 1);
percentPaymentColumn.ComputeValues(preparedPayments);
var kaskoNmperGrColumn = new KaskoNmperGrColumn(preparedValues.Nmper + 1, dateTempColumn);
kaskoNmperGrColumn.ComputeValues(preparedValues);
var tlmGrColumn = new TLM_GrColumn(preparedPayments.Rows.Length + 1, dateTempColumn);
tlmGrColumn.ComputeValues(preparedPayments, preparedValues);
var gpsGrColumn = new GPS_GrColumn(preparedPayments.Rows.Length + 1, dateTempColumn);
gpsGrColumn.ComputeValues(preparedPayments, preparedValues);
var sumColumn = new SumColumn(
preparedValues.Nmper + 1
, dateTempColumn
, preparedValues
, percentPaymentColumn);
sumColumn.ComputeValues(Convert.ToDecimal(preparedValues.IrrExpected));
var vatColumn = new VATColumn(preparedValues.Nmper + 1);
vatColumn.ComputeValues(new Constants.Calculation(), sumColumn, preparedValues);
var sumWithVatColumn = new SumWithVATColumn(preparedValues.Nmper + 1);
sumWithVatColumn.ComputeValues(new Constants.Calculation(), sumColumn, preparedValues);
var acceptSumColumn = new AcceptSumColumn(preparedValues.Nmper + 1);
acceptSumColumn.ComputeValues(preparedValues, sumColumn, vatColumn, sumWithVatColumn);
var acceptKaskoColumn = new AcceptKaskoColumn(preparedValues.Nmper + 1);
acceptKaskoColumn.ComputeValues(preparedValues);
var acceptOsagoColumn = new AcceptOsagoColumn(preparedValues.Nmper + 1);
acceptOsagoColumn.ComputeValues(preparedValues);
var acceptInsuranceColumn = new AcceptInsuranceColumn(preparedValues.Nmper + 1);
acceptInsuranceColumn.ComputeValues(acceptKaskoColumn, acceptOsagoColumn);
var deprecationLPColumn = new DeprecationLPColumn(preparedValues.Nmper + 1);
deprecationLPColumn.ComputeValues(preparedValues, acceptSumColumn);
var deprecationLDColumn = new DeprecationLDColumn(preparedValues.NmperDeprecation + 2);
deprecationLDColumn.ComputeValues(preparedValues);
var deprecationColumn = new DeprecationColumn(preparedValues.NmperDeprecation + 2);
deprecationColumn.ComputeValues(deprecationLPColumn, deprecationLDColumn);
var npvBonusExpensesColumn = new NPVBonusExpensesColumn(preparedValues.Nmper + 1);
npvBonusExpensesColumn.ComputeValues(preparedValues);
var kaskoBonusGrSumColumn = new KaskoBonusGrSumColumn(preparedValues.Nmper + 1);
kaskoBonusGrSumColumn.ComputeValues(preparedValues, kaskoNmperGrColumn);
var agentComissionExpensesColumn = new AgentComissionExpensesColumn(preparedValues.Nmper + 1);
agentComissionExpensesColumn.ComputeValues(preparedValues);
var ratExpensesColumn = new RatExpensesColumn(preparedValues.Nmper + 1);
ratExpensesColumn.ComputeValues(preparedValues);
var transExprensesColumn = new TransExprensesColumn(preparedValues.Nmper + 1);
transExprensesColumn.ComputeValues(preparedValues);
var nsibExpensesColumn = new NsibExpensesColumn(preparedValues.Nmper + 1);
nsibExpensesColumn.ComputeValues(preparedValues);
var tlmExpensesColumn = new TLMExpensesColumn(preparedValues.Nmper + 1);
tlmExpensesColumn.ComputeValues(preparedValues, preparedPayments);
var gpsExpensesColumn = new GPSExpensesColumn(preparedValues.Nmper + 1);
gpsExpensesColumn.ComputeValues(preparedValues, preparedPayments);
var registrExpensesColumn = new RegistrExpensesColumn(preparedValues.Nmper + 1);
registrExpensesColumn.ComputeValues(preparedValues);
var insuranceBonusExpensesColumn = new InsuranceBonusExpensesColumn(preparedValues.Nmper + 1);
insuranceBonusExpensesColumn.ComputeValues(preparedValues);
var comissionBonusExpensesColumn = new ComissionBonusExpensesColumn(preparedValues.Nmper + 1);
comissionBonusExpensesColumn.ComputeValues(preparedValues);
var expensesColumn = new ExpensesColumn(preparedValues.Nmper + 1);
expensesColumn.ComputeValues(agentComissionExpensesColumn, ratExpensesColumn, transExprensesColumn,
nsibExpensesColumn, tlmExpensesColumn, gpsExpensesColumn, registrExpensesColumn,
insuranceBonusExpensesColumn, comissionBonusExpensesColumn, npvBonusExpensesColumn);
return new
{
dateColumn,
dateTempColumn,
percentPaymentColumn,
kaskoNmperGrColumn,
tlmGrColumn,
gpsGrColumn,
sumColumn,
vatColumn,
sumWithVatColumn,
acceptSumColumn,
acceptKaskoColumn,
acceptOsagoColumn,
acceptInsuranceColumn,
deprecationLPColumn,
deprecationLDColumn,
deprecationColumn,
npvBonusExpensesColumn,
kaskoBonusGrSumColumn,
agentComissionExpensesColumn,
ratExpensesColumn,
transExprensesColumn,
nsibExpensesColumn,
tlmExpensesColumn,
gpsExpensesColumn,
registrExpensesColumn,
insuranceBonusExpensesColumn,
comissionBonusExpensesColumn,
expensesColumn
};
}
}
}

View File

@ -6,6 +6,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning" Version="4.1.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
</ItemGroup>
<ItemGroup>