add postcheck of postvalues

This commit is contained in:
Chika 2020-11-22 23:00:48 +03:00
parent a43bb702e1
commit f7730ca9c0
14 changed files with 193 additions and 114 deletions

View File

@ -156,6 +156,7 @@
<e p="IFinanceFormula.cs" t="Include" />
</e>
<e p="Models" t="Include">
<e p="AdditionalData.cs" t="Include" />
<e p="Flow.cs" t="Include" />
<e p="Prepared" t="Include">
<e p="PreparedPayments.cs" t="Include" />

View File

@ -14,13 +14,20 @@
</component>
<component name="ChangeListManager">
<list default="true" id="2c3b0650-5589-43d4-b4b7-2979612bb30f" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/CheckTools.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Validation.cs" afterDir="false" />
<change afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/AdditionalData.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/contentModel.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/contentModel.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Dockerfile" beforeDir="false" afterPath="$PROJECT_DIR$/Dockerfile" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/GPS_GrColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/GPS_GrColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/InterestColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/InterestColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/KaskoNmperGrColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumRepaymentColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumRepaymentColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumWithVATColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumWithVATColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TLM_GrColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TLM_GrColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/VATColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/VATColumn.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs" afterDir="false" />
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
@ -33,41 +40,44 @@
</component>
<component name="HighlightingSettingsPerFile">
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/69/Convert.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="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://$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/EvoCalculator.Core/EvoCalculator.Core/Controllers/v1/CalculationController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/168/Future.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/BaseColumnWithXIRR.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/F680C866-D120-4163-9634-EBD842255BE9/F3/ActionMethodExecutor.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Post/NPVNI.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP_Year_PR.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/F680C866-D120-4163-9634-EBD842255BE9/194/ObjectMethodExecutor.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/BaseColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP_Year.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core/Controllers/v1/CalculationController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/CashflowColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/ab/bb64e6c9/Predicate`1.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.FinanceFormulas/XIRR.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/DecompilerCache/decompiler/E2E1F770-6781-48FC-97C9-82BA075D5898/af/6846d1ce/GoalSeek.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/3DC/List.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="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:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core/Controllers/v1/CalculationController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PostValues.cs" root0="FORCE_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock:///Dummy.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="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:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core/Controllers/v1/CalculationController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/AD61CA47-F8B7-4CC6-93A0-BA44CC73B5C7/262/AsyncValueTaskMethodBuilder.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core/Controllers/v1/CalculationController.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="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:///Dummy.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/1E91381A-E6FB-483F-B621-BC63C0219EA8/11/HttpResponseWritingExtensions.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" root0="SKIP_HIGHLIGHTING" />
<setting file="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP.cs" root0="FORCE_HIGHLIGHTING" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumTest.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Controller/CalculationControllerV1Tests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DirectorBonusSumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/ExtraBonusSumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVBonusExpensesColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/AcceptSumTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowLeasingTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowMSFOTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowNPV.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/CashflowTests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/DirectorBonusSum.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/ExtraBonusSum.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/NPVBonusExpensesTests.cs" />
@ -84,15 +94,12 @@
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP_Year_PR.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/PriceUP_Year_PR_Tests.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/NPVNI.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/NPVNI.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/BonusResult.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/BonusResult.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PostValues.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/Test.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedPayments.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Request/RequestCalculation.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TaxColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinalColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinalColumn.cs" />
@ -100,15 +107,28 @@
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinal2Column.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Startup.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Program.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/VATColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Prepared/PreparedValues.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Validation.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/BaseColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/DateColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumRepaymentColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/CheckTools.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowLeasingColumn.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/InterestColumn.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/Controllers/v1/CalculationController.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/AdditionalData.cs" />
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOColumn.cs" />
</list>
</option>
</component>
@ -219,7 +239,7 @@
<workItem from="1605700922034" duration="8090000" />
<workItem from="1605776517986" duration="1856000" />
<workItem from="1605809287754" duration="7800000" />
<workItem from="1606059028039" duration="8741000" />
<workItem from="1606059028039" duration="12729000" />
</task>
<task id="LOCAL-00001" summary="rename: flow">
<created>1602593830686</created>
@ -291,7 +311,21 @@
<option name="project" value="LOCAL" />
<updated>1605810502844</updated>
</task>
<option name="localTasksCounter" value="11" />
<task id="LOCAL-00011" summary="add validation &amp; postcheck">
<created>1606071326642</created>
<option name="number" value="00011" />
<option name="presentableId" value="LOCAL-00011" />
<option name="project" value="LOCAL" />
<updated>1606071326642</updated>
</task>
<task id="LOCAL-00012" summary="add check for zero value in columns">
<created>1606071900277</created>
<option name="number" value="00012" />
<option name="presentableId" value="LOCAL-00012" />
<option name="project" value="LOCAL" />
<updated>1606071900277</updated>
</task>
<option name="localTasksCounter" value="13" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@ -324,7 +358,9 @@
<MESSAGE value="add postValues" />
<MESSAGE value="fix error when nmper greater than nmperDeprecation" />
<MESSAGE value="fix kaskoNmperGrColumn | dateTempColumn" />
<option name="LAST_COMMIT_MESSAGE" value="fix kaskoNmperGrColumn | dateTempColumn" />
<MESSAGE value="add validation &amp; postcheck" />
<MESSAGE value="add check for zero value in columns" />
<option name="LAST_COMMIT_MESSAGE" value="add check for zero value in columns" />
</component>
<component name="WindowStateProjectService">
<state x="1077" y="489" key="#Web_Browsers" timestamp="1602508282238">
@ -343,131 +379,131 @@
<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="1606070751498">
<state width="1180" height="650" key="DebuggerActiveHint" timestamp="1606074926001">
<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="1606070751498" />
<state width="2517" height="173" key="GridCell.Tab.0.bottom" timestamp="1606070714519">
<state width="1180" height="650" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074926001" />
<state width="2517" height="173" key="GridCell.Tab.0.bottom" timestamp="1606074952369">
<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="173" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606070714519" />
<state width="2517" height="173" key="GridCell.Tab.0.center" timestamp="1606070714519">
<state width="2517" height="173" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952369" />
<state width="2517" height="173" key="GridCell.Tab.0.center" timestamp="1606074952369">
<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="173" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606070714519" />
<state width="2517" height="173" key="GridCell.Tab.0.left" timestamp="1606070714519">
<state width="2517" height="173" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952369" />
<state width="2517" height="173" key="GridCell.Tab.0.left" timestamp="1606074952369">
<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="173" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606070714519" />
<state width="2517" height="173" key="GridCell.Tab.0.right" timestamp="1606070714519">
<state width="2517" height="173" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952369" />
<state width="2517" height="173" key="GridCell.Tab.0.right" timestamp="1606074952369">
<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="173" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606070714519" />
<state width="2517" height="173" key="GridCell.Tab.1.bottom" timestamp="1606070722020">
<state width="2517" height="173" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952369" />
<state width="2517" height="173" key="GridCell.Tab.1.bottom" timestamp="1606074952369">
<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="1606070722020" />
<state width="2517" height="173" key="GridCell.Tab.1.center" timestamp="1606070722020">
<state width="2517" height="173" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952369" />
<state width="2517" height="173" key="GridCell.Tab.1.center" timestamp="1606074952369">
<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="1606070722020" />
<state width="2517" height="173" key="GridCell.Tab.1.left" timestamp="1606070722020">
<state width="2517" height="173" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952369" />
<state width="2517" height="173" key="GridCell.Tab.1.left" timestamp="1606074952369">
<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="1606070722020" />
<state width="2517" height="173" key="GridCell.Tab.1.right" timestamp="1606070722020">
<state width="2517" height="173" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952369" />
<state width="2517" height="173" key="GridCell.Tab.1.right" timestamp="1606074952369">
<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="1606070722020" />
<state width="2517" height="173" key="GridCell.Tab.2.bottom" timestamp="1606070714388">
<state width="2517" height="173" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952369" />
<state width="2517" height="173" key="GridCell.Tab.2.bottom" timestamp="1606074952370">
<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="1606070714388" />
<state width="2517" height="173" key="GridCell.Tab.2.center" timestamp="1606070714388">
<state width="2517" height="173" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952370" />
<state width="2517" height="173" key="GridCell.Tab.2.center" timestamp="1606074952369">
<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="1606070714388" />
<state width="2517" height="173" key="GridCell.Tab.2.left" timestamp="1606070714387">
<state width="2517" height="173" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952369" />
<state width="2517" height="173" key="GridCell.Tab.2.left" timestamp="1606074952369">
<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="1606070714387" />
<state width="2517" height="173" key="GridCell.Tab.2.right" timestamp="1606070714388">
<state width="2517" height="173" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952369" />
<state width="2517" height="173" key="GridCell.Tab.2.right" timestamp="1606074952369">
<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="1606070714388" />
<state width="2517" height="173" key="GridCell.Tab.3.bottom" timestamp="1606070714388">
<state width="2517" height="173" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952369" />
<state width="2517" height="173" key="GridCell.Tab.3.bottom" timestamp="1606074952370">
<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="1606070714388" />
<state width="2517" height="173" key="GridCell.Tab.3.center" timestamp="1606070714388">
<state width="2517" height="173" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952370" />
<state width="2517" height="173" key="GridCell.Tab.3.center" timestamp="1606074952370">
<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="1606070714388" />
<state width="2517" height="173" key="GridCell.Tab.3.left" timestamp="1606070714388">
<state width="2517" height="173" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952370" />
<state width="2517" height="173" key="GridCell.Tab.3.left" timestamp="1606074952370">
<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="1606070714388" />
<state width="2517" height="173" key="GridCell.Tab.3.right" timestamp="1606070714388">
<state width="2517" height="173" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952370" />
<state width="2517" height="173" key="GridCell.Tab.3.right" timestamp="1606074952370">
<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="1606070714388" />
<state width="2517" height="173" key="GridCell.Tab.4.bottom" timestamp="1606070714388">
<state width="2517" height="173" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952370" />
<state width="2517" height="173" key="GridCell.Tab.4.bottom" timestamp="1606074952370">
<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="1606070714388" />
<state width="2517" height="173" key="GridCell.Tab.4.center" timestamp="1606070714388">
<state width="2517" height="173" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952370" />
<state width="2517" height="173" key="GridCell.Tab.4.center" timestamp="1606074952370">
<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="1606070714388" />
<state width="2517" height="173" key="GridCell.Tab.4.left" timestamp="1606070714388">
<state width="2517" height="173" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952370" />
<state width="2517" height="173" key="GridCell.Tab.4.left" timestamp="1606074952370">
<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="1606070714388" />
<state width="2517" height="173" key="GridCell.Tab.4.right" timestamp="1606070714388">
<state width="2517" height="173" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952370" />
<state width="2517" height="173" key="GridCell.Tab.4.right" timestamp="1606074952370">
<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="1606070714388" />
<state width="2517" height="173" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606074952370" />
<state x="872" y="432" key="Rider.ProjectTemplateDialog.Size" timestamp="1602854431119">
<screen x="0" y="0" width="2560" height="1400" />
</state>
@ -476,10 +512,10 @@
<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="1606062331179">
<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="1606062331179" />
<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>
@ -489,15 +525,15 @@
<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="1606064680864">
<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="1606064680864" />
<state x="872" y="433" key="Vcs.Push.Dialog.v2" timestamp="1605810504729">
<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="1606071901533">
<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="1605810504729" />
<state x="872" y="433" key="Vcs.Push.Dialog.v2/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606071901533" />
<state width="1288" height="708" key="XDebugger.FullValuePopup" timestamp="1606066433182">
<screen x="0" y="0" width="2560" height="1400" />
</state>
@ -514,11 +550,11 @@
<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="759" y="244" width="1137" height="959" key="find.popup" timestamp="1605815140721">
<screen x="0" y="0" width="2560" height="1400" />
<state x="2834" y="51" width="1137" height="959" key="find.popup" timestamp="1606073536980">
<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="759" y="244" width="1137" height="959" key="find.popup/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605815140721" />
<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="1606073536980" />
<state x="936" y="330" key="run.anything.popup" timestamp="1603290743275">
<screen x="0" y="0" width="2560" height="1400" />
</state>
@ -532,17 +568,17 @@
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="DotNet Breakpoints">
<url>file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs</url>
<line>64</line>
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core.Calculation\Columns\SumColumn.cs" initialLine="64">
<url>file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowMSFOColumn.cs</url>
<line>13</line>
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core.Calculation\Columns\CashflowMSFOColumn.cs" initialLine="13">
<startOffsets>
<option value="2362" />
<option value="441" />
</startOffsets>
<endOffsets>
<option value="2420" />
<option value="442" />
</endOffsets>
</properties>
<option name="timeStamp" value="25" />
<option name="timeStamp" value="30" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>

