add validation & postcheck
This commit is contained in:
parent
646b17a1a5
commit
819da95e70
@ -38,6 +38,7 @@
|
||||
</e>
|
||||
<e p="EvoCalculator.Core.Calculation" t="IncludeRecursive">
|
||||
<e p="bin" t="ExcludeRecursive" />
|
||||
<e p="CheckTools.cs" t="Include" />
|
||||
<e p="Columns" t="Include">
|
||||
<e p="AcceptInsuranceColumn.cs" t="Include" />
|
||||
<e p="AcceptKaskoColumn.cs" t="Include" />
|
||||
@ -121,6 +122,7 @@
|
||||
<e p="PriceUP_Year.cs" t="Include" />
|
||||
<e p="PriceUP_Year_PR.cs" t="Include" />
|
||||
</e>
|
||||
<e p="Validation.cs" t="Include" />
|
||||
</e>
|
||||
<e p="EvoCalculator.Core.Constants" t="IncludeRecursive">
|
||||
<e p="bin" t="ExcludeRecursive" />
|
||||
|
||||
195
.idea/.idea.EvoCalculator.Core/.idea/workspace.xml
generated
195
.idea/.idea.EvoCalculator.Core/.idea/workspace.xml
generated
@ -14,18 +14,14 @@
|
||||
</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 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/CashflowNPVColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVColumn.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinal2Column.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinal2Column.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinalColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinalColumn.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVColumn.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinal2Column.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinal2Column.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinalColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinalColumn.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TaxColumn.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/TaxColumn.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/Controllers/v1/CalculationController.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EvoCalculator.Core/Startup.cs" beforeDir="false" afterPath="$PROJECT_DIR$/EvoCalculator.Core/Startup.cs" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@ -36,29 +32,32 @@
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
</component>
|
||||
<component name="HighlightingSettingsPerFile">
|
||||
<setting file="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/TaxColumn.cs" root0="SKIP_HIGHLIGHTING" />
|
||||
<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:///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="file://$PROJECT_DIR$/EvoCalculator.Core.Calculation/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="mock://C:/Users/Chika/Projects/EvoCalculator.Core/EvoCalculator.Core.Calculation/Columns/TaxColumn.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/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="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:///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.Models/Calculation/Models/Prepared/PostValues.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Post/PostValuess.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/BaseCost.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/BonusBase.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Models/Calculation/Models/Post/PostValues.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/BasePostValue.cs" />
|
||||
<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" />
|
||||
@ -75,7 +74,6 @@
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/SumWithVatTests.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/TaxColumnTests.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Columns/VATColumnTests.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/SumColumn.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Tests/Calculation/Post/PriceUp.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Post/PriceUP_PR.cs" />
|
||||
@ -91,7 +89,6 @@
|
||||
<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/PreparedValues.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" />
|
||||
@ -102,8 +99,16 @@
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/CashflowNPVFinal2Column.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.Calculation/Columns/NPVFinal2Column.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core/Startup.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core/Program.cs" />
|
||||
<option value="$PROJECT_DIR$/EvoCalculator.Core.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" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@ -211,7 +216,10 @@
|
||||
<workItem from="1605168996296" duration="78000" />
|
||||
<workItem from="1605195180317" duration="3232000" />
|
||||
<workItem from="1605201387598" duration="7501000" />
|
||||
<workItem from="1605700922034" duration="6844000" />
|
||||
<workItem from="1605700922034" duration="8090000" />
|
||||
<workItem from="1605776517986" duration="1856000" />
|
||||
<workItem from="1605809287754" duration="7800000" />
|
||||
<workItem from="1606059028039" duration="8741000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="rename: flow">
|
||||
<created>1602593830686</created>
|
||||
@ -269,7 +277,21 @@
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1603890043823</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="9" />
|
||||
<task id="LOCAL-00009" summary="fix error when nmper greater than nmperDeprecation">
|
||||
<created>1605710694822</created>
|
||||
<option name="number" value="00009" />
|
||||
<option name="presentableId" value="LOCAL-00009" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1605710694822</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00010" summary="fix kaskoNmperGrColumn | dateTempColumn">
|
||||
<created>1605810502844</created>
|
||||
<option name="number" value="00010" />
|
||||
<option name="presentableId" value="LOCAL-00010" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1605810502844</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="11" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
@ -300,7 +322,9 @@
|
||||
<MESSAGE value="new column type | new columns" />
|
||||
<MESSAGE value="last columns(!!!)" />
|
||||
<MESSAGE value="add postValues" />
|
||||
<option name="LAST_COMMIT_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" />
|
||||
</component>
|
||||
<component name="WindowStateProjectService">
|
||||
<state x="1077" y="489" key="#Web_Browsers" timestamp="1602508282238">
|
||||
@ -319,131 +343,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="1645" height="702" key="DebuggerActiveHint" timestamp="1605710440683">
|
||||
<state width="1180" height="650" key="DebuggerActiveHint" timestamp="1606070751498">
|
||||
<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="1645" height="702" key="DebuggerActiveHint/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710440683" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.0.bottom" timestamp="1605710425560">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.0.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425560" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.0.center" timestamp="1605710425559">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.0.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425559" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.0.left" timestamp="1605710425559">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.0.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425559" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.0.right" timestamp="1605710425560">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.0.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425560" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.1.bottom" timestamp="1605710432197">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.1.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710432197" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.1.center" timestamp="1605710432197">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.1.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710432197" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.1.left" timestamp="1605710432197">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.1.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710432197" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.1.right" timestamp="1605710432197">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.1.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710432197" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.2.bottom" timestamp="1605710425112">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.2.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425112" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.2.center" timestamp="1605710425112">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.2.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425112" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.2.left" timestamp="1605710425112">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.2.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425112" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.2.right" timestamp="1605710425112">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.2.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425112" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.3.bottom" timestamp="1605710425113">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.3.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425113" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.3.center" timestamp="1605710425112">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.3.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425112" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.3.left" timestamp="1605710425112">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.3.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425112" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.3.right" timestamp="1605710425113">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.3.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425113" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.4.bottom" timestamp="1605710425113">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.4.bottom/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425113" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.4.center" timestamp="1605710425113">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.4.center/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425113" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.4.left" timestamp="1605710425113">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.4.left/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425113" />
|
||||
<state width="2517" height="316" key="GridCell.Tab.4.right" timestamp="1605710425113">
|
||||
<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">
|
||||
<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="316" key="GridCell.Tab.4.right/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1605710425113" />
|
||||
<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 x="872" y="432" key="Rider.ProjectTemplateDialog.Size" timestamp="1602854431119">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
@ -452,10 +476,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="1603882876984">
|
||||
<state x="1078" y="410" key="RollbackChangesDialog" timestamp="1606062331179">
|
||||
<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="1603882876984" />
|
||||
<state x="1078" y="410" key="RollbackChangesDialog/0.0.2560.1400/2560.0.1920.1040@0.0.2560.1400" timestamp="1606062331179" />
|
||||
<state x="-3228" y="-780" width="1537" height="899" key="SettingsEditor" timestamp="1605169070638">
|
||||
<screen x="-3840" y="-1059" width="3072" height="1688" />
|
||||
</state>
|
||||
@ -465,15 +489,19 @@
|
||||
<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="-3730" y="-948" width="2852" height="1467" key="VCS.FileHistoryDialog" timestamp="1605207856924">
|
||||
<screen x="-3840" y="-1059" width="3072" height="1688" />
|
||||
</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="1603709850962" />
|
||||
<state x="872" y="433" key="Vcs.Push.Dialog.v2" timestamp="1603890047888">
|
||||
<state x="92" y="92" width="2376" height="1216" key="VCS.FileHistoryDialog" timestamp="1606064680864">
|
||||
<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="1603890047888" />
|
||||
<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">
|
||||
<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 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>
|
||||
@ -486,11 +514,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="1605710500054">
|
||||
<state x="759" y="244" width="1137" height="959" key="find.popup" timestamp="1605815140721">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</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="1605710500054" />
|
||||
<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="936" y="330" key="run.anything.popup" timestamp="1603290743275">
|
||||
<screen x="0" y="0" width="2560" height="1400" />
|
||||
</state>
|
||||
@ -504,17 +532,17 @@
|
||||
<breakpoint-manager>
|
||||
<breakpoints>
|
||||
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
||||
<url>file://$PROJECT_DIR$/EvoCalculator.Core/Controllers/v1/CalculationController.cs</url>
|
||||
<line>222</line>
|
||||
<properties documentPath="C:\Users\Chika\Projects\EvoCalculator.Core\EvoCalculator.Core\Controllers\v1\CalculationController.cs" initialLine="222">
|
||||
<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">
|
||||
<startOffsets>
|
||||
<option value="12348" />
|
||||
<option value="2362" />
|
||||
</startOffsets>
|
||||
<endOffsets>
|
||||
<option value="12424" />
|
||||
<option value="2420" />
|
||||
</endOffsets>
|
||||
</properties>
|
||||
<option name="timeStamp" value="28" />
|
||||
<option name="timeStamp" value="25" />
|
||||
</line-breakpoint>
|
||||
</breakpoints>
|
||||
</breakpoint-manager>
|
||||
@ -533,6 +561,11 @@
|
||||
</pinned-members>
|
||||
</pin-to-top-manager>
|
||||
<watches-manager>
|
||||
<configuration name="LaunchSettings">
|
||||
<watch expression="(_postValues.BaseCost.Value - _preparedValues.FirstPaymentSum)/ _preparedValues.Nmper" language="C#" />
|
||||
<watch expression="_percentPaymentColumn.Values.Where(x => x != 0).Min()" />
|
||||
<watch expression="Convert.ToDecimal( (_postValues.BaseCost.Value - _preparedValues.FirstPaymentSum) / _preparedValues.Nmper) * (decimal) _percentPaymentColumn.Values.Where(x => x != 0).Min()" language="C#" />
|
||||
</configuration>
|
||||
<configuration name="RiderUnitTests">
|
||||
<watch expression="Convert.ToDecimal( (this._preparedValues.BaseCost - this._preparedValues.FirstPaymentSum) / this._preparedValues.Nmper)" />
|
||||
<watch expression="tlmGrColumn.Values.Skip(i).Sum(x => x)" />
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using EvoCalculator.Core.Calculation.Post;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||
using TridentGoalSeek;
|
||||
@ -36,6 +37,15 @@ namespace EvoCalculator.Core.Calculation.Columns
|
||||
Values[^1] = _preparedValues.LastPaymentSum;
|
||||
}
|
||||
|
||||
private void PostCheck()
|
||||
{
|
||||
if (Values[1] / Values.Skip(1).Sum() >= 0.5m)
|
||||
{
|
||||
throw new Exception(
|
||||
"Первый платеж по графику более 50% от суммы лизинговых платежей. Необходимо уменьшить первый платеж");
|
||||
}
|
||||
}
|
||||
|
||||
public override void ComputeValues(decimal requiredValue)
|
||||
{
|
||||
var goalSeek = new GoalSeek(this);
|
||||
@ -50,6 +60,8 @@ namespace EvoCalculator.Core.Calculation.Columns
|
||||
// , focusPercentage: 100
|
||||
// , trimFinalInputValue: true
|
||||
));
|
||||
|
||||
PostCheck();
|
||||
}
|
||||
}
|
||||
}
|
||||
45
EvoCalculator.Core.Calculation/Validation.cs
Normal file
45
EvoCalculator.Core.Calculation/Validation.cs
Normal file
@ -0,0 +1,45 @@
|
||||
using System.Collections.Generic;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Request;
|
||||
|
||||
namespace EvoCalculator.Core.Calculation
|
||||
{
|
||||
public class Validation
|
||||
{
|
||||
public object ValidatePreparedData(RequestCalculation requestCalculation)
|
||||
{
|
||||
var preparedValues = requestCalculation.preparedValues;
|
||||
|
||||
var errors = new List<string>();
|
||||
|
||||
if (preparedValues.AcceptSum <= 0)
|
||||
{
|
||||
errors.Add("Стоимость ПЛ с учетом скидки не указана или меньше или равна 0");
|
||||
}
|
||||
|
||||
if (preparedValues.Nmper <= 0)
|
||||
{
|
||||
errors.Add("Некорректно указан Срок лизинга");
|
||||
}
|
||||
|
||||
if (preparedValues.IrrExpected <= 0 && preparedValues.Discount <= 0 && preparedValues.ComissionRub <= 0)
|
||||
{
|
||||
errors.Add(
|
||||
"Невозможно посчитать график с IRR=0, необходимо указать или Скидку поставщика или Комиссию");
|
||||
}
|
||||
|
||||
if (preparedValues.PaymentDateNew >= preparedValues.DogDate)
|
||||
{
|
||||
errors.Add(
|
||||
"Некорректно указана Дата второго платежа, она не может быть раньше Даты заключения ДЛ");
|
||||
}
|
||||
|
||||
if (errors.Count > 0)
|
||||
return new
|
||||
{
|
||||
errors
|
||||
};
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,8 +1,12 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using EvoCalculator.Core.Calculation;
|
||||
using EvoCalculator.Core.Calculation.Columns;
|
||||
using EvoCalculator.Core.Calculation.Post;
|
||||
using EvoCalculator.Core.Models.Calculation.Models.Request;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace EvoCalculator.Core.Controllers.V1
|
||||
{
|
||||
@ -18,10 +22,21 @@ namespace EvoCalculator.Core.Controllers.V1
|
||||
}
|
||||
|
||||
[HttpPost("[action]")]
|
||||
public ActionResult<object> Calculate([FromBody] RequestCalculation requestCalculation)
|
||||
public async Task Calculate([FromBody] RequestCalculation requestCalculation)
|
||||
{
|
||||
var preparedValues = requestCalculation.preparedValues;
|
||||
var preparedPayments = requestCalculation.preparedPayments;
|
||||
|
||||
|
||||
var validationErrors = new Validation().ValidatePreparedData(requestCalculation);
|
||||
if (validationErrors != null)
|
||||
{
|
||||
Response.StatusCode = 500;
|
||||
await Response.WriteAsync(JsonConvert.SerializeObject(validationErrors,
|
||||
new JsonSerializerSettings {Formatting = Formatting.Indented}));
|
||||
return;
|
||||
}
|
||||
|
||||
var constants = new Constants.Calculation();
|
||||
|
||||
var postValues = new PostValues();
|
||||
@ -31,264 +46,287 @@ namespace EvoCalculator.Core.Controllers.V1
|
||||
? preparedValues.Nmper + 1
|
||||
: preparedValues.NmperDeprecation + 2;
|
||||
|
||||
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);
|
||||
|
||||
var tlmGrColumn = new TLM_GrColumn(preparedPayments.Rows.Length + 1, dateTempColumn,
|
||||
preparedValues.IrrExpected);
|
||||
tlmGrColumn.ComputeValues(preparedPayments, preparedValues);
|
||||
|
||||
|
||||
var gpsGrColumn = new GPS_GrColumn(preparedPayments.Rows.Length + 1, dateTempColumn,
|
||||
preparedValues.IrrExpected);
|
||||
gpsGrColumn.ComputeValues(preparedPayments, preparedValues);
|
||||
|
||||
postValues.BaseCost.ComputeValue(preparedValues, kaskoNmperGrColumn, tlmGrColumn, gpsGrColumn);
|
||||
|
||||
var sumColumn = new SumColumn(
|
||||
preparedValues.Nmper + 1
|
||||
, dateTempColumn
|
||||
, preparedValues
|
||||
, percentPaymentColumn, postValues);
|
||||
sumColumn.ComputeValues(Convert.ToDecimal(preparedValues.IrrExpected));
|
||||
|
||||
var vatColumn = new VATColumn(preparedValues.Nmper + 1);
|
||||
vatColumn.ComputeValues(new Constants.Calculation(), sumColumn, preparedValues);
|
||||
|
||||
var sumWithVatColumn = new SumWithVATColumn(preparedValues.Nmper + 1);
|
||||
sumWithVatColumn.ComputeValues(new Constants.Calculation(), sumColumn, preparedValues);
|
||||
|
||||
var acceptSumColumn = new AcceptSumColumn(preparedValues.Nmper + 1);
|
||||
acceptSumColumn.ComputeValues(preparedValues, sumColumn, vatColumn, sumWithVatColumn);
|
||||
|
||||
var acceptKaskoColumn = new AcceptKaskoColumn(preparedValues.Nmper + 1);
|
||||
acceptKaskoColumn.ComputeValues(preparedValues);
|
||||
|
||||
var acceptOsagoColumn = new AcceptOsagoColumn(preparedValues.Nmper + 1);
|
||||
acceptOsagoColumn.ComputeValues(preparedValues);
|
||||
|
||||
var acceptInsuranceColumn = new AcceptInsuranceColumn(preparedValues.Nmper + 1);
|
||||
acceptInsuranceColumn.ComputeValues(acceptKaskoColumn, acceptOsagoColumn);
|
||||
|
||||
var deprecationLpColumn = new DeprecationLPColumn(preparedValues.Nmper + 1);
|
||||
deprecationLpColumn.ComputeValues(preparedValues, acceptSumColumn);
|
||||
|
||||
var deprecationLdColumn = new DeprecationLDColumn(preparedValues.NmperDeprecation + 2);
|
||||
deprecationLdColumn.ComputeValues(preparedValues);
|
||||
|
||||
var deprecationColumn = new DeprecationColumn(preparedValues.NmperDeprecation + 2);
|
||||
deprecationColumn.ComputeValues(deprecationLpColumn, deprecationLdColumn);
|
||||
|
||||
var 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);
|
||||
|
||||
var agentComissionExpensesColumn = new AgentComissionExpensesColumn(preparedValues.Nmper + 1);
|
||||
agentComissionExpensesColumn.ComputeValues(preparedValues);
|
||||
|
||||
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 negativeCashflowColumn = new NegativeCashflowColumn(preparedValues.Nmper + 1);
|
||||
negativeCashflowColumn.ComputeValues(kaskoNmperGrColumn);
|
||||
|
||||
var nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper + 1);
|
||||
nsibBruttoGrColumn.ComputeValues(preparedValues);
|
||||
|
||||
var taxColumn = new TaxColumn(preparedValues.NmperDeprecation + 2);
|
||||
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 cashflowMsfoColumn = new CashflowMSFOColumn(preparedValues.Nmper + 1, dateTempColumn);
|
||||
cashflowMsfoColumn.ComputeValues(preparedValues, sumColumn, negativeCashflowColumn, nsibBruttoGrColumn,
|
||||
tlmGrColumn, gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn);
|
||||
|
||||
var cashflowNpvColumn = new CashflowNPVColumn(preparedValues.NmperDeprecation + 2);
|
||||
cashflowNpvColumn.ComputeValues(preparedValues, sumColumn, npvBonusExpensesColumn,
|
||||
agentComissionExpensesColumn, taxColumn, nsibExpensesColumn, negativeCashflowColumn, ratExpensesColumn,
|
||||
transExprensesColumn, tlmExpensesColumn, gpsExpensesColumn);
|
||||
|
||||
var npvWeightColumn = new NPVWeightColumn(preparedValues.Nmper + 1);
|
||||
npvWeightColumn.ComputeValues(preparedValues, dateTempColumn);
|
||||
|
||||
var npvColumn = new NPVColumn(preparedValues.NmperDeprecation + 2, 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);
|
||||
|
||||
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);
|
||||
|
||||
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(preparedValues.NmperDeprecation + 2);
|
||||
cashflowNpvFinalColumn.ComputeValues(preparedValues, extraBonusSumColumn, cashflowNpvColumn);
|
||||
|
||||
var npvFinalColumn = new NPVFinalColumn(preparedValues.NmperDeprecation + 2, 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(preparedValues.NmperDeprecation + 2);
|
||||
cashflowNpvFinal2Column.ComputeValues(preparedValues, cashflowNpvFinalColumn, directorBonusSumColumn);
|
||||
|
||||
var npvFinal2Column = new NPVFinal2Column(preparedValues.NmperDeprecation + 2, 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);
|
||||
|
||||
return new
|
||||
try
|
||||
{
|
||||
postValues = postValues.GetValues(),
|
||||
columns = new
|
||||
{
|
||||
dateColumn,
|
||||
dateTempColumn,
|
||||
percentPaymentColumn,
|
||||
kaskoNmperGrColumn,
|
||||
tlmGrColumn,
|
||||
gpsGrColumn,
|
||||
sumColumn,
|
||||
vatColumn,
|
||||
sumWithVatColumn,
|
||||
acceptSumColumn,
|
||||
acceptKaskoColumn,
|
||||
acceptOsagoColumn,
|
||||
acceptInsuranceColumn,
|
||||
deprecationLpColumn,
|
||||
deprecationLdColumn,
|
||||
deprecationColumn,
|
||||
npvBonusExpensesColumn,
|
||||
kaskoBonusGrSumColumn,
|
||||
agentComissionExpensesColumn,
|
||||
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);
|
||||
|
||||
var tlmGrColumn = new TLM_GrColumn(preparedPayments.Rows.Length + 1, dateTempColumn,
|
||||
preparedValues.IrrExpected);
|
||||
tlmGrColumn.ComputeValues(preparedPayments, preparedValues);
|
||||
|
||||
|
||||
var gpsGrColumn = new GPS_GrColumn(preparedPayments.Rows.Length + 1, dateTempColumn,
|
||||
preparedValues.IrrExpected);
|
||||
gpsGrColumn.ComputeValues(preparedPayments, preparedValues);
|
||||
|
||||
postValues.BaseCost.ComputeValue(preparedValues, kaskoNmperGrColumn, tlmGrColumn, gpsGrColumn);
|
||||
|
||||
var sumColumn = new SumColumn(
|
||||
preparedValues.Nmper + 1
|
||||
, dateTempColumn
|
||||
, preparedValues
|
||||
, percentPaymentColumn, postValues);
|
||||
sumColumn.ComputeValues(Convert.ToDecimal(preparedValues.IrrExpected));
|
||||
|
||||
var vatColumn = new VATColumn(preparedValues.Nmper + 1);
|
||||
vatColumn.ComputeValues(new Constants.Calculation(), sumColumn, preparedValues);
|
||||
|
||||
var sumWithVatColumn = new SumWithVATColumn(preparedValues.Nmper + 1);
|
||||
sumWithVatColumn.ComputeValues(new Constants.Calculation(), sumColumn, preparedValues);
|
||||
|
||||
var acceptSumColumn = new AcceptSumColumn(preparedValues.Nmper + 1);
|
||||
acceptSumColumn.ComputeValues(preparedValues, sumColumn, vatColumn, sumWithVatColumn);
|
||||
|
||||
var acceptKaskoColumn = new AcceptKaskoColumn(preparedValues.Nmper + 1);
|
||||
acceptKaskoColumn.ComputeValues(preparedValues);
|
||||
|
||||
var acceptOsagoColumn = new AcceptOsagoColumn(preparedValues.Nmper + 1);
|
||||
acceptOsagoColumn.ComputeValues(preparedValues);
|
||||
|
||||
var acceptInsuranceColumn = new AcceptInsuranceColumn(preparedValues.Nmper + 1);
|
||||
acceptInsuranceColumn.ComputeValues(acceptKaskoColumn, acceptOsagoColumn);
|
||||
|
||||
var deprecationLpColumn = new DeprecationLPColumn(preparedValues.Nmper + 1);
|
||||
deprecationLpColumn.ComputeValues(preparedValues, acceptSumColumn);
|
||||
|
||||
var deprecationLdColumn = new DeprecationLDColumn(preparedValues.NmperDeprecation + 2);
|
||||
deprecationLdColumn.ComputeValues(preparedValues);
|
||||
|
||||
var deprecationColumn = new DeprecationColumn(preparedValues.NmperDeprecation + 2);
|
||||
deprecationColumn.ComputeValues(deprecationLpColumn, deprecationLdColumn);
|
||||
|
||||
var 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);
|
||||
|
||||
var agentComissionExpensesColumn = new AgentComissionExpensesColumn(preparedValues.Nmper + 1);
|
||||
agentComissionExpensesColumn.ComputeValues(preparedValues);
|
||||
|
||||
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 negativeCashflowColumn = new NegativeCashflowColumn(preparedValues.Nmper + 1);
|
||||
negativeCashflowColumn.ComputeValues(kaskoNmperGrColumn);
|
||||
|
||||
var nsibBruttoGrColumn = new NSIBBruttoGrColumn(preparedValues.Nmper + 1);
|
||||
nsibBruttoGrColumn.ComputeValues(preparedValues);
|
||||
|
||||
var taxColumn = new TaxColumn(preparedValues.NmperDeprecation + 2);
|
||||
taxColumn.ComputeValues(constants, sumColumn, acceptInsuranceColumn, deprecationColumn,
|
||||
ratExpensesColumn,
|
||||
transExprensesColumn,
|
||||
nsibExpensesColumn,
|
||||
tlmExpensesColumn,
|
||||
gpsExpensesColumn,
|
||||
registrExpensesColumn,
|
||||
insuranceBonusExpensesColumn,
|
||||
comissionBonusExpensesColumn,
|
||||
expensesColumn,
|
||||
negativeCashflowColumn,
|
||||
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,
|
||||
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
|
||||
}
|
||||
};
|
||||
tlmGrColumn, gpsGrColumn);
|
||||
|
||||
var cashflowMsfoColumn = new CashflowMSFOColumn(preparedValues.Nmper + 1, dateTempColumn);
|
||||
cashflowMsfoColumn.ComputeValues(preparedValues, sumColumn, negativeCashflowColumn, nsibBruttoGrColumn,
|
||||
tlmGrColumn, gpsGrColumn, npvBonusExpensesColumn, agentComissionExpensesColumn);
|
||||
|
||||
var cashflowNpvColumn = new CashflowNPVColumn(preparedValues.NmperDeprecation + 2);
|
||||
cashflowNpvColumn.ComputeValues(preparedValues, sumColumn, npvBonusExpensesColumn,
|
||||
agentComissionExpensesColumn, taxColumn, nsibExpensesColumn, negativeCashflowColumn,
|
||||
ratExpensesColumn,
|
||||
transExprensesColumn, tlmExpensesColumn, gpsExpensesColumn);
|
||||
|
||||
var npvWeightColumn = new NPVWeightColumn(preparedValues.Nmper + 1);
|
||||
npvWeightColumn.ComputeValues(preparedValues, dateTempColumn);
|
||||
|
||||
var npvColumn = new NPVColumn(preparedValues.NmperDeprecation + 2, 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);
|
||||
|
||||
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);
|
||||
|
||||
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(preparedValues.NmperDeprecation + 2);
|
||||
cashflowNpvFinalColumn.ComputeValues(preparedValues, extraBonusSumColumn, cashflowNpvColumn);
|
||||
|
||||
var npvFinalColumn = new NPVFinalColumn(preparedValues.NmperDeprecation + 2, 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(preparedValues.NmperDeprecation + 2);
|
||||
cashflowNpvFinal2Column.ComputeValues(preparedValues, cashflowNpvFinalColumn, directorBonusSumColumn);
|
||||
|
||||
var npvFinal2Column = new NPVFinal2Column(preparedValues.NmperDeprecation + 2, 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(),
|
||||
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
|
||||
}
|
||||
};
|
||||
|
||||
Response.ContentType = "application/json";
|
||||
await Response.WriteAsync(JsonConvert.SerializeObject(res,
|
||||
new JsonSerializerSettings {Formatting = Formatting.Indented}));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Response.StatusCode = 500;
|
||||
await Response.WriteAsync(JsonConvert.SerializeObject(new
|
||||
{
|
||||
errors = new[]
|
||||
{
|
||||
ex.Message
|
||||
}
|
||||
},
|
||||
new JsonSerializerSettings {Formatting = Formatting.Indented}));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user