feat: refs #6276 wip machineWorke_update
gitea/salix/pipeline/head There was a failure building this commit Details

This commit is contained in:
Jorge Penadés 2024-01-16 15:43:34 +01:00
parent 4f7240b496
commit 2fbea6f9dd
2 changed files with 18 additions and 12 deletions

View File

@ -1,3 +1,4 @@
const UserError = require('vn-loopback/util/user-error');
module.exports = Self => {
Self.remoteMethodCtx('updateInTime', {
description: 'Updates the corresponding registry if the worker has been registered in the last few hours',
@ -34,25 +35,29 @@ module.exports = Self => {
fields: ['id', 'plate'],
where: {plate}
}, myOptions);
if (!machine) throw new Error(`plate ${plate} does not exist`);
const {maxHours} = await models.MachineWorkerConfig.findOne({fields: ['maxHours']}, myOptions);
const machineWorker = await models.MachineWorker.findOne({
const machineWorker = await Self.findOne({
where: {
workerFk: userId,
inTime: {gte: Date.vnNew() - (maxHours * 60 * 60 * 1000)},
outTimed: null,
machineFk: machine.id,
outTime: null,
}
});
if (machineWorker) {
await machineWorker.updateAttributes({
outTime: Date.now()
}, myOptions);
}
if (machineWorker) {
const hoursDifference = (Date.vnNew() - machineWorker.inTime) / (60 * 60 * 1000);
const isHimSelf = userId == machineWorker.workerFk;
if (maxHours > hoursDifference && !isHimSelf) throw new UserError('Esta máquina ya está en uso.');
await machineWorker.updateAttributes({
outTime: Date.vnNew()
}, myOptions);
if (!isHimSelf) await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions);
} else
await models.MachineWorker.create({machineFk: machine.id, workerFk: userId}, myOptions);
if (tx) await tx.commit();
} catch (e) {

View File

@ -339,5 +339,6 @@
"The alias cant be modified": "Este alias de correo no puede ser modificado",
"No tickets to invoice": "No hay tickets para facturar",
"No hay tickets para sacar": "No hay tickets para sacar",
"There is no zone for these parameters 999999": "There is no zone for these parameters 999999"
"There is no zone for these parameters 999999": "There is no zone for these parameters 999999",
"Esta máquina ya está en uso.": "Esta máquina ya está en uso."
}