View File

@ -1,4 +1,6 @@
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using System;
using EvoCalculator.Core.Models.Calculation.Models;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
namespace EvoCalculator.Core.Calculation.Columns
{
@ -8,6 +10,26 @@ namespace EvoCalculator.Core.Calculation.Columns
{
}
public void PostCheck(AdditionalData additionalData)
{
if (additionalData != null)
{
if (additionalData.MinCashflowMSFONominal != null)
if (Nominal < additionalData.MinCashflowMSFONominal / 100)
{
throw new Exception(
$"Невозможно осуществить расчет графика, при заданных параметрах IRR {Math.Round(Nominal * 100, 2)} меньше мин. IRR по данному продукту: {additionalData.MaxCashflowMSFONominal}");
}
if (additionalData.MaxCashflowMSFONominal != null)
if (Nominal >= additionalData.MaxCashflowMSFONominal / 100)
{
throw new Exception(
$"Невозможно осуществить расчет графика, при заданных параметрах IRR {Math.Round(Nominal * 100, 2)} больше макс. IRR по данному продукту: {additionalData.MaxCashflowMSFONominal}");
}
}
}
public void ComputeValues(PreparedValues preparedValues, SumColumn sumColumn,
NegativeCashflowColumn negativeCashflowColumn,
NSIBBruttoGrColumn nsibBruttoGrColumn, TLM_GrColumn tlmGrColumn, GPS_GrColumn gpsGrColumn,

View File

@ -8,7 +8,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
}
private void PostCheck()
public void PostCheck()
{
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
}
@ -18,8 +18,6 @@ namespace EvoCalculator.Core.Calculation.Columns
for (var i = 1; i < Values.Length; i++) Values[i] = preparedPayments.Rows[i - 1].GpsCostPayment;
Values[0] = -XNPV;
PostCheck();
}
}
}

