diff --git a/src/client/stores/CalculationStore/Effects/actions/calculate/validate.ts b/src/client/stores/CalculationStore/Effects/actions/calculate/validate.ts index 452204f..e51fc88 100644 --- a/src/client/stores/CalculationStore/Effects/actions/calculate/validate.ts +++ b/src/client/stores/CalculationStore/Effects/actions/calculate/validate.ts @@ -58,6 +58,13 @@ const validateElement = (elementName, condition) => { }; const validateElements = () => { + if ( + Object.keys(CalculationStore.validations).some( + x => CalculationStore.validations[x] === false, + ) + ) { + return; + } Object.keys(elementsValidations).forEach(elementName => { validateElement( elementName, @@ -105,7 +112,8 @@ const validatePaymentsTable = () => { x => x.paymentRelation?.value, ); const rows = CalculationStore.tables.tablePayments.rows; - const isValidRows = !rows.some(x => x.paymentRelation?.validation === false); + const isValidRows = () => + !rows.some(x => x.paymentRelation?.validation === false); switch (graphType) { case 100000001: { @@ -125,7 +133,7 @@ const validatePaymentsTable = () => { ); } - if (isValidRows) { + if (isValidRows()) { const target_payments = payments.slice(1, 4); const min = Math.min.apply(Math, target_payments); const max = Math.max.apply(Math, target_payments); @@ -143,7 +151,7 @@ const validatePaymentsTable = () => { ); } - if (isValidRows) { + if (isValidRows()) { const target_payments = payments.slice(1, payments.length - 1); let pairs_number = 0; new Set(target_payments).forEach(set_v => { @@ -170,10 +178,10 @@ const validatePaymentsTable = () => { ); } - if (isValidRows) { - rows.forEach((x, i) => { - if (i > 0 && i < rows.length) { - const isInvalidValue = x > rows[i - 1] || x < 3; + if (isValidRows()) { + payments.forEach((x, i) => { + if (i > 1 && i < rows.length - 1) { + const isInvalidValue = x > payments[i - 1] || x < 3; CalculationStore.setTableRow( 'tablePayments', i, @@ -251,7 +259,7 @@ const validatePaymentsTable = () => { })), ); - if (isValidRows) { + if (isValidRows()) { const areCorrect3MiddleRows = isEqual( targetRows.slice(0).sort((a, b) => a - b), targetRows,