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.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.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\.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.3\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\Local\JetBrains\Rider2020.3\resharper-host\Local\Transient\Rider\v203\SolutionCaches\_EvoCalculator.Core.-1347799741.00" t="ExcludeRecursive" />
<e p="C:\Users\Chika\AppData\Roaming\JetBrains\Rider2020.2\scratches" t="IncludeRecursive" /> <e p="C:\Users\Chika\Projects\Calculator\EvoCalculator.Core" t="IncludeFlat">
<e p="C:\Users\Chika\Projects\EvoCalculator.Core" t="IncludeFlat">
<e p="EvoCalculator.Core" t="IncludeRecursive"> <e p="EvoCalculator.Core" t="IncludeRecursive">
<e p="appsettings.Development.json" t="Include" /> <e p="appsettings.Development.json" t="Include" />
<e p="appsettings.json" t="Include" /> <e p="appsettings.json" t="Include" />
@ -38,70 +37,6 @@
</e> </e>
<e p="EvoCalculator.Core.Calculation" t="IncludeRecursive"> <e p="EvoCalculator.Core.Calculation" t="IncludeRecursive">
<e p="bin" t="ExcludeRecursive" /> <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="EvoCalculator.Core.Calculation.csproj" t="IncludeRecursive" />
<e p="obj" t="ExcludeRecursive"> <e p="obj" t="ExcludeRecursive">
<e p="Debug" t="Include"> <e p="Debug" t="Include">
@ -110,19 +45,98 @@
</e> </e>
</e> </e>
</e> </e>
<e p="Post" t="Include"> <e p="v1" t="Include">
<e p="BaseCost.cs" t="Include" /> <e p="CheckTools.cs" t="Include" />
<e p="BasePostValue.cs" t="Include" /> <e p="Columns" t="Include">
<e p="BonusBase.cs" t="Include" /> <e p="AcceptInsuranceColumn.cs" t="Include" />
<e p="BonusResult.cs" t="Include" /> <e p="AcceptKaskoColumn.cs" t="Include" />
<e p="NPVNI.cs" t="Include" /> <e p="AcceptOsagoColumn.cs" t="Include" />
<e p="PostValues.cs" t="Include" /> <e p="AcceptSumColumn.cs" t="Include" />
<e p="PriceUP.cs" t="Include" /> <e p="AgentComissionExpensesColumn.cs" t="Include" />
<e p="PriceUP_PR.cs" t="Include" /> <e p="BaseColumn.cs" t="Include" />
<e p="PriceUP_Year.cs" t="Include" /> <e p="BaseColumnWithNominal.cs" t="Include" />
<e p="PriceUP_Year_PR.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>
<e p="Validation.cs" t="Include" />
</e> </e>
<e p="EvoCalculator.Core.Constants" t="IncludeRecursive"> <e p="EvoCalculator.Core.Constants" t="IncludeRecursive">
<e p="bin" t="ExcludeRecursive" /> <e p="bin" t="ExcludeRecursive" />
@ -152,10 +166,15 @@
<e p="EvoCalculator.Core.Models" t="IncludeRecursive"> <e p="EvoCalculator.Core.Models" t="IncludeRecursive">
<e p="bin" t="ExcludeRecursive" /> <e p="bin" t="ExcludeRecursive" />
<e p="Calculation" t="Include"> <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="Models" t="Include">
<e p="AdditionalData.cs" t="Include" /> <e p="AdditionalData.cs" t="Include" />
<e p="Flow.cs" t="Include" /> <e p="Flow.cs" t="Include" />
<e p="ManagerResult.cs" t="Include" />
<e p="Prepared" t="Include"> <e p="Prepared" t="Include">
<e p="PreparedPayments.cs" t="Include" /> <e p="PreparedPayments.cs" t="Include" />
<e p="PreparedValues.cs" t="Include" /> <e p="PreparedValues.cs" t="Include" />
@ -219,7 +238,7 @@
<e p="NPVFinal2.cs" t="Include" /> <e p="NPVFinal2.cs" t="Include" />
<e p="NPVWeight.cs" t="Include" /> <e p="NPVWeight.cs" t="Include" />
<e p="NSIBBruttoGrTests.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="PercentPaymentTests.cs" t="Include" />
<e p="RatExpensesTests.cs" t="Include" /> <e p="RatExpensesTests.cs" t="Include" />
<e p="RegistrExpensesTests.cs" t="Include" /> <e p="RegistrExpensesTests.cs" t="Include" />
@ -233,7 +252,7 @@
<e p="SumWithVatTests.cs" t="Include" /> <e p="SumWithVatTests.cs" t="Include" />
<e p="TaxColumnTests.cs" t="Include" /> <e p="TaxColumnTests.cs" t="Include" />
<e p="TLM_GrTests.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="TransExprensesTests.cs" t="Include" />
<e p="VATColumnTests.cs" t="Include" /> <e p="VATColumnTests.cs" t="Include" />
</e> </e>