View File

@ -1,4 +1,7 @@
namespace EvoCalculator.Core.Calculation.Columns
using System;
using System.Linq;
namespace EvoCalculator.Core.Calculation.Columns
{
public class InterestColumn : BaseColumn<decimal>
{
@ -6,6 +9,17 @@
{
}
public void PostCheck(SumColumn sumColumn)
{
for (var i = 0; i < Values.Skip(1).ToList().Count; i++)
if (Values[i] > sumColumn.Values[i])
{
throw new Exception(
"Невозможно осуществить расчет графика, при заданных параметрах получается низкий лизинговый платеж");
}
}
public void ComputeValues(IRRGrColumn irrGrColumn, NIColumn niColumn)
{
for (var i = 2; i < Values.Length; i++)

View File

@ -9,7 +9,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
}
private void PostCheck()
public void PostCheck()
{
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
}
@ -34,8 +34,6 @@ namespace EvoCalculator.Core.Calculation.Columns
Values[0] = -XNPV;
PostCheck();
}
}
}

View File

@ -37,7 +37,7 @@ namespace EvoCalculator.Core.Calculation.Columns
Values[^1] = _preparedValues.LastPaymentSum;
}
private void PostCheck()
public void PostCheck()
{
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
@ -62,8 +62,6 @@ namespace EvoCalculator.Core.Calculation.Columns
// , focusPercentage: 100
// , trimFinalInputValue: true
));
PostCheck();
}
}
}

