diff --git a/print/methods/closure.js b/print/methods/closure.js index d8d350cdf..a3d540d84 100644 --- a/print/methods/closure.js +++ b/print/methods/closure.js @@ -17,13 +17,17 @@ module.exports = app => { SELECT t.id, t.clientFk, - c.email recipient + c.email recipient, + c.isToBeMailed, + eu.email salesPersonEmail FROM expedition e JOIN ticket t ON t.id = e.ticketFk JOIN client c ON c.id = t.clientFk - JOIN warehouse w ON w.id = t.warehouseFk AND hasComission - LEFT JOIN ticketState ts ON ts.ticketFk = t.id - WHERE ts.code = 'PACKED' + JOIN warehouse wh ON wh.id = t.warehouseFk AND wh.hasComission + JOIN ticketState ts ON ts.ticketFk = t.id + JOIN alertLevel al ON al.alertLevel = ts.alertLevel + LEFT JOIN account.emailUser eu ON eu.userFk = c.salesPersonFk + WHERE al.code = 'PACKED' AND DATE(t.shipped) BETWEEN DATE_ADD(CURDATE(), INTERVAL -2 DAY) AND CURDATE() AND t.refFk IS NULL GROUP BY e.ticketFk`); @@ -34,6 +38,21 @@ module.exports = app => { ticketId: ticket.id }); + if (!ticket.salesPersonFk || !ticket.isToBeMailed) continue; + + if (!ticket.recipient) { + const body = `No se ha podido enviar el albarán ${ticket.id} + al cliente ${ticket.clientFk} porque no tiene un email especificado.

+ Para dejar de recibir esta notificación, asígnale un email o desactiva la notificación por email para este cliente.`; + smtp.send({ + to: ticket.salesPersonEmail, + subject: 'No se ha podido enviar el albarán', + html: body + }); + + continue; + } + const args = { ticketId: ticket.id, recipientId: ticket.clientFk, @@ -52,7 +71,7 @@ module.exports = app => { // Send email with failed tickets if (failedtickets.length > 0) { - let body = 'This following tickets has failed:

'; + let body = 'This following tickets have failed:

'; for (ticket of failedtickets) { body += `Ticket: ${ticket.id} @@ -61,7 +80,7 @@ module.exports = app => { smtp.send({ to: config.app.reportEmail, - subject: '[API] Nightly ticket closure has failed', + subject: '[API] Nightly ticket closure report', html: body }); }