From 24d0973f12edd5ec3e8167309904918c864c68bb Mon Sep 17 00:00:00 2001 From: Rafael Taranto Date: Tue, 13 Feb 2024 21:44:49 +0000 Subject: [PATCH] fix: count updates and small ui adjustments --- lib/machine-loader.js | 2 +- new-lamassu-admin/src/pages/Cashout/helper.js | 151 ++++++++++-------- .../src/pages/Maintenance/Wizard/Wizard.js | 8 +- 3 files changed, 95 insertions(+), 66 deletions(-) diff --git a/lib/machine-loader.js b/lib/machine-loader.js index a12509bd..e106e0f9 100644 --- a/lib/machine-loader.js +++ b/lib/machine-loader.js @@ -182,7 +182,7 @@ function setCassetteBills (rec) { return getMachine(rec.deviceId) .then(machine => { const oldCashboxCount = machine?.cashUnits?.cashbox - if (_.isNil(oldCashboxCount) || cashbox === oldCashboxCount) { + if (_.isNil(oldCashboxCount) || cashbox.toString() === oldCashboxCount.toString()) { const sql = 'UPDATE devices SET cassette1=$1, cassette2=$2, cassette3=$3, cassette4=$4, recycler1=$5, recycler2=$6, recycler3=$7, recycler4=$8, recycler5=$9, recycler6=$10 WHERE device_id=$11' return db.none(sql, [cassette1, cassette2, cassette3, cassette4, recycler1, recycler2, recycler3, recycler4, recycler5, recycler6, rec.deviceId]) } diff --git a/new-lamassu-admin/src/pages/Cashout/helper.js b/new-lamassu-admin/src/pages/Cashout/helper.js index a1b386d6..8178a2f2 100644 --- a/new-lamassu-admin/src/pages/Cashout/helper.js +++ b/new-lamassu-admin/src/pages/Cashout/helper.js @@ -17,67 +17,90 @@ const widthsByNumberOfUnits = { 7: { machine: 130, cassette: 125 } } -const DenominationsSchema = Yup.object().shape({ - cassette1: Yup.number() - .label('Cassette 1') - .min(1) - .nullable() - .max(CURRENCY_MAX), - cassette2: Yup.number() - .label('Cassette 2') - .min(1) - .max(CURRENCY_MAX) - .nullable() - .transform(transformNumber), - cassette3: Yup.number() - .label('Cassette 3') - .min(1) - .max(CURRENCY_MAX) - .nullable() - .transform(transformNumber), - cassette4: Yup.number() - .label('Cassette 4') - .min(1) - .max(CURRENCY_MAX) - .nullable() - .transform(transformNumber), - recycler1: Yup.number() - .label('Recycler 1') - .min(1) - .max(CURRENCY_MAX) - .nullable() - .transform(transformNumber), - recycler2: Yup.number() - .label('Recycler 2') - .min(1) - .max(CURRENCY_MAX) - .nullable() - .transform(transformNumber), - recycler3: Yup.number() - .label('Recycler 3') - .min(1) - .max(CURRENCY_MAX) - .nullable() - .transform(transformNumber), - recycler4: Yup.number() - .label('Recycler 4') - .min(1) - .max(CURRENCY_MAX) - .nullable() - .transform(transformNumber), - recycler5: Yup.number() - .label('Recycler 5') - .min(1) - .max(CURRENCY_MAX) - .nullable() - .transform(transformNumber), - recycler6: Yup.number() - .label('Recycler 6') - .min(1) - .max(CURRENCY_MAX) - .nullable() - .transform(transformNumber) -}) +const denominationKeys = [ + 'cassette1', + 'cassette2', + 'cassette3', + 'cassette4', + 'recycler1', + 'recycler2', + 'recycler3', + 'recycler4', + 'recycler5', + 'recycler6' +] + +const DenominationsSchema = Yup.object() + .shape({ + cassette1: Yup.number() + .label('Cassette 1') + .min(1) + .nullable() + .max(CURRENCY_MAX), + cassette2: Yup.number() + .label('Cassette 2') + .min(1) + .max(CURRENCY_MAX) + .nullable() + .transform(transformNumber), + cassette3: Yup.number() + .label('Cassette 3') + .min(1) + .max(CURRENCY_MAX) + .nullable() + .transform(transformNumber), + cassette4: Yup.number() + .label('Cassette 4') + .min(1) + .max(CURRENCY_MAX) + .nullable() + .transform(transformNumber), + recycler1: Yup.number() + .label('Recycler 1') + .min(1) + .max(CURRENCY_MAX) + .nullable() + .transform(transformNumber), + recycler2: Yup.number() + .label('Recycler 2') + .min(1) + .max(CURRENCY_MAX) + .nullable() + .transform(transformNumber), + recycler3: Yup.number() + .label('Recycler 3') + .min(1) + .max(CURRENCY_MAX) + .nullable() + .transform(transformNumber), + recycler4: Yup.number() + .label('Recycler 4') + .min(1) + .max(CURRENCY_MAX) + .nullable() + .transform(transformNumber), + recycler5: Yup.number() + .label('Recycler 5') + .min(1) + .max(CURRENCY_MAX) + .nullable() + .transform(transformNumber), + recycler6: Yup.number() + .label('Recycler 6') + .min(1) + .max(CURRENCY_MAX) + .nullable() + .transform(transformNumber) + }) + .test((values, context) => + R.any(key => !R.isNil(values[key]), denominationKeys) + ? true + : context.createError({ + path: '', + message: + 'The recyclers or at least one of the cassettes must have a value' + }) + ) const getElements = (machines, locale = {}, classes) => { const fiatCurrency = R.prop('fiatCurrency')(locale) @@ -157,8 +180,10 @@ const getElements = (machines, locale = {}, classes) => { doubleHeader: 'Denominations of Cassettes & Recyclers', isHidden: machine => it > - machines.find(({ deviceId }) => deviceId === machine.id) - .numberOfRecyclers + Math.ceil( + machines.find(({ deviceId }) => deviceId === machine.id) + .numberOfRecyclers / 2 + ) }) return R.add(1, it) }, diff --git a/new-lamassu-admin/src/pages/Maintenance/Wizard/Wizard.js b/new-lamassu-admin/src/pages/Maintenance/Wizard/Wizard.js index 2bcd8009..214b68aa 100644 --- a/new-lamassu-admin/src/pages/Maintenance/Wizard/Wizard.js +++ b/new-lamassu-admin/src/pages/Maintenance/Wizard/Wizard.js @@ -159,8 +159,12 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => { R.merge(makeCassettesInitialValues(), makeRecyclersInitialValues()) const steps = R.pipe( - R.concat(makeRecyclerSteps(numberOfRecyclers)), - R.concat(makeCassetteSteps(numberOfCassettes)), + R.concat( + makeRecyclerSteps( + canManuallyLoadRecyclers(machine) ? numberOfRecyclers : 0 + ) + ), + R.concat(makeCassetteSteps(isCashOutDisabled ? 0 : numberOfCassettes)), R.concat([ { type: 'cashbox',