From 3be343bc26571c07f98fef1cd5df5ce3fede3684 Mon Sep 17 00:00:00 2001 From: siiky Date: Thu, 19 Oct 2023 16:26:53 +0100 Subject: [PATCH] feat: re-add validation steps for recyclers --- .../src/pages/Maintenance/Wizard/Wizard.js | 38 +++++++++++++++++-- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/new-lamassu-admin/src/pages/Maintenance/Wizard/Wizard.js b/new-lamassu-admin/src/pages/Maintenance/Wizard/Wizard.js index 27dd8fb0..511e12b5 100644 --- a/new-lamassu-admin/src/pages/Maintenance/Wizard/Wizard.js +++ b/new-lamassu-admin/src/pages/Maintenance/Wizard/Wizard.js @@ -4,7 +4,11 @@ import * as Yup from 'yup' import Modal from 'src/components/Modal' import { MAX_NUMBER_OF_CASSETTES } from 'src/utils/constants' -import { getCashUnitCapacity, modelPrettifier } from 'src/utils/machine' +import { + cashUnitCapacity, + getCashUnitCapacity, + modelPrettifier +} from 'src/utils/machine' import { defaultToZero } from 'src/utils/number' import WizardSplash from './WizardSplash' @@ -27,6 +31,8 @@ const RECYCLER_FIELDS = [ 'recycler6' ] +const canManuallyLoadRecyclers = ({ model }) => ['grandola'].includes(model) + const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => { const [{ step, config }, setState] = useState({ step: 0, @@ -39,8 +45,9 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => { const numberOfCassettes = isCashOutDisabled ? 0 : machine.numberOfCassettes const numberOfRecyclers = machine.numberOfRecyclers - // const LAST_STEP = numberOfCassettes + numberOfRecyclers * 2 + 1 - const LAST_STEP = numberOfCassettes + 1 + const LAST_STEP = canManuallyLoadRecyclers(machine) + ? numberOfCassettes + numberOfRecyclers + 1 + : numberOfCassettes + 1 const title = `Update counts` const isLastStep = step === LAST_STEP @@ -120,6 +127,29 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => { })) ) + const makeRecyclerSteps = R.pipe( + R.add(1), + R.range(1), + R.chain(i => ({ + type: `recycler ${i}`, + schema: Yup.object().shape({ + [`recycler${i}`]: Yup.number() + .label('Bill count') + .positive() + .integer() + .required() + .min(0) + .max( + cashUnitCapacity[machine.model].recycler, + `${modelPrettifier[machine.model]} + maximum recycler capacity is ${ + cashUnitCapacity[machine.model].recycler + } bills` + ) + }) + })) + ) + const makeCassettesInitialValues = () => !R.isEmpty(cashoutSettings) ? R.reduce( @@ -149,7 +179,7 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => { R.merge(makeCassettesInitialValues(), makeRecyclersInitialValues()) const steps = R.pipe( - // R.concat(makeStackerSteps(numberOfStackers)), + R.concat(makeRecyclerSteps(numberOfRecyclers)), R.concat(makeCassetteSteps(numberOfCassettes)), R.concat([ {