diff --git a/src/client/Elements/InputNumber.jsx b/src/client/Elements/InputNumber.jsx index 9312e51..f3b1334 100644 --- a/src/client/Elements/InputNumber.jsx +++ b/src/client/Elements/InputNumber.jsx @@ -14,11 +14,15 @@ const InputNumber = ({ { + if (value === '') { + return 0; + } + return value.replace(/[^0-9.,]+/, ''); + }} disabled={status === ElementStatus.Disabled} style={styles} - onChange={value => { - setCurrentValue(typeof value !== 'string' ? value : 0); - }} + onChange={value => setCurrentValue(value)} value={value} /> diff --git a/src/client/stores/CalculationStore/Effects/actions/calculate/validate.ts b/src/client/stores/CalculationStore/Effects/actions/calculate/validate.ts index f575f9e..cd562dd 100644 --- a/src/client/stores/CalculationStore/Effects/actions/calculate/validate.ts +++ b/src/client/stores/CalculationStore/Effects/actions/calculate/validate.ts @@ -1,9 +1,10 @@ +import { toJS } from 'mobx'; import { elementsValues } from 'client/Containers/Calculation/lib/elements/values'; import { TElements } from 'core/types/Calculation/Store/elements'; import CalculationStore from '../../..'; const VALIDATIONS = { - IS_NULL: valueName => !CalculationStore.getValue(valueName), + IS_NULL: valueName => CalculationStore.getValue(valueName) === undefined, LESS_ZERO: valueName => CalculationStore.getValue(valueName) < 0, LESS_OR_EQUALS_ZERO: valueName => CalculationStore.getValue(valueName) <= 0, }; @@ -26,9 +27,11 @@ const elementsValidations: TElements = { selectLeaseObjectCategory: VALIDATIONS.IS_NULL, tbxLeasingPeriod: valueName => CalculationStore.getValue(valueName) < 7, tbxLeaseObjectPrice: VALIDATIONS.LESS_OR_EQUALS_ZERO, - tbxLastPaymentPerc: VALIDATIONS.LESS_OR_EQUALS_ZERO, - tbxFirstPaymentPerc: VALIDATIONS.LESS_ZERO, - tbxLeaseObjectCount: VALIDATIONS.LESS_ZERO, + tbxLastPaymentPerc: VALIDATIONS.IS_NULL, + tbxLastPaymentRub: VALIDATIONS.IS_NULL, + tbxFirstPaymentPerc: VALIDATIONS.IS_NULL, + tbxFirstPaymentRub: VALIDATIONS.IS_NULL, + tbxLeaseObjectCount: VALIDATIONS.LESS_OR_EQUALS_ZERO, }; const validateElement = (elementName, condition) => { @@ -83,6 +86,7 @@ const validateTables = () => { }; export default () => { + const v = toJS(CalculationStore.values); validateElements(); validateTables(); };