From 61cc77281637c45d83c02f9336e19a0f09a15075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Salgado?= Date: Wed, 28 Apr 2021 16:41:27 +0100 Subject: [PATCH] feat: cashbox batch creation on machine cashbox removal fix: cashbox batch creation with empty cashbox --- lib/cashbox-batches.js | 4 ++-- lib/new-admin/graphql/resolvers/cashbox.resolver.js | 2 +- lib/new-admin/graphql/types/cashbox.type.js | 2 +- lib/routes/cashboxRoutes.js | 11 +++++++---- .../src/pages/Maintenance/Wizard/Wizard.js | 9 ++++----- 5 files changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/cashbox-batches.js b/lib/cashbox-batches.js index e670855a..0e24cb71 100644 --- a/lib/cashbox-batches.js +++ b/lib/cashbox-batches.js @@ -2,8 +2,8 @@ const db = require('./db') const _ = require('lodash/fp') const uuid = require('uuid') -function createCashboxBatch (deviceId) { - console.log('herererere') +function createCashboxBatch (deviceId, cashboxCount) { + if (_.isEqual(0, cashboxCount)) throw new Error('Cashbox is empty. Cashbox batch could not be created') const sql = `INSERT INTO cashbox_batches (id, device_id, created, operation_type) VALUES ($1, $2, now(), 'cash-in-empty') RETURNING *` const sql2 = ` UPDATE bills SET cashbox_batch_id=$1 diff --git a/lib/new-admin/graphql/resolvers/cashbox.resolver.js b/lib/new-admin/graphql/resolvers/cashbox.resolver.js index 91e489bd..276e4432 100644 --- a/lib/new-admin/graphql/resolvers/cashbox.resolver.js +++ b/lib/new-admin/graphql/resolvers/cashbox.resolver.js @@ -5,7 +5,7 @@ const resolvers = { cashboxBatches: () => cashbox.getBatches() }, Mutation: { - createBatch: (...[, { deviceId }]) => cashbox.createCashboxBatch(deviceId), + createBatch: (...[, { deviceId, cashboxCount }]) => cashbox.createCashboxBatch(deviceId, cashboxCount), editBatch: (...[, { id, performedBy }]) => cashbox.editBatchById(id, performedBy) } } diff --git a/lib/new-admin/graphql/types/cashbox.type.js b/lib/new-admin/graphql/types/cashbox.type.js index 15bc99e4..19f5b239 100644 --- a/lib/new-admin/graphql/types/cashbox.type.js +++ b/lib/new-admin/graphql/types/cashbox.type.js @@ -16,7 +16,7 @@ const typeDef = gql` } type Mutation { - createBatch(deviceId: ID): CashboxBatch + createBatch(deviceId: ID, cashboxCount: Int): CashboxBatch editBatch(id: ID, performedBy: String): CashboxBatch } ` diff --git a/lib/routes/cashboxRoutes.js b/lib/routes/cashboxRoutes.js index caeeca27..3db8e284 100644 --- a/lib/routes/cashboxRoutes.js +++ b/lib/routes/cashboxRoutes.js @@ -1,12 +1,15 @@ const express = require('express') const router = express.Router() +const cashbox = require('../cashbox-batches') +const machine = require('../machine-loader') + function notifyCashboxRemoval (req, res, next) { Promise.resolve() - .then(() => { - console.log(`Device ${req.deviceId} had its cashbox removed.`) - return res.status(200).send({ status: 'OK' }) - }) + .then(() => machine.getMachine(req.deviceId)) + .then(machine => cashbox.createCashboxBatch(req.deviceId, machine.cashbox)) + .then(() => machine.emptyCashInBills(req)) + .then(() => res.status(200).send({ status: 'OK' })) .catch(next) } diff --git a/new-lamassu-admin/src/pages/Maintenance/Wizard/Wizard.js b/new-lamassu-admin/src/pages/Maintenance/Wizard/Wizard.js index 187cbe51..b925cbe6 100644 --- a/new-lamassu-admin/src/pages/Maintenance/Wizard/Wizard.js +++ b/new-lamassu-admin/src/pages/Maintenance/Wizard/Wizard.js @@ -14,8 +14,8 @@ const MODAL_HEIGHT = 520 const CASHBOX_DEFAULT_CAPACITY = 500 const CREATE_BATCH = gql` - mutation createBatch($deviceId: ID) { - createBatch(deviceId: $deviceId) { + mutation createBatch($deviceId: ID, $cashboxCount: Int) { + createBatch(deviceId: $deviceId, cashboxCount: $cashboxCount) { id } } @@ -38,7 +38,6 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => { const isLastStep = step === LAST_STEP const onContinue = it => { - console.log('it?.wasCashboxEmptied', it?.wasCashboxEmptied) const wasCashboxEmptied = it?.wasCashboxEmptied === 'YES' const cashbox = wasCashboxEmptied ? 0 : machine?.cashbox @@ -46,10 +45,10 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => { const newConfig = R.merge(config, it) if (isLastStep) { if (wasCashboxEmptied) { - console.log('cashbox was emptied') createBatch({ variables: { - deviceId: machine.id + deviceId: machine.id, + cashboxCount: machine.cashbox } }) }