View File

@ -2,7 +2,7 @@
<project version="4"> <project version="4">
<component name="ProjectModuleManager"> <component name="ProjectModuleManager">
<modules> <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> </modules>
</component> </component>
</project> </project>

View File

@ -14,9 +14,15 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="2c3b0650-5589-43d4-b4b7-2979612bb30f" name="Default Changelist" comment=""> <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$/.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/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/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/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" /> <change beforePath="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
@ -28,100 +34,63 @@
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component> </component>
<component name="HighlightingSettingsPerFile"> <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/Calculator/EvoCalculator.Core/EvoCalculator.Core.Tests/Calculation/Columns/SumWithVatTests.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/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="mock:///Dummy.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://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/168/Future.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/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="file://$PROJECT_DIR$/EvoCalculator.Core.Constants/Calculation.cs" root0="FORCE_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:///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/v1/Post/PriceUP.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PostValues.cs" root0="FORCE_HIGHLIGHTING" /> <setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Post/PriceUP_Year_PR.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Dummy.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/DecompilerCache/decompiler/E2E1F770-6781-48FC-97C9-82BA075D5898/23/8e71d863/IGoalSeekAlgorithm.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/Calculator/EvoCalculator.Core/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateDefault.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/SumCurrent.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="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Post/PostValues.cs" root0="FORCE_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/v1/Post/PriceUP_Year.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.FinanceFormulas/XIRR.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/Calculator/EvoCalculator.Core/EvoCalculator.Core.Calculation/v1/Columns/AcceptSumColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Dummy.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" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/1E91381A-E6FB-483F-B621-BC63C0219EA8/11/HttpResponseWritingExtensions.cs" root0="SKIP_HIGHLIGHTING" />
</component> </component>
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
<option name="CHANGED_PATHS"> <changedPaths>
<list> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DirectorBonusSum.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/ExtraBonusSum.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/CalculateDefault.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVBonusExpensesTests.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/Calculate.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumWithVatTests.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateByTotal.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TaxColumnTests.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/ManagerAnswer.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/VATColumnTests.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Validation.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/PriceUp.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/BaseColumnWithGoalSeek.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/IBaseColumnWithGoalSeek.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP_PR.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/Columns/IBaseColumnWithGoalSeek.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/PriceUP_PR.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/CashflowNSIBColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/PriceUP_Year.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP_Year.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/BaseColumnWithNominal.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/PriceUP_Year_PR.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/BaseColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP_Year_PR.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumWithVATColumnVT1.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/PriceUP_Year_PR_Tests.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Interfaces/Columns/IColumnWithGoalSeek.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/NPVNI.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOColumn/CashflowMSFOColumnVT2.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/BonusResult.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOColumn/CashflowMSFOColumnVT1.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/BonusResult.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOColumn/BaseCashflowMSFOColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PostValues.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumWithVATColumn/BaseSumWithVATColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/Test.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumWithVATColumn/SumWithVATColumnVT1.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedPayments.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AcceptSumTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TaxColumn.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumCurrent.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinalColumn.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumWithVatTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVColumn.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateDefault.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinalColumn.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateManager.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinal2Column.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumWithVATColumn/SumWithVATColumnVT2.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinal2Column.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/AcceptSumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Startup.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/ExtraBonusSumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Program.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/CashflowMSFOFinalColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedValues.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Columns/SumCurrentColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Validation.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumn.cs" /> <option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/v1/Managers/Calculate/CalculateByTotalExpected.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DateColumn.cs" /> </changedPaths>
<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>
</component> </component>
<component name="ProjectId" id="1imEQedzOwq3NavnSUCC7bKWqbF" /> <component name="ProjectId" id="1imEQedzOwq3NavnSUCC7bKWqbF" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true"> <component name="ProjectLevelVcsManager" settingsEditedManually="true">
@ -134,13 +103,14 @@
<component name="PropertiesComponent"> <component name="PropertiesComponent">
<property name="ASKED_ADD_EXTERNAL_FILES" value="true" /> <property name="ASKED_ADD_EXTERNAL_FILES" value="true" />
<property name="DebuggerViewTab_PTCS_FirstProportionKey" value="0.34995976" /> <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.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" /> <property name="WebServerToolWindowFactoryState" value="false" />
<property name="XThreadsFramesViewSplitterKey" value="0.86973685" /> <property name="XThreadsFramesViewSplitterKey" value="0.86973685" />
<property name="com.intellij.ide.scratch.LRUPopupBuilder$1/New Scratch File" value="C#" /> <property name="com.intellij.ide.scratch.LRUPopupBuilder$1/New Scratch File" value="C#" />
<property name="nodejs_package_manager_path" value="npm" /> <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="settings.editor.splitter.proportion" value="0.19789612" />
<property name="vue.rearranger.settings.migration" value="true" /> <property name="vue.rearranger.settings.migration" value="true" />
</component> </component>
@ -231,6 +201,9 @@
<workItem from="1605776517986" duration="1856000" /> <workItem from="1605776517986" duration="1856000" />
<workItem from="1605809287754" duration="7800000" /> <workItem from="1605809287754" duration="7800000" />
<workItem from="1606059028039" duration="15332000" /> <workItem from="1606059028039" duration="15332000" />
<workItem from="1612269976377" duration="116000" />
<workItem from="1612270111175" duration="4580000" />
<workItem from="1612343468524" duration="4982000" />
</task> </task>
<task id="LOCAL-00001" summary="rename: flow"> <task id="LOCAL-00001" summary="rename: flow">
<created>1602593830686</created> <created>1602593830686</created>
@ -323,7 +296,28 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1606075248419</updated> <updated>1606075248419</updated>
</task> </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 /> <servers />
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
@ -359,211 +353,29 @@
<MESSAGE value="add validation &amp; postcheck" /> <MESSAGE value="add validation &amp; postcheck" />
<MESSAGE value="add check for zero value in columns" /> <MESSAGE value="add check for zero value in columns" />
<MESSAGE value="add postcheck of postvalues" /> <MESSAGE value="add postcheck of postvalues" />
<option name="LAST_COMMIT_MESSAGE" value="add postcheck of postvalues" /> <MESSAGE value="create CashflowMSFOColumnVT1" />
</component> <MESSAGE value="move sumColumn using from base" />
<component name="WindowStateProjectService"> <MESSAGE value="split SumWithVATColumn into 2 columns" />
<state x="1077" y="489" key="#Web_Browsers" timestamp="1602508282238"> <option name="LAST_COMMIT_MESSAGE" value="split SumWithVATColumn into 2 columns" />
<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" />
</component> </component>
<component name="XDebuggerManager"> <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> <pin-to-top-manager>
<pinned-members> <pinned-members>
<PinnedItemInfo parentTag="Frame#EvoCalculator.Core.Tests.Calculation.Suite.Columns.TLM_GrTests.TLM_GrTest1" memberName="expected" /> <PinnedItemInfo parentTag="Frame#EvoCalculator.Core.Tests.Calculation.Suite.Columns.TLM_GrTests.TLM_GrTest1" memberName="expected" />
@ -580,9 +392,10 @@
</pin-to-top-manager> </pin-to-top-manager>
<watches-manager> <watches-manager>
<configuration name="LaunchSettings"> <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="_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>
<configuration name="RiderUnitTests"> <configuration name="RiderUnitTests">
<watch expression="Convert.ToDecimal(&#10; (this._preparedValues.BaseCost - this._preparedValues.FirstPaymentSum) /&#10; this._preparedValues.Nmper)" /> <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.Collections.Generic;
using System.Linq; using System.Linq;
namespace EvoCalculator.Core.Calculation namespace EvoCalculator.Core.Calculation.v1
{ {
public class CheckTools<T> 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 public class AcceptInsuranceColumn : BaseColumnWithSum
{ {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,10 +1,10 @@
using System; using System;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class BaseColumnWithNominal : BaseColumnWithXIRR 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; using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class BaseColumnWithSum : BaseColumn<decimal> public class BaseColumnWithSum : BaseColumn<decimal>
{ {

View File

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

View File

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

View File

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

View File

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

View File

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

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; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class CashflowMSFOFinal2Column : BaseColumnWithNominal public class CashflowMSFOFinal2Column : BaseColumnWithNominal
{ {

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class CashflowMSFOFinalColumn : BaseColumnWithNominal 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) ExtraBonusSumColumn extraBonusSumColumn)
{ {
Values[0] = -preparedValues.AcquisitionExpenses; Values[0] = -preparedValues.AcquisitionExpenses;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class DeprecationLPColumn : BaseColumnWithSum 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; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class DirectorBonusSumColumn : BaseColumnWithSum 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 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; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class ExtraBonusSumColumn : BaseColumnWithSum 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) PostValues postValues)
{ {
Values[2] = cashflowMsfoColumn.Nominal >= preparedValues.IRR_MSFO_Plan Values[2] = cashflowMsfoColumn.Nominal >= preparedValues.IRR_MSFO_Plan

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,8 +1,8 @@
using System; using System;
using EvoCalculator.Core.Calculation.Post; using EvoCalculator.Core.Calculation.v1.Post;
using EvoCalculator.Core.Models.Calculation.Models.Prepared; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class NPVBonusExpensesColumn : BaseColumnWithSum 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 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 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 public class NPVFinalColumn : BaseColumnWithNominal
{ {

View File

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

View File

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

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class NSIBExpensesColumn : BaseColumnWithSum 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 public class NegativeCashflowColumn : BaseColumnWithSum
{ {

View File

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

View File

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

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class RegistrExpensesColumn : BaseColumnWithSum 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> public class RevenueColumn : BaseColumn<decimal>
{ {

View File

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

View File

@ -1,6 +1,6 @@
using System.Linq; using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class SumCurrentColumn : BaseColumn<decimal> 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); 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; using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class SumCurrentInterestColumn : BaseColumn<decimal> public class SumCurrentInterestColumn : BaseColumn<decimal>
{ {

View File

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

View File

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

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class SumRepaymentColumn : BaseColumn<decimal> 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; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class TLMExpensesColumn : BaseColumnWithSum public class TLMExpensesColumn : BaseColumnWithSum
{ {

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class TLM_GrColumn : BaseColumnWithXNPV 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 public class TaxColumn : BaseColumnWithSum
{ {

View File

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

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns namespace EvoCalculator.Core.Calculation.v1.Columns
{ {
public class VATColumn : BaseColumnWithSum 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 System;
using EvoCalculator.Core.Calculation.Columns; using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Post namespace EvoCalculator.Core.Calculation.v1.Post
{ {
public class BaseCost : BasePostValue<decimal> 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> public class BasePostValue<T>
{ {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared; 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> public class PriceUP_Year_PR : BasePostValue<double>
{ {

View File

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

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

@ -15,6 +15,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="TridentGoalSeek" Version="1.0.5" />
</ItemGroup> </ItemGroup>
</Project> </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 EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit; 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 EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit; 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 EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit; using Xunit;

View File

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

View File

@ -1,5 +1,5 @@
using System; using System;
using EvoCalculator.Core.Calculation.Columns; using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit; 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 EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit; using Xunit;

View File

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

View File

@ -1,5 +1,5 @@
using System; using System;
using EvoCalculator.Core.Calculation.Columns; using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Models.Calculation.Models.Prepared; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit; 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 EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit; 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 EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit; 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 EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit; using Xunit;

View File

@ -1,5 +1,5 @@
using EvoCalculator.Core.Calculation.Columns; using EvoCalculator.Core.Calculation.v1.Columns;
using EvoCalculator.Core.Calculation.Post; using EvoCalculator.Core.Calculation.v1.Post;
using EvoCalculator.Core.Models.Calculation.Models.Prepared; using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit; 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 EvoCalculator.Core.Models.Calculation.Models.Prepared;
using Xunit; using Xunit;

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