merge release/calc-37_calc-by-total-expected

This commit is contained in:
Chika 2021-02-11 18:57:14 +03:00
parent 16b19221d5
commit 69338ff435
137 changed files with 1707 additions and 1401 deletions

View File

@ -9,10 +9,9 @@
<e p="C:\Users\Chika\.nuget\packages\xunit.runner.visualstudio\2.4.0\build\netcoreapp1.0\xunit.runner.reporters.netcoreapp10.dll" t="Include" />
<e p="C:\Users\Chika\.nuget\packages\xunit.runner.visualstudio\2.4.0\build\netcoreapp1.0\xunit.runner.utility.netcoreapp10.dll" t="Include" />
<e p="C:\Users\Chika\.nuget\packages\xunit.runner.visualstudio\2.4.0\build\netcoreapp1.0\xunit.runner.visualstudio.dotnetcore.testadapter.dll" t="Include" />
<e p="C:\Users\Chika\AppData\Local\JetBrains\Rider2020.2\extResources" t="IncludeRecursive" />
<e p="C:\Users\Chika\AppData\Local\JetBrains\Rider2020.2\resharper-host\Local\Transient\Rider\v202\SolutionCaches\_EvoCalculator.Core.1747351465.00" t="ExcludeRecursive" />
<e p="C:\Users\Chika\AppData\Roaming\JetBrains\Rider2020.2\scratches" t="IncludeRecursive" />
<e p="C:\Users\Chika\Projects\EvoCalculator.Core" t="IncludeFlat">
<e p="C:\Users\Chika\AppData\Local\JetBrains\Rider2020.3\extResources" t="IncludeRecursive" />
<e p="C:\Users\Chika\AppData\Local\JetBrains\Rider2020.3\resharper-host\Local\Transient\Rider\v203\SolutionCaches\_EvoCalculator.Core.-1347799741.00" t="ExcludeRecursive" />
<e p="C:\Users\Chika\Projects\Calculator\EvoCalculator.Core" t="IncludeFlat">
<e p="EvoCalculator.Core" t="IncludeRecursive">
<e p="appsettings.Development.json" t="Include" />
<e p="appsettings.json" t="Include" />
@ -38,70 +37,6 @@
</e>
<e p="EvoCalculator.Core.Calculation" t="IncludeRecursive">
<e p="bin" t="ExcludeRecursive" />
<e p="CheckTools.cs" t="Include" />
<e p="Columns" t="Include">
<e p="AcceptInsuranceColumn.cs" t="Include" />
<e p="AcceptKaskoColumn.cs" t="Include" />
<e p="AcceptOsagoColumn.cs" t="Include" />
<e p="AcceptSumColumn.cs" t="Include" />
<e p="AgentComissionExpensesColumn.cs" t="Include" />
<e p="BaseColumn.cs" t="Include" />
<e p="BaseColumnWithGoalSeek.cs" t="Include" />
<e p="BaseColumnWithNominal.cs" t="Include" />
<e p="BaseColumnWithSum.cs" t="Include" />
<e p="BaseColumnWithXIRR.cs" t="Include" />
<e p="BaseColumnWithXNPV.cs" t="Include" />
<e p="CashflowColumn.cs" t="Include" />
<e p="CashflowLeasingColumn.cs" t="Include" />
<e p="CashflowMSFOColumn.cs" t="Include" />
<e p="CashflowMSFOFinal2Column.cs" t="Include" />
<e p="CashflowMSFOFinalColumn.cs" t="Include" />
<e p="CashflowNPVColumn.cs" t="Include" />
<e p="CashflowNPVFinal2Column.cs" t="Include" />
<e p="CashflowNPVFinalColumn.cs" t="Include" />
<e p="CashflowNSIBColumn.cs" t="Include" />
<e p="ComissionBonusExpensesColumn.cs" t="Include" />
<e p="DateColumn.cs" t="Include" />
<e p="DateTempColumn.cs" t="Include" />
<e p="DeprecationColumn.cs" t="Include" />
<e p="DeprecationLDColumn.cs" t="Include" />
<e p="DeprecationLPColumn.cs" t="Include" />
<e p="DirectorBonusSumColumn.cs" t="Include" />
<e p="ExpensesColumn.cs" t="Include" />
<e p="ExtraBonusSumColumn.cs" t="Include" />
<e p="GPS_GrColumn.cs" t="Include" />
<e p="GPSExpensesColumn.cs" t="Include" />
<e p="InsuranceBonusExpensesColumn.cs" t="Include" />
<e p="InterestColumn.cs" t="Include" />
<e p="IRRGrColumn.cs" t="Include" />
<e p="KaskoBonusGrSumColumn.cs" t="Include" />
<e p="KaskoNmperGrColumn.cs" t="Include" />
<e p="NegativeCashflowColumn.cs" t="Include" />
<e p="NIColumn.cs" t="Include" />
<e p="NPVBonusExpensesColumn.cs" t="Include" />
<e p="NPVColumn.cs" t="Include" />
<e p="NPVFinal2Column.cs" t="Include" />
<e p="NPVFinalColumn.cs" t="Include" />
<e p="NpvWeightColumn.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="RevenueColumn.cs" t="Include" />
<e p="SumColumn.cs" t="Include" />
<e p="SumCurrentColumn.cs" t="Include" />
<e p="SumCurrentInterestColumn.cs" t="Include" />
<e p="SumCurrentNegativeColumn.cs" t="Include" />
<e p="SumCurrentTLMColumn.cs" t="Include" />
<e p="SumRepaymentColumn.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="TransExpensesColumn.cs" t="Include" />
<e p="VATColumn.cs" t="Include" />
</e>
<e p="EvoCalculator.Core.Calculation.csproj" t="IncludeRecursive" />
<e p="obj" t="ExcludeRecursive">
<e p="Debug" t="Include">
@ -110,19 +45,98 @@
</e>
</e>
</e>
<e p="Post" t="Include">
<e p="BaseCost.cs" t="Include" />
<e p="BasePostValue.cs" t="Include" />
<e p="BonusBase.cs" t="Include" />
<e p="BonusResult.cs" t="Include" />
<e p="NPVNI.cs" t="Include" />
<e p="PostValues.cs" t="Include" />
<e p="PriceUP.cs" t="Include" />
<e p="PriceUP_PR.cs" t="Include" />
<e p="PriceUP_Year.cs" t="Include" />
<e p="PriceUP_Year_PR.cs" t="Include" />
<e p="v1" t="Include">
<e p="CheckTools.cs" t="Include" />
<e p="Columns" t="Include">
<e p="AcceptInsuranceColumn.cs" t="Include" />
<e p="AcceptKaskoColumn.cs" t="Include" />
<e p="AcceptOsagoColumn.cs" t="Include" />
<e p="AcceptSumColumn.cs" t="Include" />
<e p="AgentComissionExpensesColumn.cs" t="Include" />
<e p="BaseColumn.cs" t="Include" />
<e p="BaseColumnWithNominal.cs" t="Include" />
<e p="BaseColumnWithSum.cs" t="Include" />
<e p="BaseColumnWithXIRR.cs" t="Include" />
<e p="BaseColumnWithXNPV.cs" t="Include" />
<e p="CashflowColumn.cs" t="Include" />
<e p="CashflowLeasingColumn.cs" t="Include" />
<e p="CashflowMSFOColumn" t="Include">
<e p="BaseCashflowMSFOColumn.cs" t="Include" />
<e p="CashflowMSFOColumnVT1.cs" t="Include" />
<e p="CashflowMSFOColumnVT2.cs" t="Include" />
</e>
<e p="CashflowMSFOFinal2Column.cs" t="Include" />
<e p="CashflowMSFOFinalColumn.cs" t="Include" />
<e p="CashflowNPVColumn.cs" t="Include" />
<e p="CashflowNPVFinal2Column.cs" t="Include" />
<e p="CashflowNPVFinalColumn.cs" t="Include" />
<e p="CashflowNSIBColumn.cs" t="Include" />
<e p="ComissionBonusExpensesColumn.cs" t="Include" />
<e p="DateColumn.cs" t="Include" />
<e p="DateTempColumn.cs" t="Include" />
<e p="DeprecationColumn.cs" t="Include" />
<e p="DeprecationLDColumn.cs" t="Include" />
<e p="DeprecationLPColumn.cs" t="Include" />
<e p="DirectorBonusSumColumn.cs" t="Include" />
<e p="ExpensesColumn.cs" t="Include" />
<e p="ExtraBonusSumColumn.cs" t="Include" />
<e p="GPS_GrColumn.cs" t="Include" />
<e p="GPSExpensesColumn.cs" t="Include" />
<e p="InsuranceBonusExpensesColumn.cs" t="Include" />
<e p="InterestColumn.cs" t="Include" />
<e p="IRRGrColumn.cs" t="Include" />
<e p="KaskoBonusGrSumColumn.cs" t="Include" />
<e p="KaskoNmperGrColumn.cs" t="Include" />
<e p="NegativeCashflowColumn.cs" t="Include" />
<e p="NIColumn.cs" t="Include" />
<e p="NPVBonusExpensesColumn.cs" t="Include" />
<e p="NPVColumn.cs" t="Include" />
<e p="NPVFinal2Column.cs" t="Include" />
<e p="NPVFinalColumn.cs" t="Include" />
<e p="NPVWeightColumn.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="RevenueColumn.cs" t="Include" />
<e p="SumColumn.cs" t="Include" />
<e p="SumCurrentColumn.cs" t="Include" />
<e p="SumCurrentInterestColumn.cs" t="Include" />
<e p="SumCurrentNegativeColumn.cs" t="Include" />
<e p="SumCurrentTLMColumn.cs" t="Include" />
<e p="SumRepaymentColumn.cs" t="Include" />
<e p="SumWithVATColumn" t="Include">
<e p="BaseSumWithVATColumn.cs" t="Include" />
<e p="SumWithVATColumnVT1.cs" t="Include" />
<e p="SumWithVATColumnVT2.cs" t="Include" />
</e>
<e p="TaxColumn.cs" t="Include" />
<e p="TLM_GrColumn.cs" t="Include" />
<e p="TLMExpensesColumn.cs" t="Include" />
<e p="TransExpensesColumn.cs" t="Include" />
<e p="VATColumn.cs" t="Include" />
</e>
<e p="Managers" t="Include">
<e p="Calculate" t="Include">
<e p="CalculateByTotalExpected.cs" t="Include" />
<e p="CalculateDefault.cs" t="Include" />
</e>
</e>
<e p="Post" t="Include">
<e p="BaseCost.cs" t="Include" />
<e p="BasePostValue.cs" t="Include" />
<e p="BonusBase.cs" t="Include" />
<e p="BonusResult.cs" t="Include" />
<e p="NPVNI.cs" t="Include" />
<e p="PostValues.cs" t="Include" />
<e p="PriceUP.cs" t="Include" />
<e p="PriceUP_PR.cs" t="Include" />
<e p="PriceUP_Year.cs" t="Include" />
<e p="PriceUP_Year_PR.cs" t="Include" />
</e>
<e p="Validation.cs" t="Include" />
</e>
<e p="Validation.cs" t="Include" />
</e>
<e p="EvoCalculator.Core.Constants" t="IncludeRecursive">
<e p="bin" t="ExcludeRecursive" />
@ -152,10 +166,15 @@
<e p="EvoCalculator.Core.Models" t="IncludeRecursive">
<e p="bin" t="ExcludeRecursive" />
<e p="Calculation" t="Include">
<e p="Interfaces" t="Include" />
<e p="Interfaces" t="Include">
<e p="Columns" t="Include">
<e p="IColumnWithGoalSeek.cs" t="Include" />
</e>
</e>
<e p="Models" t="Include">
<e p="AdditionalData.cs" t="Include" />
<e p="Flow.cs" t="Include" />
<e p="ManagerResult.cs" t="Include" />
<e p="Prepared" t="Include">
<e p="PreparedPayments.cs" t="Include" />
<e p="PreparedValues.cs" t="Include" />
@ -219,7 +238,7 @@
<e p="NPVFinal2.cs" t="Include" />
<e p="NPVWeight.cs" t="Include" />
<e p="NSIBBruttoGrTests.cs" t="Include" />
<e p="NsibExpensesTests.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" />
@ -233,7 +252,7 @@
<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="TLMExpensesTests.cs" t="Include" />
<e p="TransExprensesTests.cs" t="Include" />
<e p="VATColumnTests.cs" t="Include" />
</e>