View File

@ -8,7 +8,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
}
private void PostCheck()
public void PostCheck()
{
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
}
@ -22,8 +22,6 @@ namespace EvoCalculator.Core.Calculation.Columns
sumCurrentTlmColumn.Values[i] * (1 + (decimal) calculation.VatValue) -
sumCurrentInterestColumn.Values[i] * (1 + (decimal) calculation.VatValue) *
(decimal) preparedValues.Repayment;
PostCheck();
}
}
}

View File

@ -8,7 +8,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
}
private void PostCheck()
public void PostCheck()
{
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
}
@ -23,8 +23,6 @@ namespace EvoCalculator.Core.Calculation.Columns
Values[i] = (decimal) (1 + constants.VatValue) * sumColumn.Values[i];
Values[0] = Sum;
PostCheck();
}
}
}

View File

@ -8,7 +8,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
}
private void PostCheck()
public void PostCheck()
{
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
}
@ -18,8 +18,6 @@ namespace EvoCalculator.Core.Calculation.Columns
for (var i = 1; i < Values.Length; i++) Values[i] = preparedPayments.Rows[i - 1].TlmCostPayment;
Values[0] = -XNPV;
PostCheck();
}
}
}

View File

@ -8,7 +8,7 @@ namespace EvoCalculator.Core.Calculation.Columns
{
}
private void PostCheck()
public void PostCheck()
{
new CheckTools<decimal>().CheckColumnForZeroValue(Values);
}
@ -22,8 +22,6 @@ namespace EvoCalculator.Core.Calculation.Columns
for (var i = 2; i < Values.Length; i++) Values[i] = (decimal) constants.VatValue * sumColumn.Values[i];
Values[0] = Sum;
PostCheck();
}
}
}

