7430_devToTest #2490
|
@ -15,3 +15,7 @@ ALTER TABLE vn.deviceProductionUser ADD IF NOT EXISTS simSerialNumber TEXT NULL;
|
|||
ALTER TABLE vn.deviceProductionConfig ADD IF NOT EXISTS maxDevicesPerUser INT UNSIGNED NULL;
|
||||
|
||||
UPDATE vn.deviceProductionConfig SET maxDevicesPerUser=1 WHERE id=1;
|
||||
|
||||
INSERT IGNORE INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('Worker','getAvailablePda','READ','ALLOW','ROLE','hr');
|
||||
|
||||
|
|
|
@ -225,5 +225,6 @@
|
|||
"ticketCommercial": "The ticket {{ ticket }} for the salesperson {{ salesMan }} is in preparation. (automatically generated message)",
|
||||
"This password can only be changed by the user themselves": "This password can only be changed by the user themselves",
|
||||
"They're not your subordinate": "They're not your subordinate",
|
||||
"InvoiceIn is already booked": "InvoiceIn is already booked"
|
||||
"InvoiceIn is already booked": "InvoiceIn is already booked",
|
||||
"This workCenter is already assigned to this agency": "This workCenter is already assigned to this agency"
|
||||
}
|
|
@ -356,5 +356,6 @@
|
|||
"InvoiceIn is already booked": "La factura recibida está contabilizada",
|
||||
"This workCenter is already assigned to this agency": "Este centro de trabajo ya está asignado a esta agencia",
|
||||
"Select ticket or client": "Elija un ticket o un client",
|
||||
"It was not able to create the invoice": "No se pudo crear la factura"
|
||||
"It was not able to create the invoice": "No se pudo crear la factura",
|
||||
"This PDA is already assigned to another user": "This PDA is already assigned to another user"
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
module.exports = Self => {
|
||||
Self.remoteMethod('getAvailablePda', {
|
||||
description: 'returns devices without user',
|
||||
accessType: 'READ',
|
||||
accepts: [],
|
||||
returns: {
|
||||
type: 'array',
|
||||
root: true
|
||||
},
|
||||
http: {
|
||||
path: `/getAvailablePda`,
|
||||
verb: 'GET'
|
||||
}
|
||||
});
|
||||
Self.getAvailablePda = async() => {
|
||||
const models = Self.app.models;
|
||||
|
||||
return models.DeviceProduction.rawSql(
|
||||
`SELECT d.*
|
||||
FROM deviceProduction d
|
||||
LEFT JOIN deviceProductionUser du ON du.deviceProductionFk = d.id
|
||||
WHERE du.deviceProductionFk IS NULL`
|
||||
);
|
||||
};
|
||||
};
|
|
@ -0,0 +1,13 @@
|
|||
const models = require('vn-loopback/server/server').models;
|
||||
|
||||
describe('worker getAvailablePda()', () => {
|
||||
fit('should return a Pda that has no user assigned', async() => {
|
||||
const [{id}] = await models.Worker.getAvailablePda();
|
||||
|
||||
const deviceProductionUser = await models.DeviceProductionUser.findOne({
|
||||
where: {deviceProductionFk: id}
|
||||
});
|
||||
|
||||
expect(!deviceProductionUser).toBeTruthy();
|
||||
});
|
||||
});
|
|
@ -0,0 +1,8 @@
|
|||
const UserError = require('vn-loopback/util/user-error');
|
||||
module.exports = Self => {
|
||||
Self.rewriteDbError(function(err) {
|
||||
if (err.code === 'ER_DUP_ENTRY')
|
||||
return new UserError(`This PDA is already assigned to another user`);
|
||||
return err;
|
||||
});
|
||||
};
|
|
@ -34,9 +34,9 @@
|
|||
},
|
||||
"relations": {
|
||||
"deviceProduction": {
|
||||
"type": "belongsTo",
|
||||
"type": "hasOne",
|
||||
"model": "DeviceProduction",
|
||||
"foreignKey": "deviceProductionFk"
|
||||
"foreignKey": "id"
|
||||
},
|
||||
"user": {
|
||||
"type": "belongsTo",
|
||||
|
|
|
@ -55,6 +55,11 @@
|
|||
"type": "belongsTo",
|
||||
"model": "DeviceProductionState",
|
||||
"foreignKey": "stateFk"
|
||||
},
|
||||
"deviceProductionUser": {
|
||||
"type": "hasMany",
|
||||
"model": "DeviceProductionUser",
|
||||
"foreignKey": "deviceProductionFk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ module.exports = Self => {
|
|||
require('../methods/worker/search')(Self);
|
||||
require('../methods/worker/isAuthorized')(Self);
|
||||
require('../methods/worker/setPassword')(Self);
|
||||
require('../methods/worker/getAvailablePda')(Self);
|
||||
|
||||
Self.validatesUniquenessOf('locker', {
|
||||
message: 'This locker has already been assigned'
|
||||
|
|
Loading…
Reference in New Issue