From b7ce6cac9c20ee77823fec60689546b58ef7b47c Mon Sep 17 00:00:00 2001 From: jorgep Date: Fri, 19 Jan 2024 12:38:58 +0100 Subject: [PATCH] fix: refs #6276 machineWorker_update & tests --- .../machine-worker/specs/updateInTime.spec.js | 18 +++++++++++++++++- back/methods/machine-worker/updateInTime.js | 8 ++++++-- .../specs/getVersion.spec.js | 2 +- loopback/locale/en.json | 4 +++- loopback/locale/es.json | 3 ++- 5 files changed, 29 insertions(+), 6 deletions(-) diff --git a/back/methods/machine-worker/specs/updateInTime.spec.js b/back/methods/machine-worker/specs/updateInTime.spec.js index aee1c9187..f166214b0 100644 --- a/back/methods/machine-worker/specs/updateInTime.spec.js +++ b/back/methods/machine-worker/specs/updateInTime.spec.js @@ -1,6 +1,6 @@ const {models} = require('vn-loopback/server/server'); -fdescribe('machineWorker updateInTime()', () => { +describe('machineWorker updateInTime()', () => { const itBoss = 104; const davidCharles = 1106; @@ -65,6 +65,22 @@ fdescribe('machineWorker updateInTime()', () => { } }); + it('should throw an error if it is himself with a different machine', async() => { + const tx = await models.MachineWorker.beginTransaction({}); + const options = {transaction: tx}; + ctx.req.accessToken.userId = itBoss; + const plate = 'RE-003'; + try { + await models.MachineWorker.updateInTime(ctx, plate, options); + await tx.rollback(); + } catch (e) { + const error = e; + + expect(error.message).toEqual('You are already using a machine'); + await tx.rollback(); + } + }); + it('should set the out time if it is himself', async() => { const tx = await models.MachineWorker.beginTransaction({}); const options = {transaction: tx}; diff --git a/back/methods/machine-worker/updateInTime.js b/back/methods/machine-worker/updateInTime.js index eebb09990..706f1a80e 100644 --- a/back/methods/machine-worker/updateInTime.js +++ b/back/methods/machine-worker/updateInTime.js @@ -51,15 +51,19 @@ module.exports = Self => { const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions); const hoursDifference = (Date.vnNow() - machineWorker.inTime.getTime()) / (60 * 60 * 1000); const isHimSelf = userId == machineWorker.workerFk; + const isSameMachine = machine.id == machineWorker.machineFk; - if (maxHours > hoursDifference && !isHimSelf) + if (hoursDifference < maxHours && !isHimSelf) throw new UserError($t('This machine is already in use.')); + if (hoursDifference < maxHours && isHimSelf && !isSameMachine) + throw new UserError($t('You are already using a machine')); + await machineWorker.updateAttributes({ outTime: Date.vnNew() }, myOptions); - if (maxHours <= hoursDifference) + if (hoursDifference >= maxHours) await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); } else await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions); diff --git a/back/methods/mobile-app-version-control/specs/getVersion.spec.js b/back/methods/mobile-app-version-control/specs/getVersion.spec.js index e0c517387..59d794ccf 100644 --- a/back/methods/mobile-app-version-control/specs/getVersion.spec.js +++ b/back/methods/mobile-app-version-control/specs/getVersion.spec.js @@ -20,8 +20,8 @@ describe('mobileAppVersionControl getVersion()', () => { }); it('should get the beta version app', async() => { - const {version, versionBeta} = await models.MobileAppVersionControl.getVersion(ctx, appName); ctx.req.accessToken.userId = 66; + const {version, versionBeta} = await models.MobileAppVersionControl.getVersion(ctx, appName); expect(versionBeta).toBeDefined(); expect(version).toBeUndefined(); diff --git a/loopback/locale/en.json b/loopback/locale/en.json index a6c3b4ee4..b10ea2e71 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -207,5 +207,7 @@ "This machine is already in use.": "This machine is already in use.", "the plate does not exist": "The plate {{plate}} does not exist", "This pallet does not exist": "This pallet does not exist", - "We do not have availability for the selected item": "We do not have availability for the selected item" + "We do not have availability for the selected item": "We do not have availability for the selected item", + "You are already using a machine": "You are already using a machine" + } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index e13a8dab9..c704cb8fd 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -344,5 +344,6 @@ "the plate does not exist": "La máquina {{plate}} no existe", "This pallet does not exist": "Este palet no existe", "We do not have availability for the selected item": "No tenemos disponible el item seleccionado", - "Esta máquina ya está en uso.": "Esta máquina ya está en uso." + "You are already using a machine": "Ya estás usando una máquina.", + "Ya estás usando una máquina.": "Ya estás usando una máquina." } \ No newline at end of file