View File

@ -0,0 +1,8 @@
namespace EvoCalculator.Core.Models.Calculation.Models
{
public class AdditionalData
{
public double? MinCashflowMSFONominal { get; set; }
public double? MaxCashflowMSFONominal { get; set; }
}
}

View File

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

View File

@ -26,6 +26,7 @@ namespace EvoCalculator.Core.Controllers.V1
{
var preparedValues = requestCalculation.preparedValues;
var preparedPayments = requestCalculation.preparedPayments;
var additionalData = requestCalculation.additionalData;
var validationErrors = new Validation().ValidatePreparedData(requestCalculation);
@ -60,15 +61,18 @@ namespace EvoCalculator.Core.Controllers.V1
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();
postValues.BaseCost.ComputeValue(preparedValues, kaskoNmperGrColumn, tlmGrColumn, gpsGrColumn);
@ -78,12 +82,15 @@ namespace EvoCalculator.Core.Controllers.V1
, preparedValues
, percentPaymentColumn, postValues);
sumColumn.ComputeValues(Convert.ToDecimal(preparedValues.IrrExpected));
sumColumn.PostCheck();
var vatColumn = new VATColumn(preparedValues.Nmper + 1);
vatColumn.ComputeValues(new Constants.Calculation(), sumColumn, preparedValues);
vatColumn.PostCheck();
var sumWithVatColumn = new SumWithVATColumn(preparedValues.Nmper + 1);
sumWithVatColumn.ComputeValues(new Constants.Calculation(), sumColumn, preparedValues);
sumWithVatColumn.PostCheck();
var acceptSumColumn = new AcceptSumColumn(preparedValues.Nmper + 1);
acceptSumColumn.ComputeValues(preparedValues, sumColumn, vatColumn, sumWithVatColumn);
@ -169,6 +176,7 @@ namespace EvoCalculator.Core.Controllers.V1
var cashflowMsfoColumn = new CashflowMSFOColumn(preparedValues.Nmper + 1, dateTempColumn);
cashflowMsfoColumn.ComputeValues(preparedValues, sumColumn, negativeCashflowColumn, nsibBruttoGrColumn,
tlmGrColumn, gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn);
cashflowMsfoColumn.PostCheck(additionalData);
var cashflowNpvColumn = new CashflowNPVColumn(preparedValues.NmperDeprecation + 2);
cashflowNpvColumn.ComputeValues(preparedValues, sumColumn, npvBonusExpensesColumn,
@ -190,6 +198,7 @@ namespace EvoCalculator.Core.Controllers.V1
var interestColumn = new InterestColumn(preparedValues.Nmper + 1);
interestColumn.ComputeValues(irrGrColumn, niColumn);
interestColumn.PostCheck(sumColumn);
var cashflowNsibColumn = new CashflowNSIBColumn(preparedValues.Nmper + 1, dateTempColumn,
nsibBruttoGrColumn, nsibExpensesColumn);
@ -215,6 +224,7 @@ namespace EvoCalculator.Core.Controllers.V1
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);