diff --git a/modules/worker/back/methods/worker-time-control/sendMail.js b/modules/worker/back/methods/worker-time-control/sendMail.js
index 2f9559b3a..a1d6ea2ac 100644
--- a/modules/worker/back/methods/worker-time-control/sendMail.js
+++ b/modules/worker/back/methods/worker-time-control/sendMail.js
@@ -332,18 +332,9 @@ module.exports = Self => {
}, myOptions);
const timestamp = started.getTime() / 1000;
- await models.Mail.create({
- receiver: previousReceiver,
- subject: $t('Record of hours week', {
- week: args.week,
- year: args.year
- }),
- body: `${salix.url}worker/${previousWorkerFk}/time-control?timestamp=${timestamp}`
- }, myOptions);
+ const url = `${salix.url}worker/${previousWorkerFk}/time-control?timestamp=${timestamp}`;
- query = `INSERT IGNORE INTO workerTimeControlMail (workerFk, year, week)
- VALUES (?, ?, ?);`;
- await Self.rawSql(query, [previousWorkerFk, args.year, args.week], myOptions);
+ await models.WorkerTimeControl.weeklyHourRecordEmail(ctx, previousReceiver, args.week, args.year, url);
previousWorkerFk = day.workerFk;
previousReceiver = day.receiver;
diff --git a/modules/worker/back/methods/worker-time-control/specs/sendMail.spec.js b/modules/worker/back/methods/worker-time-control/specs/sendMail.spec.js
index 4cc6e54e3..24bfd6904 100644
--- a/modules/worker/back/methods/worker-time-control/specs/sendMail.spec.js
+++ b/modules/worker/back/methods/worker-time-control/specs/sendMail.spec.js
@@ -2,15 +2,12 @@ const models = require('vn-loopback/server/server').models;
describe('workerTimeControl sendMail()', () => {
const workerId = 18;
- const ctx = {
- req: {
- __: value => {
- return value;
- }
- },
- args: {}
-
+ const activeCtx = {
+ getLocale: () => {
+ return 'en';
+ }
};
+ const ctx = {req: activeCtx, args: {}};
it('should fill time control of a worker without records in Journey and with rest', async() => {
const tx = await models.WorkerTimeControl.beginTransaction({});
diff --git a/modules/worker/back/methods/worker-time-control/weeklyHourRecordEmail.js b/modules/worker/back/methods/worker-time-control/weeklyHourRecordEmail.js
new file mode 100644
index 000000000..0cf614e57
--- /dev/null
+++ b/modules/worker/back/methods/worker-time-control/weeklyHourRecordEmail.js
@@ -0,0 +1,53 @@
+const {Email} = require('vn-print');
+
+module.exports = Self => {
+ Self.remoteMethodCtx('weeklyHourRecordEmail', {
+ description: 'Sends the buyer waste email',
+ accessType: 'WRITE',
+ accepts: [
+ {
+ arg: 'recipient',
+ type: 'string',
+ description: 'The recipient email',
+ required: true,
+ },
+ {
+ arg: 'week',
+ type: 'number',
+ required: true,
+ },
+ {
+ arg: 'year',
+ type: 'number',
+ required: true
+ },
+ {
+ arg: 'url',
+ type: 'string',
+ required: true
+ }
+ ],
+ returns: {
+ type: ['object'],
+ root: true
+ },
+ http: {
+ path: '/weekly-hour-hecord-email',
+ verb: 'POST'
+ }
+ });
+
+ Self.weeklyHourRecordEmail = async(ctx, recipient, week, year, url) => {
+ const params = {
+ recipient: recipient,
+ lang: ctx.req.getLocale(),
+ week: week,
+ year: year,
+ url: url
+ };
+
+ const email = new Email('weekly-hour-record', params);
+
+ return email.send();
+ };
+};
diff --git a/modules/worker/back/models/worker-time-control.js b/modules/worker/back/models/worker-time-control.js
index 9f802511a..7339f5d15 100644
--- a/modules/worker/back/models/worker-time-control.js
+++ b/modules/worker/back/models/worker-time-control.js
@@ -7,6 +7,7 @@ module.exports = Self => {
require('../methods/worker-time-control/updateTimeEntry')(Self);
require('../methods/worker-time-control/sendMail')(Self);
require('../methods/worker-time-control/updateWorkerTimeControlMail')(Self);
+ require('../methods/worker-time-control/weeklyHourRecordEmail')(Self);
Self.rewriteDbError(function(err) {
if (err.code === 'ER_DUP_ENTRY')
diff --git a/print/templates/email/weekly-hour-record/assets/css/import.js b/print/templates/email/weekly-hour-record/assets/css/import.js
new file mode 100644
index 000000000..1582b82c5
--- /dev/null
+++ b/print/templates/email/weekly-hour-record/assets/css/import.js
@@ -0,0 +1,12 @@
+const Stylesheet = require(`vn-print/core/stylesheet`);
+
+const path = require('path');
+const vnPrintPath = path.resolve('print');
+
+module.exports = new Stylesheet([
+ `${vnPrintPath}/common/css/spacing.css`,
+ `${vnPrintPath}/common/css/misc.css`,
+ `${vnPrintPath}/common/css/layout.css`,
+ `${vnPrintPath}/common/css/email.css`])
+ .mergeStyles();
+
diff --git a/print/templates/email/weekly-hour-record/locale/en.yml b/print/templates/email/weekly-hour-record/locale/en.yml
new file mode 100644
index 000000000..817e5451e
--- /dev/null
+++ b/print/templates/email/weekly-hour-record/locale/en.yml
@@ -0,0 +1,6 @@
+subject: Weekly time log
+title: Record of hours week {0} year {1}
+dear: Dear worker
+description: Access the following link:
+ {0}
+ Click 'SATISFIED' if you agree with the hours worked. Otherwise, press 'NOT SATISFIED', detailing the cause of the disagreement.
diff --git a/print/templates/email/weekly-hour-record/locale/es.yml b/print/templates/email/weekly-hour-record/locale/es.yml
new file mode 100644
index 000000000..b70862f16
--- /dev/null
+++ b/print/templates/email/weekly-hour-record/locale/es.yml
@@ -0,0 +1,6 @@
+subject: Registro de horas semanal
+title: Registro de horas semana {0} año {1}
+dear: Estimado trabajador
+description: Acceda al siguiente enlace:
+ {0}
+ Pulse 'CONFORME' si esta de acuerdo con las horas trabajadas. En caso contrario pulse 'NO CONFORME', detallando la causa de la disconformidad.
diff --git a/print/templates/email/weekly-hour-record/weekly-hour-record.html b/print/templates/email/weekly-hour-record/weekly-hour-record.html
new file mode 100644
index 000000000..84abb4c61
--- /dev/null
+++ b/print/templates/email/weekly-hour-record/weekly-hour-record.html
@@ -0,0 +1,9 @@
+
+
+
+
{{ $t('title', [week, year]) }}
+
{{$t('dear')}},
+
+
+
+
diff --git a/print/templates/email/weekly-hour-record/weekly-hour-record.js b/print/templates/email/weekly-hour-record/weekly-hour-record.js
new file mode 100755
index 000000000..8fdaea0ce
--- /dev/null
+++ b/print/templates/email/weekly-hour-record/weekly-hour-record.js
@@ -0,0 +1,23 @@
+const Component = require(`vn-print/core/component`);
+const emailBody = new Component('email-body');
+
+module.exports = {
+ name: 'weekly-hour-record',
+ components: {
+ 'email-body': emailBody.build()
+ },
+ props: {
+ week: {
+ type: Number,
+ required: true
+ },
+ year: {
+ type: Number,
+ required: true
+ },
+ url: {
+ type: String,
+ required: true
+ }
+ }
+};