diff --git a/db/routines/vn/procedures/itemShelving_get.sql b/db/routines/vn/procedures/itemShelving_get.sql index 98f865994..1be762f09 100644 --- a/db/routines/vn/procedures/itemShelving_get.sql +++ b/db/routines/vn/procedures/itemShelving_get.sql @@ -15,11 +15,13 @@ BEGIN p.code, ish.id, s.priority, - ish.isChecked + ish.isChecked, + ic.url FROM itemShelving ish JOIN item i ON i.id = ish.itemFk JOIN shelving s ON vSelf = s.code COLLATE utf8_unicode_ci LEFT JOIN parking p ON s.parkingFk = p.id + JOIN hedera.imageConfig ic WHERE ish.shelvingFk COLLATE utf8_unicode_ci = vSelf; END$$ DELIMITER ; diff --git a/loopback/locale/en.json b/loopback/locale/en.json index 419775d1b..39756a615 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -206,5 +206,6 @@ "Incorrect pin": "Incorrect pin.", "The notification subscription of this worker cant be modified": "The notification subscription of this worker cant be modified", "Name should be uppercase": "Name should be uppercase", - "You cannot update these fields": "You cannot update these fields" + "You cannot update these fields": "You cannot update these fields", + "CountryFK cannot be empty": "Country cannot be empty" } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index dac839085..4f9a84b44 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -340,5 +340,6 @@ "Name should be uppercase": "El nombre debe ir en mayúscula", "Bank entity must be specified": "La entidad bancaria es obligatoria", "An email is necessary": "Es necesario un email", - "You cannot update these fields": "No puedes actualizar estos campos" + "You cannot update these fields": "No puedes actualizar estos campos", + "CountryFK cannot be empty": "El país no puede estar vacío" } \ No newline at end of file diff --git a/modules/route/back/methods/route/driverRouteEmail.js b/modules/route/back/methods/route/driverRouteEmail.js index 82b005e44..bbac2b0e8 100644 --- a/modules/route/back/methods/route/driverRouteEmail.js +++ b/modules/route/back/methods/route/driverRouteEmail.js @@ -1,3 +1,4 @@ +const UserError = require('vn-loopback/util/user-error'); module.exports = Self => { Self.remoteMethodCtx('driverRouteEmail', { description: 'Sends the driver route email with an attached PDF', @@ -9,24 +10,14 @@ module.exports = Self => { required: true, description: 'The client id', http: {source: 'path'} - }, - { - arg: 'recipient', - type: 'string', - description: 'The recipient email', - required: true, - }, - { + }, { arg: 'replyTo', type: 'string', description: 'The sender email to reply to', - required: false - }, - { + }, { arg: 'recipientId', type: 'number', description: 'The recipient id to send to the recipient preferred language', - required: false } ], returns: { @@ -39,5 +30,28 @@ module.exports = Self => { } }); - Self.driverRouteEmail = ctx => Self.sendTemplate(ctx, 'driver-route'); + Self.driverRouteEmail = async(ctx, id) => { + const models = Self.app.models; + const {workerFk, agencyMode} = await Self.findById(id, { + fields: ['workerFk', 'agencyModeFk'], + include: {relation: 'agencyMode'} + }); + const {reportMail} = agencyMode(); + let user; + let account; + + if (workerFk) { + user = await models.VnUser.findById(workerFk, { + fields: ['active', 'id'], + include: {relation: 'emailUser'} + }); + account = await models.Account.findById(workerFk); + } + + if (user?.active && account) ctx.args.recipient = user.emailUser().email; + else ctx.args.recipient = reportMail; + + if (!ctx.args.recipient) throw new UserError('An email is necessary'); + return Self.sendTemplate(ctx, 'driver-route'); + }; };