feat: refs #6235 Added device in clockIn
This commit is contained in:
parent
acf47468c0
commit
dd17b2c05d
|
@ -2,21 +2,23 @@ DELIMITER $$
|
|||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`workerTimeControl_clockIn`(
|
||||
vWorkerFk INT,
|
||||
vTimed DATETIME,
|
||||
vDirection VARCHAR(10)
|
||||
vDirection VARCHAR(10),
|
||||
vDevice VARCHAR(255)
|
||||
)
|
||||
BEGIN
|
||||
/**
|
||||
* Verifica si el empleado puede fichar
|
||||
* @param vWorkerFk Identificador del trabajador
|
||||
* @param vTimed valor de la fichada, IF vTimed IS NULL vTimed = NOW
|
||||
* @param vDirection solo se pueden pasa los valores del campo
|
||||
* workerTimeControl.direction ENUM('in', 'out', 'middle')
|
||||
* @return Si todo es correcto, retorna el número de id la tabla workerTimeControl.
|
||||
* Si hay algún problema, devuelve el mesaje que se debe mostrar al usuario
|
||||
* Solo retorna el primer problema, en caso de no ocurrir ningún error se añadirá
|
||||
* fichada a la tabla vn.workerTimeControl
|
||||
*/
|
||||
|
||||
* Verifica si el empleado puede fichar
|
||||
* @param vWorkerFk Identificador del trabajador
|
||||
* @param vTimed Balor de la fichada, IF vTimed IS NULL vTimed = NOW
|
||||
* @param vDirection Solo se pueden pasa los valores del campo
|
||||
* workerTimeControl.direction ENUM('in', 'out', 'middle')
|
||||
* @param vDevice Dispositivo en el que se ha fichado
|
||||
* @return Si todo es correcto, retorna el número de id la tabla workerTimeControl.
|
||||
* Si hay algún problema, devuelve el mesaje que se debe mostrar al usuario
|
||||
* Solo retorna el primer problema, en caso de no ocurrir ningún error se añadirá
|
||||
* fichada a la tabla vn.workerTimeControl
|
||||
*/
|
||||
|
||||
DECLARE vLastIn DATETIME;
|
||||
DECLARE vLastOut DATETIME;
|
||||
DECLARE vNextIn DATETIME;
|
||||
|
@ -269,16 +271,16 @@ BEGIN
|
|||
GROUP BY breakCounter
|
||||
HAVING hasError
|
||||
LIMIT 1;
|
||||
|
||||
|
||||
IF vIsError THEN
|
||||
SET vErrorCode = 'BREAK_WEEK';
|
||||
CALL util.throw(vErrorCode);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- SE PERMITE FICHAR
|
||||
INSERT INTO workerTimeControl(userFk, timed, direction, `manual`)
|
||||
VALUES(vWorkerFk, vTimed, vDirection, vIsManual);
|
||||
|
||||
-- Se permite fichar
|
||||
INSERT INTO workerTimeControl(userFk, timed, direction, device, `manual`)
|
||||
VALUES(vWorkerFk, vTimed, vDirection, vDevice, vIsManual);
|
||||
|
||||
SELECT LAST_INSERT_ID() id;
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE vn.workerTimeControl ADD device varchar(255) DEFAULT NULL NULL COMMENT 'Dispositivo en el que se ha fichado' AFTER `order`;
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE vn.workerTimeControl CHANGE direction direction enum('in','out','middle') CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT 'middle' NULL AFTER timed;
|
|
@ -333,7 +333,7 @@
|
|||
"It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}",
|
||||
"This claim has been updated": "La reclamación con Id: {{claimId}}, ha sido actualizada",
|
||||
"This user does not have an assigned tablet": "Este usuario no tiene tablet asignada",
|
||||
"Incorrect pin": "Pin incorrecto.",
|
||||
"Incorrect pin": "Pin incorrecto",
|
||||
"You already have the mailAlias": "Ya tienes este alias de correo",
|
||||
"The alias cant be modified": "Este alias de correo no puede ser modificado",
|
||||
"No tickets to invoice": "No hay tickets para facturar"
|
||||
|
|
|
@ -18,7 +18,10 @@ module.exports = Self => {
|
|||
arg: 'direction',
|
||||
type: 'string'
|
||||
},
|
||||
|
||||
{
|
||||
arg: 'device',
|
||||
type: 'string'
|
||||
},
|
||||
],
|
||||
http: {
|
||||
path: `/clockIn`,
|
||||
|
@ -30,13 +33,19 @@ module.exports = Self => {
|
|||
}
|
||||
});
|
||||
|
||||
Self.clockIn = async(workerFk, timed, direction, options) => {
|
||||
Self.clockIn = async(workerFk, timed, direction, device, options) => {
|
||||
const myOptions = {};
|
||||
if (typeof options == 'object')
|
||||
Object.assign(myOptions, options);
|
||||
|
||||
const query = 'CALL vn.workerTimeControl_clockIn(?, ?, ?)';
|
||||
const [[response]] = await Self.rawSql(query, [workerFk, timed, direction], myOptions);
|
||||
const query = 'CALL vn.workerTimeControl_clockIn(?, ?, ?, ?)';
|
||||
const [[response]] = await Self.rawSql(query, [
|
||||
workerFk,
|
||||
timed,
|
||||
direction,
|
||||
device || null],
|
||||
myOptions);
|
||||
|
||||
if (response && response.error)
|
||||
throw new UserError(response.error);
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
const UserError = require('vn-loopback/util/user-error');
|
||||
|
||||
module.exports = Self => {
|
||||
Self.remoteMethodCtx('login', {
|
||||
Self.remoteMethod('login', {
|
||||
description: 'Consult the user\'s information and the buttons that must be activated after logging in',
|
||||
accessType: 'READ',
|
||||
accepts: [
|
||||
|
@ -21,15 +21,14 @@ module.exports = Self => {
|
|||
}
|
||||
});
|
||||
|
||||
Self.login = async(ctx, pin, options) => {
|
||||
Self.login = async(pin, options) => {
|
||||
const myOptions = {};
|
||||
const $t = ctx.req.__;
|
||||
if (typeof options == 'object')
|
||||
Object.assign(myOptions, options);
|
||||
|
||||
const query = `CALL vn.workerTimeControl_login(?)`;
|
||||
const [[user]] = await Self.rawSql(query, [pin], myOptions);
|
||||
if (!user) throw new UserError($t('Incorrect pin'));
|
||||
if (!user) throw new UserError('Incorrect pin');
|
||||
return user;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -14,13 +14,16 @@
|
|||
"timed": {
|
||||
"type": "date"
|
||||
},
|
||||
"direction": {
|
||||
"type": "string"
|
||||
},
|
||||
"manual": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"order": {
|
||||
"type": "number"
|
||||
},
|
||||
"direction": {
|
||||
"device": {
|
||||
"type": "string"
|
||||
},
|
||||
"isSendMail": {
|
||||
|
|
Loading…
Reference in New Issue