View File

@ -2,7 +2,7 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/riderModule.iml" filepath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/riderModule.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/riderModule.iml" filepath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/riderModule.iml" />
</modules>
</component>
</project>

View File

@ -14,9 +14,15 @@
</component>
<component name="ChangeListManager">
<list default="true" id="2c3b0650-5589-43d4-b4b7-2979612bb30f" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumWithVATColumn/SumWithVATColumnVT2.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateByTotalExpected.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$/Dockerfile" beforeDir="false" afterPath="$PROJECT_DIR$/Dockerfile" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/InterestColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/InterestColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/AcceptSumColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/AcceptSumColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOFinalColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOFinalColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/ExtraBonusSumColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/ExtraBonusSumColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumCurrentColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumCurrentColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateDefault.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateDefault.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
@ -28,100 +34,63 @@
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="HighlightingSettingsPerFile">
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/69/Convert.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core/Controllers/v1/CalculationController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/Calculator/EvoCalculator.Core/EvoCalculator.Core.Tests/Calculation/Columns/SumWithVatTests.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/Calculator/EvoCalculator.Core/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrent.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/Calculator/EvoCalculator.Core/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateDefault.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/168/Future.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/F680C866-D120-4163-9634-EBD842255BE9/F3/ActionMethodExecutor.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Post/NPVNI.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP_Year_PR.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/F680C866-D120-4163-9634-EBD842255BE9/194/ObjectMethodExecutor.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/BaseColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP_Year.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core/Controllers/v1/CalculationController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/CashflowColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/ab/bb64e6c9/Predicate`1.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/E2E1F770-6781-48FC-97C9-82BA075D5898/af/6846d1ce/GoalSeek.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/3DC/List.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/InterestColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/Calculator/EvoCalculator.Core/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateDefault.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/Calculator/EvoCalculator.Core/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateDefault.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/F680C866-D120-4163-9634-EBD842255BE9/136/ActionFilterAttribute.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/Calculator/EvoCalculator.Core/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateDefault.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core/Controllers/v1/CalculationController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PostValues.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Post/PriceUP.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Post/PriceUP_Year_PR.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core/Controllers/v1/CalculationController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/262/AsyncValueTaskMethodBuilder.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core/Controllers/v1/CalculationController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core/Controllers/v1/CalculationController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/1E91381A-E6FB-483F-B621-BC63C0219EA8/11/HttpResponseWritingExtensions.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/E2E1F770-6781-48FC-97C9-82BA075D5898/23/8e71d863/IGoalSeekAlgorithm.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/Calculator/EvoCalculator.Core/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateDefault.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/Calculator/EvoCalculator.Core/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrent.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Post/PostValues.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Post/PriceUP_Year.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/Calculator/EvoCalculator.Core/EvoCalculator.Core.Calculation/v1/Columns/AcceptSumColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/Calculator/EvoCalculator.Core/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOColumn/BaseCashflowMSFOColumn.cs" root0="SKIP_HIGHLIGHTING" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DirectorBonusSum.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/ExtraBonusSum.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVBonusExpensesTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumWithVatTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TaxColumnTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/VATColumnTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/PriceUp.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP_PR.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/PriceUP_PR.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/PriceUP_Year.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP_Year.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/PriceUP_Year_PR.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP_Year_PR.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/PriceUP_Year_PR_Tests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/NPVNI.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/BonusResult.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/BonusResult.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PostValues.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/Test.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedPayments.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TaxColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinalColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinalColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinal2Column.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinal2Column.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Startup.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Program.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedValues.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Validation.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DateColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/CheckTools.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowLeasingColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/NPVNI.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumRepaymentColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/GPS_GrColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TLM_GrColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumWithVATColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/VATColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/AdditionalData.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/InterestColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" />
</list>
</option>
<changedPaths>
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/CalculateDefault.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/Calculate.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateByTotal.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/ManagerAnswer.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Validation.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/BaseColumnWithGoalSeek.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/IBaseColumnWithGoalSeek.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/Columns/IBaseColumnWithGoalSeek.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/CashflowNSIBColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/BaseColumnWithNominal.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/BaseColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumWithVATColumnVT1.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/Columns/IColumnWithGoalSeek.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOColumn/CashflowMSFOColumnVT2.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOColumn/CashflowMSFOColumnVT1.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOColumn/BaseCashflowMSFOColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumWithVATColumn/BaseSumWithVATColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumWithVATColumn/SumWithVATColumnVT1.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AcceptSumTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrent.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumWithVatTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateDefault.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateManager.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumWithVATColumn/SumWithVATColumnVT2.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/AcceptSumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/ExtraBonusSumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOFinalColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumCurrentColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateByTotalExpected.cs" />
</changedPaths>
</component>
<component name="ProjectId" id="1imEQedzOwq3NavnSUCC7bKWqbF" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
@ -134,13 +103,14 @@
<component name="PropertiesComponent">
<property name="ASKED_ADD_EXTERNAL_FILES" value="true" />
<property name="DebuggerViewTab_PTCS_FirstProportionKey" value="0.34995976" />
<property name="DebuggerViewTab_PTCS_LastProportionKey" value="0.30008045" />
<property name="DebuggerViewTab_PTCS_LastProportionKey" value="0.0" />
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="XThreadsFramesViewSplitterKey" value="0.86973685" />
<property name="com.intellij.ide.scratch.LRUPopupBuilder$1/New Scratch File" value="C#" />
<property name="nodejs_package_manager_path" value="npm" />
<property name="settings.editor.selected.configurable" value="preferences.sourceCode.C#" />
<property name="settings.editor.selected.configurable" value="preferences.keymap" />
<property name="settings.editor.splitter.proportion" value="0.19789612" />
<property name="vue.rearranger.settings.migration" value="true" />
</component>
@ -231,6 +201,9 @@
<workItem from="1605776517986" duration="1856000" />
<workItem from="1605809287754" duration="7800000" />
<workItem from="1606059028039" duration="15332000" />
<workItem from="1612269976377" duration="116000" />
<workItem from="1612270111175" duration="4580000" />
<workItem from="1612343468524" duration="4982000" />
</task>
<task id="LOCAL-00001" summary="rename: flow">
<created>1602593830686</created>
@ -323,7 +296,28 @@
<option name="project" value="LOCAL" />
<updated>1606075248419</updated>
</task>
<option name="localTasksCounter" value="14" />
<task id="LOCAL-00014" summary="create CashflowMSFOColumnVT1">
<created>1612434330434</created>
<option name="number" value="00014" />
<option name="presentableId" value="LOCAL-00014" />
<option name="project" value="LOCAL" />
<updated>1612434330434</updated>
</task>
<task id="LOCAL-00015" summary="move sumColumn using from base">
<created>1612437052003</created>
<option name="number" value="00015" />
<option name="presentableId" value="LOCAL-00015" />
<option name="project" value="LOCAL" />
<updated>1612437052003</updated>
</task>
<task id="LOCAL-00016" summary="split SumWithVATColumn into 2 columns">
<created>1612438827251</created>
<option name="number" value="00016" />
<option name="presentableId" value="LOCAL-00016" />
<option name="project" value="LOCAL" />
<updated>1612438827251</updated>
</task>
<option name="localTasksCounter" value="17" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@ -359,211 +353,29 @@
<MESSAGE value="add validation &amp; postcheck" />
<MESSAGE value="add check for zero value in columns" />
<MESSAGE value="add postcheck of postvalues" />
<option name="LAST_COMMIT_MESSAGE" value="add postcheck of postvalues" />
</component>
<component name="WindowStateProjectService">
<state x="1077" y="489" key="#Web_Browsers" timestamp="1602508282238">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="1077" y="489" key="#Web_Browsers/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602508282238" />
<state x="734" y="355" key="#com.intellij.execution.impl.EditConfigurationsDialog" timestamp="1602508288549">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="734" y="355" key="#com.intellij.execution.impl.EditConfigurationsDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602508288549" />
<state x="1108" y="416" key="#com.intellij.ide.ui.customization.CustomizableActionsPanel.FindAvailableActionsDialog" timestamp="1603119675236">
<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 x="1027" y="545" key="ANALYSIS_DLG_com.jetbrains.rider.actions.impl.cleanup.RiderCodeCleanupAction$actionPerformed$dlg$1" timestamp="1603798988775">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="1027" y="545" key="ANALYSIS_DLG_com.jetbrains.rider.actions.impl.cleanup.RiderCodeCleanupAction$actionPerformed$dlg$1/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603798988775" />
<state width="1180" height="650" key="DebuggerActiveHint" timestamp="1606076038770">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="2131" height="1245" key="DebuggerActiveHint/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208598306" />
<state width="1180" height="650" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076038770" />
<state width="2517" height="317" key="GridCell.Tab.0.bottom" timestamp="1606078643175">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="496" key="GridCell.Tab.0.bottom/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208216865" />
<state width="1493" height="321" key="GridCell.Tab.0.bottom/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563327" />
<state width="2517" height="317" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606078643175" />
<state width="2517" height="317" key="GridCell.Tab.0.center" timestamp="1606078643175">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="496" key="GridCell.Tab.0.center/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208216865" />
<state width="1493" height="321" key="GridCell.Tab.0.center/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563326" />
<state width="2517" height="317" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606078643175" />
<state width="2517" height="317" key="GridCell.Tab.0.left" timestamp="1606078643175">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="496" key="GridCell.Tab.0.left/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208216865" />
<state width="1493" height="321" key="GridCell.Tab.0.left/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563326" />
<state width="2517" height="317" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606078643175" />
<state width="2517" height="317" key="GridCell.Tab.0.right" timestamp="1606078643175">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="496" key="GridCell.Tab.0.right/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208216865" />
<state width="1493" height="321" key="GridCell.Tab.0.right/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563327" />
<state width="2517" height="317" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606078643175" />
<state width="2517" height="173" key="GridCell.Tab.1.bottom" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.1.bottom/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.1.bottom/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563327" />
<state width="2517" height="173" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.1.center" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.1.center/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.1.center/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563327" />
<state width="2517" height="173" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.1.left" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.1.left/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.1.left/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563327" />
<state width="2517" height="173" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.1.right" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.1.right/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.1.right/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563327" />
<state width="2517" height="173" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.2.bottom" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.2.bottom/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.2.bottom/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563327" />
<state width="2517" height="173" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.2.center" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.2.center/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.2.center/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563327" />
<state width="2517" height="173" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.2.left" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.2.left/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.2.left/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563327" />
<state width="2517" height="173" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.2.right" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.2.right/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.2.right/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563327" />
<state width="2517" height="173" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.3.bottom" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.3.bottom/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.3.bottom/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563328" />
<state width="2517" height="173" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.3.center" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.3.center/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.3.center/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563327" />
<state width="2517" height="173" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.3.left" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.3.left/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.3.left/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563327" />
<state width="2517" height="173" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.3.right" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.3.right/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.3.right/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563328" />
<state width="2517" height="173" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.4.bottom" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.4.bottom/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.4.bottom/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563328" />
<state width="2517" height="173" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.4.center" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.4.center/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.4.center/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563328" />
<state width="2517" height="173" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.4.left" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.4.left/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.4.left/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563328" />
<state width="2517" height="173" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state width="2517" height="173" key="GridCell.Tab.4.right" timestamp="1606076059483">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="3029" height="495" key="GridCell.Tab.4.right/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605208200096" />
<state width="1493" height="321" key="GridCell.Tab.4.right/0.0.1536.824/-3840.-1059.3072.1688@0.0.1536.824" timestamp="1605204563328" />
<state width="2517" height="173" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606076059483" />
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size" timestamp="1602854431119">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1602854431119" />
<state x="1108" y="385" key="RiderGenerateDialog" timestamp="1603797366348">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="1108" y="385" key="RiderGenerateDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603797366348" />
<state x="1078" y="410" key="RollbackChangesDialog" timestamp="1606073125337">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="1078" y="410" key="RollbackChangesDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606073125337" />
<state x="-3228" y="-780" width="1537" height="899" key="SettingsEditor" timestamp="1605169070638">
<screen x="-3840" y="-1059" width="3072" height="1688" />
</state>
<state x="-3228" y="-780" key="SettingsEditor/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605169070638" />
<state x="510" y="231" width="1537" height="899" key="SettingsEditor/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603888918096" />
<state width="498" height="446" key="SwitcherDM" timestamp="1603454051875">
<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="1603454051875" />
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog" timestamp="1606071870348">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="-3730" y="-948" width="2852" height="1467" key="VCS.FileHistoryDialog/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605207856924" />
<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="1606071870348" />
<state x="872" y="433" key="Vcs.Push.Dialog.v2" timestamp="1606075250192">
<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="1606075250192" />
<state width="1288" height="708" key="XDebugger.FullValuePopup" timestamp="1606066433182">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state width="1288" height="708" key="XDebugger.FullValuePopup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606066433182" />
<state x="92" y="92" width="2376" height="1216" key="com.intellij.history.integration.ui.views.DirectoryHistoryDialog" timestamp="1603456576335">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="92" y="92" width="2376" height="1216" key="com.intellij.history.integration.ui.views.DirectoryHistoryDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603456576335" />
<state x="897" y="337" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser" timestamp="1603888517066">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="897" y="337" key="com.intellij.openapi.editor.actions.MultiplePasteAction$ClipboardContentChooser/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603888517066" />
<state x="192" y="0" width="1099" height="909" key="dock-window-1" timestamp="1605705406149">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="192" y="0" width="1099" height="909" key="dock-window-1/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605705406149" />
<state x="2834" y="51" width="1137" height="959" key="find.popup" timestamp="1606075995500">
<screen x="2560" y="0" width="1920" height="1040" />
</state>
<state x="-2929" y="-765" width="1365" height="1157" key="find.popup/0.0.1536.824/-3840.-1059.3072.1688@-3840.-1059.3072.1688" timestamp="1605205829000" />
<state x="2834" y="51" width="1137" height="959" key="find.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606075995500" />
<state x="936" y="330" key="run.anything.popup" timestamp="1603290743275">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="936" y="330" key="run.anything.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1603290743275" />
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup" timestamp="1605708756063">
<screen x="0" y="0" width="2560" height="1400" />
</state>
<state x="943" y="315" width="672" height="678" key="search.everywhere.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605708756063" />
<MESSAGE value="create CashflowMSFOColumnVT1" />
<MESSAGE value="move sumColumn using from base" />
<MESSAGE value="split SumWithVATColumn into 2 columns" />
<option name="LAST_COMMIT_MESSAGE" value="split SumWithVATColumn into 2 columns" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs</url>
<line>26</line>
<properties documentPath="C:\Users\Chika\Projects\Calculator\EvoCalculator.Core\EvoCalculator.Core\Controllers\v1\CalculationController.cs" initialLine="26" containingFunctionPresentation="method 'Calculate'">
<startOffsets>
<option value="756" />
</startOffsets>
<endOffsets>
<option value="807" />
</endOffsets>
</properties>
<option name="timeStamp" value="2" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
<pin-to-top-manager>
<pinned-members>
<PinnedItemInfo parentTag="Frame#EvoCalculator.Core.Tests.Calculation.Suite.Columns.TLM_GrTests.TLM_GrTest1" memberName="expected" />
@ -580,9 +392,10 @@
</pin-to-top-manager>
<watches-manager>
<configuration name="LaunchSettings">
<watch expression="(_postValues.BaseCost.Value - _preparedValues.FirstPaymentSum)/ _preparedValues.Nmper" language="C#" />
<watch expression="(_postValues.BaseCost.Value - _preparedValues.FirstPaymentSum)/ _preparedValues.Nmper" />
<watch expression="_percentPaymentColumn.Values.Where(x =&gt; x != 0).Min()" />
<watch expression="Convert.ToDecimal(&#10; (_postValues.BaseCost.Value - _preparedValues.FirstPaymentSum) /&#10; _preparedValues.Nmper) * (decimal) _percentPaymentColumn.Values.Where(x =&gt; x != 0).Min()" language="C#" />
<watch expression="Convert.ToDecimal(&#10; (_postValues.BaseCost.Value - _preparedValues.FirstPaymentSum) /&#10; _preparedValues.Nmper) * (decimal) _percentPaymentColumn.Values.Where(x =&gt; x != 0).Min()" />
<watch expression="requestCalculation.preparedValues" />
</configuration>
<configuration name="RiderUnitTests">
<watch expression="Convert.ToDecimal(&#10; (this._preparedValues.BaseCost - this._preparedValues.FirstPaymentSum) /&#10; this._preparedValues.Nmper)" />

View File

@ -1,15 +0,0 @@
using TridentGoalSeek;
namespace EvoCalculator.Core.Calculation.Columns
{
public abstract class BaseColumnWithGoalSeek : BaseColumnWithNominal, IGoalSeekAlgorithm
{
public BaseColumnWithGoalSeek(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
{
}
public abstract decimal Calculate(decimal inputVariable);
protected abstract void FillValues(decimal x);
public abstract void ComputeValues(decimal requiredValue);
}
}

View File

@ -1,28 +0,0 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
public class SumWithVATColumn : BaseColumnWithSum
{
public SumWithVATColumn(int count) : base(count)
{
}
public void PostCheck()
{
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
}
public void ComputeValues(Constants.Calculation constants, SumColumn sumColumn, PreparedValues preparedValues)
{
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;
}
}
}

View File

@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Linq;
namespace EvoCalculator.Core.Calculation
namespace EvoCalculator.Core.Calculation.v1
{
public class CheckTools<T>
{

View File

@ -1,4 +1,4 @@
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class AcceptInsuranceColumn : BaseColumnWithSum
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class AcceptKaskoColumn : BaseColumnWithSum
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class AcceptOsagoColumn : BaseColumnWithSum
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class AcceptSumColumn : BaseColumnWithSum
{
@ -12,7 +12,7 @@ namespace EvoCalculator.Core.Calculation.Columns
PreparedValues preparedValues
, SumColumn sumColumn
, VATColumn vatColumn
, SumWithVATColumn sumWithVatColumn)
, BaseSumWithVATColumn sumWithVatColumn)
{
for (var i = 1; i < Values.Length; i++)
Values[i] = preparedValues.AcceptSum * sumColumn.Values[i] /

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class AgentComissionExpensesColumn : BaseColumnWithSum
{

View File

@ -1,6 +1,6 @@
using System;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public abstract class BaseColumn<T>
{

View File

@ -1,10 +1,10 @@
using System;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class BaseColumnWithNominal : BaseColumnWithXIRR
{
public BaseColumnWithNominal(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
protected BaseColumnWithNominal(int count, DateTempColumn dateTempColumn) : base(count, dateTempColumn)
{
}

View File

@ -1,6 +1,6 @@
using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class BaseColumnWithSum : BaseColumn<decimal>
{

View File

@ -2,7 +2,7 @@
using EvoCalculator.Core.FinanceFormulas;
using EvoCalculator.Core.Models.Calculation.Models;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class BaseColumnWithXIRR : BaseColumn<decimal>
{

View File

@ -2,7 +2,7 @@
using EvoCalculator.Core.FinanceFormulas;
using EvoCalculator.Core.Models.Calculation.Models;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class BaseColumnWithXNPV : BaseColumn<decimal>
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class CashflowColumn : BaseColumnWithXIRR
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class CashflowLeasingColumn : BaseColumnWithXIRR
{

View File

@ -1,45 +1,36 @@
using System;
using System.Linq;
using EvoCalculator.Core.Calculation.Post;
using EvoCalculator.Core.Calculation.v1.Post;
using EvoCalculator.Core.Models.Calculation.Models;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using TridentGoalSeek;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class CashflowMSFOColumn : BaseColumnWithGoalSeek
public class BaseCashflowMSFOColumn : BaseColumnWithNominal
{
private readonly PostValues _postValues;
private readonly PreparedValues _preparedValues;
private readonly PercentPaymentColumn _percentPaymentColumn;
private SumColumn _sumColumn;
private readonly NegativeCashflowColumn _negativeCashflowColumn;
private readonly NSIBBruttoGrColumn _nsibBruttoGrColumn;
private readonly TLM_GrColumn _tlmGrColumn;
private readonly GPS_GrColumn _gpsGrColumn;
private readonly NPVBonusExpensesColumn _npvBonusExpensesColumn;
private readonly AgentComissionExpensesColumn _agentComissionExpensesColumn;
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;
public CashflowMSFOColumn(int count, DateTempColumn dateTempColumn, PostValues _postValues,
PreparedValues preparedValues,
PercentPaymentColumn _percentPaymentColumn,
ref SumColumn sumColumn,
NegativeCashflowColumn negativeCashflowColumn,
NSIBBruttoGrColumn nsibBruttoGrColumn, TLM_GrColumn tlmGrColumn, GPS_GrColumn gpsGrColumn,
NPVBonusExpensesColumn npvBonusExpensesColumn,
AgentComissionExpensesColumn agentComissionExpensesColumn) : base(count,
dateTempColumn)
protected void FillValues()
{
this._postValues = _postValues;
_preparedValues = preparedValues;
this._percentPaymentColumn = _percentPaymentColumn;
_sumColumn = sumColumn;
_negativeCashflowColumn = negativeCashflowColumn;
_nsibBruttoGrColumn = nsibBruttoGrColumn;
_tlmGrColumn = tlmGrColumn;
_gpsGrColumn = gpsGrColumn;
_npvBonusExpensesColumn = npvBonusExpensesColumn;
_agentComissionExpensesColumn = agentComissionExpensesColumn;
Values[0] = -_preparedValues.AcquisitionExpenses;
Values[1] = _sumColumn.Values[1] + _npvBonusExpensesColumn.Values[1] +
_agentComissionExpensesColumn.Values[1];
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];
}
public void PostCheck(AdditionalData additionalData)
@ -62,45 +53,22 @@ namespace EvoCalculator.Core.Calculation.Columns
}
}
public override decimal Calculate(decimal inputVariable)
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)
{
FillValues(inputVariable);
return Convert.ToDecimal(Nominal);
}
protected override void FillValues(decimal x)
{
_sumColumn.ComputeValues(x);
Values[0] = -_preparedValues.AcquisitionExpenses;
Values[1] = _sumColumn.Values[1] + _npvBonusExpensesColumn.Values[1] +
_agentComissionExpensesColumn.Values[1];
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];
}
public override 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
));
_postValues = postValues;
_preparedValues = preparedValues;
_percentPaymentColumn = percentPaymentColumn;
_sumColumn = sumColumn;
_negativeCashflowColumn = negativeCashflowColumn;
_nsibBruttoGrColumn = nsibBruttoGrColumn;
_tlmGrColumn = tlmGrColumn;
_gpsGrColumn = gpsGrColumn;
_npvBonusExpensesColumn = npvBonusExpensesColumn;
_agentComissionExpensesColumn = agentComissionExpensesColumn;
}
}
}

View File

@ -0,0 +1,47 @@
using System;
using System.Linq;
using EvoCalculator.Core.Calculation.v1.Post;
using EvoCalculator.Core.Models.Calculation.Interfaces.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using TridentGoalSeek;
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class CashflowMSFOColumnVT1 : BaseCashflowMSFOColumn, IColumnWithGoalSeek
{
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
));
}
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)
{
}
}
}

View File

@ -0,0 +1,23 @@
using EvoCalculator.Core.Calculation.v1.Post;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class CashflowMSFOColumnVT2 : BaseCashflowMSFOColumn
{
public void ComputeValues()
{
FillValues();
}
public CashflowMSFOColumnVT2(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)
{
}
}
}

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class CashflowMSFOFinal2Column : BaseColumnWithNominal
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class CashflowMSFOFinalColumn : BaseColumnWithNominal
{
@ -8,7 +8,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
}
public void ComputeValues(PreparedValues preparedValues, CashflowMSFOColumn cashflowMsfoColumn,
public void ComputeValues(PreparedValues preparedValues, BaseCashflowMSFOColumn cashflowMsfoColumn,
ExtraBonusSumColumn extraBonusSumColumn)
{
Values[0] = -preparedValues.AcquisitionExpenses;

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class CashflowNPVColumn : BaseColumn<decimal>
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class CashflowNPVFinal2Column : BaseColumn<decimal>
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class CashflowNPVFinalColumn : BaseColumn<decimal>
{

View File

@ -1,9 +1,10 @@
using System;
using EvoCalculator.Core.Models.Calculation.Interfaces.Columns;
using TridentGoalSeek;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class CashflowNSIBColumn : BaseColumnWithGoalSeek
public class CashflowNSIBColumn : BaseColumnWithNominal, IColumnWithGoalSeek
{
private readonly NSIBBruttoGrColumn _NSIBBruttoGrColumn;
private readonly NSIBExpensesColumn _NSIBExpensesColumn;
@ -15,13 +16,13 @@ namespace EvoCalculator.Core.Calculation.Columns
_NSIBExpensesColumn = nsibExpensesColumn;
}
public override decimal Calculate(decimal inputVariable)
public decimal Calculate(decimal inputVariable)
{
FillValues(inputVariable);
return Convert.ToDecimal(IRR);
}
protected override void FillValues(decimal x)
private void FillValues(decimal x)
{
Values[1] = _NSIBBruttoGrColumn.Values[1] - x;
for (var i = 2; i < Values.Length; i++)
@ -29,7 +30,7 @@ namespace EvoCalculator.Core.Calculation.Columns
x * _NSIBExpensesColumn.Values[i] / _NSIBExpensesColumn.Values[1];
}
public override void ComputeValues(decimal requiredValue)
public void ComputeValues(decimal requiredValue)
{
var goalSeek = new GoalSeek(this);
goalSeek.SeekResult(requiredValue,

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class ComissionBonusExpensesColumn : BaseColumnWithSum
{

View File

@ -1,7 +1,7 @@
using System;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class DateColumn : BaseColumn<DateTime>
{

View File

@ -1,7 +1,7 @@
using System;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class DateTempColumn : BaseColumn<DateTime>
{

View File

@ -1,4 +1,4 @@
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class DeprecationColumn : BaseColumnWithSum
{

View File

@ -1,7 +1,7 @@
using System.Linq;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class DeprecationLDColumn : BaseColumnWithSum
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class DeprecationLPColumn : BaseColumnWithSum
{

View File

@ -1,7 +1,7 @@
using EvoCalculator.Core.Calculation.Post;
using EvoCalculator.Core.Calculation.v1.Post;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class DirectorBonusSumColumn : BaseColumnWithSum
{

View File

@ -1,4 +1,4 @@
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class ExpensesColumn : BaseColumnWithSum
{

View File

@ -1,7 +1,7 @@
using EvoCalculator.Core.Calculation.Post;
using EvoCalculator.Core.Calculation.v1.Post;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class ExtraBonusSumColumn : BaseColumnWithSum
{
@ -9,7 +9,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
}
public void ComputeValues(PreparedValues preparedValues, CashflowMSFOColumn cashflowMsfoColumn,
public void ComputeValues(PreparedValues preparedValues, BaseCashflowMSFOColumn cashflowMsfoColumn,
PostValues postValues)
{
Values[2] = cashflowMsfoColumn.Nominal >= preparedValues.IRR_MSFO_Plan

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class GPSExpensesColumn : BaseColumnWithSum
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class GPS_GrColumn : BaseColumnWithXNPV
{

View File

@ -1,6 +1,6 @@
using System;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class IRRGrColumn : BaseColumn<double>
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class InsuranceBonusExpensesColumn : BaseColumnWithSum
{

View File

@ -1,7 +1,7 @@
using System;
using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class InterestColumn : BaseColumn<decimal>
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class KaskoBonusGrSumColumn : BaseColumnWithSum
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class KaskoNmperGrColumn : BaseColumnWithXNPV
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class NIColumn : BaseColumn<decimal>
{

View File

@ -1,8 +1,8 @@
using System;
using EvoCalculator.Core.Calculation.Post;
using EvoCalculator.Core.Calculation.v1.Post;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class NPVBonusExpensesColumn : BaseColumnWithSum
{

View File

@ -1,4 +1,4 @@
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class NPVColumn : BaseColumnWithNominal
{

View File

@ -1,4 +1,4 @@
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class NPVFinal2Column : BaseColumnWithNominal
{

View File

@ -1,4 +1,4 @@
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class NPVFinalColumn : BaseColumnWithNominal
{

View File

@ -1,7 +1,7 @@
using System;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class NPVWeightColumn : BaseColumn<double>
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class NSIBBruttoGrColumn : BaseColumnWithSum
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class NSIBExpensesColumn : BaseColumnWithSum
{

View File

@ -1,4 +1,4 @@
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class NegativeCashflowColumn : BaseColumnWithSum
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class PercentPaymentColumn : BaseColumn<double>
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class RatExpensesColumn : BaseColumnWithSum
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class RegistrExpensesColumn : BaseColumnWithSum
{

View File

@ -1,4 +1,4 @@
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class RevenueColumn : BaseColumn<decimal>
{

View File

@ -1,9 +1,9 @@
using System;
using System.Linq;
using EvoCalculator.Core.Calculation.Post;
using EvoCalculator.Core.Calculation.v1.Post;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class SumColumn : BaseColumnWithXIRR
{

View File

@ -1,6 +1,6 @@
using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class SumCurrentColumn : BaseColumn<decimal>
{
@ -8,7 +8,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
}
public void ComputeValues(SumWithVATColumn sumWithVatColumn)
public void ComputeValues(BaseSumWithVATColumn sumWithVatColumn)
{
for (var i = 1; i < Values.Length; i++) Values[i] = sumWithVatColumn.Values.Skip(i).Sum(x => x);
}

View File

@ -1,6 +1,6 @@
using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class SumCurrentInterestColumn : BaseColumn<decimal>
{

View File

@ -1,6 +1,6 @@
using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class SumCurrentNegativeColumn : BaseColumn<decimal>
{

View File

@ -1,6 +1,6 @@
using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class SumCurrentTLMColumn : BaseColumn<decimal>
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class SumRepaymentColumn : BaseColumn<decimal>
{

View File

@ -0,0 +1,36 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class BaseSumWithVATColumn : BaseColumnWithSum
{
protected readonly PreparedValues _preparedValues;
protected readonly Constants.Calculation _constants;
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,
Constants.Calculation constants) : base(count)
{
_sumColumn = sumColumn;
_preparedValues = preparedValues;
_constants = constants;
}
}
}

View File

@ -0,0 +1,17 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class SumWithVATColumnVT1 : BaseSumWithVATColumn
{
public void ComputeValues()
{
FillValues();
}
public SumWithVATColumnVT1(int count, SumColumn sumColumn, PreparedValues preparedValues,
Constants.Calculation constants) : base(count, sumColumn, preparedValues, constants)
{
}
}
}

View File

@ -0,0 +1,49 @@
using System;
using System.Linq;
using EvoCalculator.Core.Calculation.v1.Post;
using EvoCalculator.Core.Models.Calculation.Interfaces.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using TridentGoalSeek;
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class SumWithVATColumnVT2 : BaseSumWithVATColumn, IColumnWithGoalSeek
{
private PercentPaymentColumn _percentPaymentColumn;
private PostValues _postValues;
public decimal Calculate(decimal inputVariable)
{
_sumColumn.ComputeValues(inputVariable);
FillValues();
return Convert.ToDecimal(Sum);
}
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
));
}
public SumWithVATColumnVT2(int count, SumColumn sumColumn, PreparedValues preparedValues,
Constants.Calculation constants, PercentPaymentColumn percentPaymentColumn, PostValues postValues) : base(
count, sumColumn,
preparedValues, constants)
{
_percentPaymentColumn = percentPaymentColumn;
_postValues = postValues;
}
}
}

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class TLMExpensesColumn : BaseColumnWithSum
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class TLM_GrColumn : BaseColumnWithXNPV
{

View File

@ -1,4 +1,4 @@
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class TaxColumn : BaseColumnWithSum
{

View File

@ -1,7 +1,7 @@
using System.Linq;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class TransExpensesColumn : BaseColumnWithSum
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
namespace EvoCalculator.Core.Calculation.v1.Columns
{
public class VATColumn : BaseColumnWithSum
{

View File

@ -0,0 +1,324 @@
using System;
using System.Collections.Generic;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Calculation.v1.Post;
using EvoCalculator.Core.Models.Calculation.Models;
using EvoCalculator.Core.Models.Calculation.Models.Request;
namespace EvoCalculator.Core.Calculation.v1.Managers
{
public static partial class CalculateManager
{
public static ManagerResult CalculateByTotalExpected(RequestCalculation requestCalculation)
{
var preparedValues = requestCalculation.preparedValues;
var preparedPayments = requestCalculation.preparedPayments;
var additionalData = requestCalculation.additionalData;
var validationErrors = new Validation().ValidatePreparedData(requestCalculation);
if (validationErrors.Count > 0)
{
return new ManagerResult {Errors = validationErrors};
}
var constants = new Constants.Calculation();
var postValues = new PostValues();
var maxColumnLength = preparedValues.Nmper > preparedValues.NmperDeprecation
? preparedValues.Nmper + 1
: preparedValues.NmperDeprecation + 2;
try
{
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
dateColumn.ComputeValues(preparedValues, constants);
var dateTempColumn = new DateTempColumn(maxColumnLength);
dateTempColumn.ComputeValues(preparedValues);
var percentPaymentColumn = new PercentPaymentColumn(preparedPayments.Rows.Length + 1);
percentPaymentColumn.ComputeValues(preparedPayments);
var kaskoNmperGrColumn =
new KaskoNmperGrColumn(preparedValues.Nmper + 1, dateTempColumn, preparedValues.IrrExpected);
kaskoNmperGrColumn.ComputeValues(preparedValues, constants);
kaskoNmperGrColumn.PostCheck();
var tlmGrColumn = new TLM_GrColumn(preparedPayments.Rows.Length + 1, dateTempColumn,
preparedValues.IrrExpected);
tlmGrColumn.ComputeValues(preparedPayments, preparedValues);
tlmGrColumn.PostCheck();
var gpsGrColumn = new GPS_GrColumn(preparedPayments.Rows.Length + 1, dateTempColumn,
preparedValues.IrrExpected);
gpsGrColumn.ComputeValues(preparedPayments, preparedValues);
gpsGrColumn.PostCheck();
var kaskoBonusGrSumColumn = new KaskoBonusGrSumColumn(preparedValues.Nmper + 1);
kaskoBonusGrSumColumn.ComputeValues(preparedValues, kaskoNmperGrColumn);
postValues.BonusBase.ComputeValue(preparedValues, kaskoBonusGrSumColumn);
var npvBonusExpensesColumn = new NPVBonusExpensesColumn(preparedValues.Nmper + 1);
npvBonusExpensesColumn.ComputeValues(preparedValues, postValues);
postValues.BaseCost.ComputeValue(preparedValues, kaskoNmperGrColumn, tlmGrColumn, gpsGrColumn);
var sumColumn = new SumColumn(
preparedValues.Nmper + 1
, dateTempColumn
, preparedValues
, percentPaymentColumn, postValues);
var sumWithVatColumn =
new SumWithVATColumnVT2(preparedValues.Nmper + 1, sumColumn, preparedValues, constants,
percentPaymentColumn, postValues);
sumWithVatColumn.ComputeValues(Convert.ToDecimal(preparedValues.TotalExpected));
sumWithVatColumn.PostCheck();
sumColumn.PostCheck();
var agentComissionExpensesColumn = new AgentComissionExpensesColumn(preparedValues.Nmper + 1);
agentComissionExpensesColumn.ComputeValues(preparedValues);
var negativeCashflowColumn = new NegativeCashflowColumn(preparedValues.Nmper + 1);
negativeCashflowColumn.ComputeValues(kaskoNmperGrColumn);
var nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper + 1);
nsibBruttoGrColumn.ComputeValues(preparedValues);
var cashflowMsfoColumn = new CashflowMSFOColumnVT2(preparedValues.Nmper + 1, dateTempColumn, postValues,
preparedValues, percentPaymentColumn, sumColumn, negativeCashflowColumn, nsibBruttoGrColumn,
tlmGrColumn, gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn);
cashflowMsfoColumn.ComputeValues();
cashflowMsfoColumn.PostCheck(additionalData);
var vatColumn = new VATColumn(preparedValues.Nmper + 1);
vatColumn.ComputeValues(new Constants.Calculation(), sumColumn, preparedValues);
vatColumn.PostCheck();
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(maxColumnLength);
deprecationLdColumn.ComputeValues(preparedValues);
var deprecationColumn = new DeprecationColumn(maxColumnLength);
deprecationColumn.ComputeValues(deprecationLpColumn, deprecationLdColumn);
var ratExpensesColumn = new RatExpensesColumn(preparedValues.Nmper + 1);
ratExpensesColumn.ComputeValues(preparedValues);
var transExprensesColumn = new TransExpensesColumn(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, constants);
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);
var taxColumn = new TaxColumn(maxColumnLength);
taxColumn.ComputeValues(constants, sumColumn, acceptInsuranceColumn, deprecationColumn,
ratExpensesColumn,
registrExpensesColumn, comissionBonusExpensesColumn, transExprensesColumn, npvBonusExpensesColumn,
agentComissionExpensesColumn, insuranceBonusExpensesColumn, tlmExpensesColumn, gpsExpensesColumn);
var cashflowColumn = new CashflowColumn(preparedValues.Nmper + 1, dateTempColumn);
cashflowColumn.ComputeValues(preparedValues, sumColumn, negativeCashflowColumn);
var cashflowLeasingColumn = new CashflowLeasingColumn(preparedValues.Nmper + 1, dateTempColumn);
cashflowLeasingColumn.ComputeValues(preparedValues, sumColumn, negativeCashflowColumn,
nsibBruttoGrColumn,
tlmGrColumn, gpsGrColumn);
var cashflowNpvColumn = new CashflowNPVColumn(maxColumnLength);
cashflowNpvColumn.ComputeValues(preparedValues, sumColumn, npvBonusExpensesColumn,
agentComissionExpensesColumn, taxColumn, nsibExpensesColumn, negativeCashflowColumn,
ratExpensesColumn,
transExprensesColumn, tlmExpensesColumn, gpsExpensesColumn);
var npvWeightColumn = new NPVWeightColumn(maxColumnLength);
npvWeightColumn.ComputeValues(preparedValues, dateTempColumn);
var npvColumn = new NPVColumn(maxColumnLength, dateTempColumn);
npvColumn.ComputeValues(cashflowNpvColumn, npvWeightColumn);
var irrGrColumn = new IRRGrColumn(preparedValues.Nmper + 1);
irrGrColumn.ComputeValues(dateTempColumn, cashflowColumn);
var niColumn = new NIColumn(preparedValues.Nmper + 1);
niColumn.ComputeValues(preparedValues, cashflowColumn, irrGrColumn);
var interestColumn = new InterestColumn(preparedValues.Nmper + 1);
interestColumn.ComputeValues(irrGrColumn, niColumn);
interestColumn.PostCheck(sumColumn);
var cashflowNsibColumn = new CashflowNSIBColumn(preparedValues.Nmper + 1, dateTempColumn,
nsibBruttoGrColumn, nsibExpensesColumn);
if (nsibBruttoGrColumn.Sum != 0)
cashflowNsibColumn.ComputeValues((decimal) cashflowLeasingColumn.IRR);
var revenueColumn = new RevenueColumn(preparedValues.Nmper + 1);
revenueColumn.ComputeValues(nsibBruttoGrColumn, nsibExpensesColumn, cashflowNsibColumn);
var sumCurrentColumn = new SumCurrentColumn(preparedValues.Nmper + 1);
sumCurrentColumn.ComputeValues(sumWithVatColumn);
var sumCurrentNegativeColumn = new SumCurrentNegativeColumn(preparedValues.Nmper + 1);
sumCurrentNegativeColumn.ComputeValues(negativeCashflowColumn);
var sumCurrentInterestColumn = new SumCurrentInterestColumn(preparedValues.Nmper + 1);
sumCurrentInterestColumn.ComputeValues(interestColumn);
var sumCurrentTlmColumn = new SumCurrentTLMColumn(preparedValues.Nmper + 1);
sumCurrentTlmColumn.ComputeValues(tlmGrColumn);
var sumRepaymentColumn = new SumRepaymentColumn(preparedValues.Nmper + 1);
sumRepaymentColumn.ComputeValues(constants, preparedValues, sumCurrentColumn, sumCurrentNegativeColumn,
sumCurrentInterestColumn, sumCurrentTlmColumn);
sumRepaymentColumn.PostCheck();
var extraBonusSumColumn = new ExtraBonusSumColumn(preparedValues.Nmper + 1);
extraBonusSumColumn.ComputeValues(preparedValues, cashflowMsfoColumn, postValues);
var cashflowMsfoFinalColumn = new CashflowMSFOFinalColumn(preparedValues.Nmper + 1, dateTempColumn);
cashflowMsfoFinalColumn.ComputeValues(preparedValues, cashflowMsfoColumn, extraBonusSumColumn);
var cashflowNpvFinalColumn = new CashflowNPVFinalColumn(maxColumnLength);
cashflowNpvFinalColumn.ComputeValues(preparedValues, extraBonusSumColumn, cashflowNpvColumn);
var npvFinalColumn = new NPVFinalColumn(maxColumnLength, dateTempColumn);
npvFinalColumn.ComputeValues(cashflowNpvFinalColumn, npvWeightColumn);
var directorBonusSumColumn = new DirectorBonusSumColumn(preparedValues.Nmper + 1);
directorBonusSumColumn.ComputeValues(preparedValues, postValues);
var cashflowMsfoFinal2Column = new CashflowMSFOFinal2Column(preparedValues.Nmper + 1, dateTempColumn);
cashflowMsfoFinal2Column.ComputeValues(preparedValues, directorBonusSumColumn, cashflowMsfoFinalColumn);
var cashflowNpvFinal2Column = new CashflowNPVFinal2Column(maxColumnLength);
cashflowNpvFinal2Column.ComputeValues(preparedValues, cashflowNpvFinalColumn, directorBonusSumColumn);
var npvFinal2Column = new NPVFinal2Column(maxColumnLength, dateTempColumn);
npvFinal2Column.ComputeValues(cashflowNpvFinal2Column, npvWeightColumn);
postValues.PriceUP.ComputeValue(preparedValues, sumColumn);
postValues.PriceUP_PR.ComputeValue(preparedValues, postValues);
postValues.PriceUP_Year.ComputeValue(preparedValues, postValues);
postValues.PriceUP_Year_PR.ComputeValue(preparedValues, postValues);
postValues.NPVNI.ComputeValue(preparedValues, npvColumn);
postValues.BonusResult.ComputeValue(preparedValues, npvBonusExpensesColumn);
var res = new
{
postValues = postValues.GetValues(),
preparedValues,
columns = 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,
negativeCashflowColumn,
nsibBruttoGrColumn,
taxColumn,
cashflowColumn,
cashflowLeasingColumn,
cashflowMsfoColumn,
cashflowNpvColumn,
npvWeightColumn,
npvColumn,
irrGrColumn,
niColumn,
interestColumn,
cashflowNsibColumn,
revenueColumn,
sumCurrentColumn,
sumCurrentNegativeColumn,
sumCurrentInterestColumn,
sumCurrentTlmColumn,
sumRepaymentColumn,
extraBonusSumColumn,
cashflowMsfoFinalColumn,
cashflowNpvFinalColumn,
npvFinalColumn,
directorBonusSumColumn,
cashflowMsfoFinal2Column,
cashflowNpvFinal2Column,
npvFinal2Column
}
};
return new ManagerResult {Res = res};
}
catch (Exception ex)
{
return new ManagerResult
{
Errors = new List<string>
{
ex.Message
}
};
}
}
}
}

View File

@ -0,0 +1,323 @@
using System;
using System.Collections.Generic;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Calculation.v1.Post;
using EvoCalculator.Core.Models.Calculation.Models;
using EvoCalculator.Core.Models.Calculation.Models.Request;
namespace EvoCalculator.Core.Calculation.v1.Managers
{
public static partial class CalculateManager
{
public static ManagerResult CalculateDefault(RequestCalculation requestCalculation)
{
var preparedValues = requestCalculation.preparedValues;
var preparedPayments = requestCalculation.preparedPayments;
var additionalData = requestCalculation.additionalData;
var validationErrors = new Validation().ValidatePreparedData(requestCalculation);
if (validationErrors.Count > 0)
{
return new ManagerResult {Errors = validationErrors};
}
var constants = new Constants.Calculation();
var postValues = new PostValues();
var maxColumnLength = preparedValues.Nmper > preparedValues.NmperDeprecation
? preparedValues.Nmper + 1
: preparedValues.NmperDeprecation + 2;
try
{
var dateColumn = new DateColumn(preparedValues.Nmper + 1);
dateColumn.ComputeValues(preparedValues, constants);
var dateTempColumn = new DateTempColumn(maxColumnLength);
dateTempColumn.ComputeValues(preparedValues);
var percentPaymentColumn = new PercentPaymentColumn(preparedPayments.Rows.Length + 1);
percentPaymentColumn.ComputeValues(preparedPayments);
var kaskoNmperGrColumn =
new KaskoNmperGrColumn(preparedValues.Nmper + 1, dateTempColumn, preparedValues.IrrExpected);
kaskoNmperGrColumn.ComputeValues(preparedValues, constants);
kaskoNmperGrColumn.PostCheck();
var tlmGrColumn = new TLM_GrColumn(preparedPayments.Rows.Length + 1, dateTempColumn,
preparedValues.IrrExpected);
tlmGrColumn.ComputeValues(preparedPayments, preparedValues);
tlmGrColumn.PostCheck();
var gpsGrColumn = new GPS_GrColumn(preparedPayments.Rows.Length + 1, dateTempColumn,
preparedValues.IrrExpected);
gpsGrColumn.ComputeValues(preparedPayments, preparedValues);
gpsGrColumn.PostCheck();
var kaskoBonusGrSumColumn = new KaskoBonusGrSumColumn(preparedValues.Nmper + 1);
kaskoBonusGrSumColumn.ComputeValues(preparedValues, kaskoNmperGrColumn);
postValues.BonusBase.ComputeValue(preparedValues, kaskoBonusGrSumColumn);
var npvBonusExpensesColumn = new NPVBonusExpensesColumn(preparedValues.Nmper + 1);
npvBonusExpensesColumn.ComputeValues(preparedValues, postValues);
postValues.BaseCost.ComputeValue(preparedValues, kaskoNmperGrColumn, tlmGrColumn, gpsGrColumn);
var agentComissionExpensesColumn = new AgentComissionExpensesColumn(preparedValues.Nmper + 1);
agentComissionExpensesColumn.ComputeValues(preparedValues);
var negativeCashflowColumn = new NegativeCashflowColumn(preparedValues.Nmper + 1);
negativeCashflowColumn.ComputeValues(kaskoNmperGrColumn);
var nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper + 1);
nsibBruttoGrColumn.ComputeValues(preparedValues);
var sumColumn = new SumColumn(
preparedValues.Nmper + 1
, dateTempColumn
, preparedValues
, percentPaymentColumn, postValues);
var cashflowMsfoColumn = new CashflowMSFOColumnVT1(preparedValues.Nmper + 1, dateTempColumn, postValues,
preparedValues, percentPaymentColumn, sumColumn, negativeCashflowColumn, nsibBruttoGrColumn,
tlmGrColumn, gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn);
cashflowMsfoColumn.ComputeValues(Convert.ToDecimal(preparedValues.IrrExpected));
cashflowMsfoColumn.PostCheck(additionalData);
sumColumn.PostCheck();
var vatColumn = new VATColumn(preparedValues.Nmper + 1);
vatColumn.ComputeValues(new Constants.Calculation(), sumColumn, preparedValues);
vatColumn.PostCheck();
var sumWithVatColumn =
new SumWithVATColumnVT1(preparedValues.Nmper + 1, sumColumn, preparedValues, constants);
sumWithVatColumn.ComputeValues();
sumWithVatColumn.PostCheck();
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(maxColumnLength);
deprecationLdColumn.ComputeValues(preparedValues);
var deprecationColumn = new DeprecationColumn(maxColumnLength);
deprecationColumn.ComputeValues(deprecationLpColumn, deprecationLdColumn);
var ratExpensesColumn = new RatExpensesColumn(preparedValues.Nmper + 1);
ratExpensesColumn.ComputeValues(preparedValues);
var transExprensesColumn = new TransExpensesColumn(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, constants);
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);
var taxColumn = new TaxColumn(maxColumnLength);
taxColumn.ComputeValues(constants, sumColumn, acceptInsuranceColumn, deprecationColumn,
ratExpensesColumn,
registrExpensesColumn, comissionBonusExpensesColumn, transExprensesColumn, npvBonusExpensesColumn,
agentComissionExpensesColumn, insuranceBonusExpensesColumn, tlmExpensesColumn, gpsExpensesColumn);
var cashflowColumn = new CashflowColumn(preparedValues.Nmper + 1, dateTempColumn);
cashflowColumn.ComputeValues(preparedValues, sumColumn, negativeCashflowColumn);
var cashflowLeasingColumn = new CashflowLeasingColumn(preparedValues.Nmper + 1, dateTempColumn);
cashflowLeasingColumn.ComputeValues(preparedValues, sumColumn, negativeCashflowColumn,
nsibBruttoGrColumn,
tlmGrColumn, gpsGrColumn);
var cashflowNpvColumn = new CashflowNPVColumn(maxColumnLength);
cashflowNpvColumn.ComputeValues(preparedValues, sumColumn, npvBonusExpensesColumn,
agentComissionExpensesColumn, taxColumn, nsibExpensesColumn, negativeCashflowColumn,
ratExpensesColumn,
transExprensesColumn, tlmExpensesColumn, gpsExpensesColumn);
var npvWeightColumn = new NPVWeightColumn(maxColumnLength);
npvWeightColumn.ComputeValues(preparedValues, dateTempColumn);
var npvColumn = new NPVColumn(maxColumnLength, dateTempColumn);
npvColumn.ComputeValues(cashflowNpvColumn, npvWeightColumn);
var irrGrColumn = new IRRGrColumn(preparedValues.Nmper + 1);
irrGrColumn.ComputeValues(dateTempColumn, cashflowColumn);
var niColumn = new NIColumn(preparedValues.Nmper + 1);
niColumn.ComputeValues(preparedValues, cashflowColumn, irrGrColumn);
var interestColumn = new InterestColumn(preparedValues.Nmper + 1);
interestColumn.ComputeValues(irrGrColumn, niColumn);
interestColumn.PostCheck(sumColumn);
var cashflowNsibColumn = new CashflowNSIBColumn(preparedValues.Nmper + 1, dateTempColumn,
nsibBruttoGrColumn, nsibExpensesColumn);
if (nsibBruttoGrColumn.Sum != 0)
cashflowNsibColumn.ComputeValues((decimal) cashflowLeasingColumn.IRR);
var revenueColumn = new RevenueColumn(preparedValues.Nmper + 1);
revenueColumn.ComputeValues(nsibBruttoGrColumn, nsibExpensesColumn, cashflowNsibColumn);
var sumCurrentColumn = new SumCurrentColumn(preparedValues.Nmper + 1);
sumCurrentColumn.ComputeValues(sumWithVatColumn);
var sumCurrentNegativeColumn = new SumCurrentNegativeColumn(preparedValues.Nmper + 1);
sumCurrentNegativeColumn.ComputeValues(negativeCashflowColumn);
var sumCurrentInterestColumn = new SumCurrentInterestColumn(preparedValues.Nmper + 1);
sumCurrentInterestColumn.ComputeValues(interestColumn);
var sumCurrentTlmColumn = new SumCurrentTLMColumn(preparedValues.Nmper + 1);
sumCurrentTlmColumn.ComputeValues(tlmGrColumn);
var sumRepaymentColumn = new SumRepaymentColumn(preparedValues.Nmper + 1);
sumRepaymentColumn.ComputeValues(constants, preparedValues, sumCurrentColumn, sumCurrentNegativeColumn,
sumCurrentInterestColumn, sumCurrentTlmColumn);
sumRepaymentColumn.PostCheck();
var extraBonusSumColumn = new ExtraBonusSumColumn(preparedValues.Nmper + 1);
extraBonusSumColumn.ComputeValues(preparedValues, cashflowMsfoColumn, postValues);
var cashflowMsfoFinalColumn = new CashflowMSFOFinalColumn(preparedValues.Nmper + 1, dateTempColumn);
cashflowMsfoFinalColumn.ComputeValues(preparedValues, cashflowMsfoColumn, extraBonusSumColumn);
var cashflowNpvFinalColumn = new CashflowNPVFinalColumn(maxColumnLength);
cashflowNpvFinalColumn.ComputeValues(preparedValues, extraBonusSumColumn, cashflowNpvColumn);
var npvFinalColumn = new NPVFinalColumn(maxColumnLength, dateTempColumn);
npvFinalColumn.ComputeValues(cashflowNpvFinalColumn, npvWeightColumn);
var directorBonusSumColumn = new DirectorBonusSumColumn(preparedValues.Nmper + 1);
directorBonusSumColumn.ComputeValues(preparedValues, postValues);
var cashflowMsfoFinal2Column = new CashflowMSFOFinal2Column(preparedValues.Nmper + 1, dateTempColumn);
cashflowMsfoFinal2Column.ComputeValues(preparedValues, directorBonusSumColumn, cashflowMsfoFinalColumn);
var cashflowNpvFinal2Column = new CashflowNPVFinal2Column(maxColumnLength);
cashflowNpvFinal2Column.ComputeValues(preparedValues, cashflowNpvFinalColumn, directorBonusSumColumn);
var npvFinal2Column = new NPVFinal2Column(maxColumnLength, dateTempColumn);
npvFinal2Column.ComputeValues(cashflowNpvFinal2Column, npvWeightColumn);
postValues.PriceUP.ComputeValue(preparedValues, sumColumn);
postValues.PriceUP_PR.ComputeValue(preparedValues, postValues);
postValues.PriceUP_Year.ComputeValue(preparedValues, postValues);
postValues.PriceUP_Year_PR.ComputeValue(preparedValues, postValues);
postValues.NPVNI.ComputeValue(preparedValues, npvColumn);
postValues.BonusResult.ComputeValue(preparedValues, npvBonusExpensesColumn);
var res = new
{
postValues = postValues.GetValues(),
preparedValues,
columns = 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,
negativeCashflowColumn,
nsibBruttoGrColumn,
taxColumn,
cashflowColumn,
cashflowLeasingColumn,
cashflowMsfoColumn,
cashflowNpvColumn,
npvWeightColumn,
npvColumn,
irrGrColumn,
niColumn,
interestColumn,
cashflowNsibColumn,
revenueColumn,
sumCurrentColumn,
sumCurrentNegativeColumn,
sumCurrentInterestColumn,
sumCurrentTlmColumn,
sumRepaymentColumn,
extraBonusSumColumn,
cashflowMsfoFinalColumn,
cashflowNpvFinalColumn,
npvFinalColumn,
directorBonusSumColumn,
cashflowMsfoFinal2Column,
cashflowNpvFinal2Column,
npvFinal2Column
}
};
return new ManagerResult {Res = res};
}
catch (Exception ex)
{
return new ManagerResult
{
Errors = new List<string>
{
ex.Message
}
};
}
}
}
}

View File

@ -1,8 +1,8 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Post
namespace EvoCalculator.Core.Calculation.v1.Post
{
public class BaseCost : BasePostValue<decimal>
{

View File

@ -1,4 +1,4 @@
namespace EvoCalculator.Core.Calculation.Post
namespace EvoCalculator.Core.Calculation.v1.Post
{
public class BasePostValue<T>
{

View File

@ -1,8 +1,8 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Post
namespace EvoCalculator.Core.Calculation.v1.Post
{
public class BonusBase : BasePostValue<decimal>
{

View File

@ -1,8 +1,8 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Post
namespace EvoCalculator.Core.Calculation.v1.Post
{
public class BonusResult : BasePostValue<decimal>
{

View File

@ -1,8 +1,8 @@
using System.Linq;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Post
namespace EvoCalculator.Core.Calculation.v1.Post
{
public class NPVNI : BasePostValue<double>
{

View File

@ -1,4 +1,4 @@
namespace EvoCalculator.Core.Calculation.Post
namespace EvoCalculator.Core.Calculation.v1.Post
{
public class PostValues
{

View File

@ -1,8 +1,8 @@
using System.Linq;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Post
namespace EvoCalculator.Core.Calculation.v1.Post
{
public class PriceUP : BasePostValue<decimal>
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Post
namespace EvoCalculator.Core.Calculation.v1.Post
{
public class PriceUP_PR : BasePostValue<double>
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Post
namespace EvoCalculator.Core.Calculation.v1.Post
{
public class PriceUP_Year : BasePostValue<decimal>
{

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Post
namespace EvoCalculator.Core.Calculation.v1.Post
{
public class PriceUP_Year_PR : BasePostValue<double>
{

View File

@ -1,11 +1,11 @@
using System.Collections.Generic;
using EvoCalculator.Core.Models.Calculation.Models.Request;
namespace EvoCalculator.Core.Calculation
namespace EvoCalculator.Core.Calculation.v1
{
public class Validation
{
public object ValidatePreparedData(RequestCalculation requestCalculation)
public List<string> ValidatePreparedData(RequestCalculation requestCalculation)
{
var preparedValues = requestCalculation.preparedValues;
@ -33,13 +33,7 @@ namespace EvoCalculator.Core.Calculation
"Некорректно указана Дата второго платежа, она не может быть раньше Даты заключения ДЛ");
}
if (errors.Count > 0)
return new
{
errors
};
return null;
return errors;
}
}
}

View File

@ -0,0 +1,10 @@
using TridentGoalSeek;
namespace EvoCalculator.Core.Models.Calculation.Interfaces.Columns
{
public interface IColumnWithGoalSeek : IGoalSeekAlgorithm
{
public new decimal Calculate(decimal inputVariable);
public void ComputeValues(decimal requiredValue);
}
}

View File

@ -0,0 +1,10 @@
using System.Collections.Generic;
namespace EvoCalculator.Core.Models.Calculation.Models
{
public class ManagerResult
{
public object Res { get; set; }
public List<string> Errors { get; set; }
}
}

View File

@ -6,7 +6,7 @@ namespace EvoCalculator.Core.Models.Calculation.Models.Request
{
public PreparedValues preparedValues { get; set; }
public PreparedPayments preparedPayments { get; set; }
public AdditionalData? additionalData { get; set; }
}
}

View File

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

View File

@ -1,4 +1,4 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;

View File

@ -1,4 +1,4 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;

View File

@ -1,4 +1,4 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;

View File

@ -1,251 +1,251 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;
namespace EvoCalculator.Core.Tests.Calculation.Columns
{
public class AcceptSumTests
{
[Fact]
public void AcceptSumTest1()
{
var preparedValues =
new PreparedValues
{
Nmper = 30,
AcceptSum = 2500000
};
var dateTempColumn = new DateTempColumn(preparedValues.Nmper + 1)
{
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),
new DateTime(2025, 10, 12),
new DateTime(2025, 11, 12),
new DateTime(2025, 12, 12),
new DateTime(2026, 1, 12),
new DateTime(2026, 2, 12),
new DateTime(2026, 3, 12)
}
};
var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn, null, null, null)
{
Values = new[]
{
-2542903.66268442m,
625000.00m,
120000.00m,
120000.00m,
120000.00m,
120000.00m,
120000.00m,
120000.00m,
120000.00m,
120000.00m,
120000.00m,
120000.00m,
108000.00m,
108000.00m,
108000.00m,
108000.00m,
108000.00m,
108000.00m,
108000.00m,
108000.00m,
108000.00m,
108000.00m,
108000.00m,
96000.00m,
96000.00m,
96000.00m,
96000.00m,
96000.00m,
96000.00m,
96000.00m,
25000.00m
}
};
var vatColumn = new VATColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
742000.00m,
125000.00m,
24000.00m,
24000.00m,
24000.00m,
24000.00m,
24000.00m,
24000.00m,
24000.00m,
24000.00m,
24000.00m,
24000.00m,
21600.00m,
21600.00m,
21600.00m,
21600.00m,
21600.00m,
21600.00m,
21600.00m,
21600.00m,
21600.00m,
21600.00m,
21600.00m,
19200.00m,
19200.00m,
19200.00m,
19200.00m,
19200.00m,
19200.00m,
19200.00m,
5000.00m
}
};
var sumWithVatColumn = new SumWithVATColumn(preparedValues.Nmper + 1)
{
Values = new[]
{
4452000.00m,
750000.00m,
144000.00m,
144000.00m,
144000.00m,
144000.00m,
144000.00m,
144000.00m,
144000.00m,
144000.00m,
144000.00m,
144000.00m,
129600.00m,
129600.00m,
129600.00m,
129600.00m,
129600.00m,
129600.00m,
129600.00m,
129600.00m,
129600.00m,
129600.00m,
129600.00m,
115200.00m,
115200.00m,
115200.00m,
115200.00m,
115200.00m,
115200.00m,
115200.00m,
30000.00m
}
};
var expected = new[]
{
2500000m,
421159.0296495957m,
80862.53369272237m,
80862.53369272237m,
80862.53369272237m,
80862.53369272237m,
80862.53369272237m,
80862.53369272237m,
80862.53369272237m,
80862.53369272237m,
80862.53369272237m,
80862.53369272237m,
72776.280323450133m,
72776.280323450133m,
72776.280323450133m,
72776.280323450133m,
72776.280323450133m,
72776.280323450133m,
72776.280323450133m,
72776.280323450133m,
72776.280323450133m,
72776.280323450133m,
72776.280323450133m,
64690.026954177898m,
64690.026954177898m,
64690.026954177898m,
64690.026954177898m,
64690.026954177898m,
64690.026954177898m,
64690.026954177898m,
16846.361185983827m
};
var acceptSumColumn = new AcceptSumColumn(preparedValues.Nmper + 1);
acceptSumColumn.ComputeValues(preparedValues, sumColumn, vatColumn, sumWithVatColumn);
var values = acceptSumColumn.Values;
Assert.Equal(expected, values, new DecimalArrayComparer());
}
}
}
// using System;
// using EvoCalculator.Core.Calculation.v1.Columns;
// using EvoCalculator.Core.Models.Calculation.Models.Prepared;
// using Xunit;
//
// namespace EvoCalculator.Core.Tests.Calculation.Columns
// {
// public class AcceptSumTests
// {
// [Fact]
// public void AcceptSumTest1()
// {
// var preparedValues =
// new PreparedValues
// {
// Nmper = 30,
// AcceptSum = 2500000
// };
//
// var dateTempColumn = new DateTempColumn(preparedValues.Nmper + 1)
// {
// 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),
// new DateTime(2025, 10, 12),
// new DateTime(2025, 11, 12),
// new DateTime(2025, 12, 12),
// new DateTime(2026, 1, 12),
// new DateTime(2026, 2, 12),
// new DateTime(2026, 3, 12)
// }
// };
//
// var sumColumn = new SumColumn(preparedValues.Nmper + 1, dateTempColumn, null, null, null)
// {
// Values = new[]
// {
// -2542903.66268442m,
// 625000.00m,
// 120000.00m,
// 120000.00m,
// 120000.00m,
// 120000.00m,
// 120000.00m,
// 120000.00m,
// 120000.00m,
// 120000.00m,
// 120000.00m,
// 120000.00m,
// 108000.00m,
// 108000.00m,
// 108000.00m,
// 108000.00m,
// 108000.00m,
// 108000.00m,
// 108000.00m,
// 108000.00m,
// 108000.00m,
// 108000.00m,
// 108000.00m,
// 96000.00m,
// 96000.00m,
// 96000.00m,
// 96000.00m,
// 96000.00m,
// 96000.00m,
// 96000.00m,
// 25000.00m
// }
// };
//
// var vatColumn = new VATColumn(preparedValues.Nmper + 1)
// {
// Values = new[]
// {
// 742000.00m,
// 125000.00m,
// 24000.00m,
// 24000.00m,
// 24000.00m,
// 24000.00m,
// 24000.00m,
// 24000.00m,
// 24000.00m,
// 24000.00m,
// 24000.00m,
// 24000.00m,
// 21600.00m,
// 21600.00m,
// 21600.00m,
// 21600.00m,
// 21600.00m,
// 21600.00m,
// 21600.00m,
// 21600.00m,
// 21600.00m,
// 21600.00m,
// 21600.00m,
// 19200.00m,
// 19200.00m,
// 19200.00m,
// 19200.00m,
// 19200.00m,
// 19200.00m,
// 19200.00m,
// 5000.00m
// }
// };
//
// var sumWithVatColumn = new SumWithVATColumnVT1(preparedValues.Nmper + 1)
// {
// Values = new[]
// {
// 4452000.00m,
// 750000.00m,
// 144000.00m,
// 144000.00m,
// 144000.00m,
// 144000.00m,
// 144000.00m,
// 144000.00m,
// 144000.00m,
// 144000.00m,
// 144000.00m,
// 144000.00m,
// 129600.00m,
// 129600.00m,
// 129600.00m,
// 129600.00m,
// 129600.00m,
// 129600.00m,
// 129600.00m,
// 129600.00m,
// 129600.00m,
// 129600.00m,
// 129600.00m,
// 115200.00m,
// 115200.00m,
// 115200.00m,
// 115200.00m,
// 115200.00m,
// 115200.00m,
// 115200.00m,
// 30000.00m
// }
// };
//
// var expected = new[]
// {
// 2500000m,
// 421159.0296495957m,
// 80862.53369272237m,
// 80862.53369272237m,
// 80862.53369272237m,
// 80862.53369272237m,
// 80862.53369272237m,
// 80862.53369272237m,
// 80862.53369272237m,
// 80862.53369272237m,
// 80862.53369272237m,
// 80862.53369272237m,
// 72776.280323450133m,
// 72776.280323450133m,
// 72776.280323450133m,
// 72776.280323450133m,
// 72776.280323450133m,
// 72776.280323450133m,
// 72776.280323450133m,
// 72776.280323450133m,
// 72776.280323450133m,
// 72776.280323450133m,
// 72776.280323450133m,
// 64690.026954177898m,
// 64690.026954177898m,
// 64690.026954177898m,
// 64690.026954177898m,
// 64690.026954177898m,
// 64690.026954177898m,
// 64690.026954177898m,
// 16846.361185983827m
// };
//
//
// var acceptSumColumn = new AcceptSumColumn(preparedValues.Nmper + 1);
// acceptSumColumn.ComputeValues(preparedValues, sumColumn, vatColumn, sumWithVatColumn);
//
// var values = acceptSumColumn.Values;
// Assert.Equal(expected, values, new DecimalArrayComparer());
// }
// }
// }

View File

@ -1,4 +1,4 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;

View File

@ -1,5 +1,5 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;

View File

@ -1,4 +1,4 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;

View File

@ -1,5 +1,5 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;

View File

@ -1,5 +1,5 @@
using System;
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;

View File

@ -1,4 +1,4 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;

View File

@ -1,4 +1,4 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;

View File

@ -1,4 +1,4 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;

View File

@ -1,5 +1,5 @@
using EvoCalculator.Core.Calculation.Columns;
using EvoCalculator.Core.Calculation.Post;
using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Calculation.v1.Post;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit;

Some files were not shown because too many files have changed in this diff Show More