From 7b2506df801ba3886738386059c35a0b9e631748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joan=20S=C3=A1nchez?= Date: Fri, 20 Oct 2017 14:03:25 +0200 Subject: [PATCH 1/2] setup-printer translation, added client-welcome report --- .../mailer/application/route/manuscript.js | 10 ++ .../template/client-welcome/attachment.json | 1 + .../template/client-welcome/client-welcome.js | 44 ++++++ .../template/client-welcome/index.html | 129 ++++++++++++++++++ .../template/client-welcome/locale/es.json | 14 ++ .../template/payment-update/payment-update.js | 11 +- .../template/printer-setup/index.html | 59 ++++---- .../template/printer-setup/locale/es.json | 25 ++++ .../template/printer-setup/printer-setup.js | 23 +++- services/mailer/application/util/format.js | 4 + 10 files changed, 278 insertions(+), 42 deletions(-) create mode 100644 services/mailer/application/template/client-welcome/attachment.json create mode 100644 services/mailer/application/template/client-welcome/client-welcome.js create mode 100644 services/mailer/application/template/client-welcome/index.html create mode 100644 services/mailer/application/template/client-welcome/locale/es.json diff --git a/services/mailer/application/route/manuscript.js b/services/mailer/application/route/manuscript.js index 3ebafe7ca..424165583 100644 --- a/services/mailer/application/route/manuscript.js +++ b/services/mailer/application/route/manuscript.js @@ -33,4 +33,14 @@ router.get('/printer-setup/:clientId', function(request, response, next) { }); }); +// Client welcome +router.post('/client-welcome/:clientId', function(request, response, next) { + mail.sendWithTemplate('client-welcome', {recipient: request.params.clientId}, error => { + if (error) + return response.status(400).json({message: error.message}); + + return response.json(); + }); +}); + module.exports = router; diff --git a/services/mailer/application/template/client-welcome/attachment.json b/services/mailer/application/template/client-welcome/attachment.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/services/mailer/application/template/client-welcome/attachment.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/services/mailer/application/template/client-welcome/client-welcome.js b/services/mailer/application/template/client-welcome/client-welcome.js new file mode 100644 index 000000000..e4addf57f --- /dev/null +++ b/services/mailer/application/template/client-welcome/client-welcome.js @@ -0,0 +1,44 @@ +var path = require('path'); +var database = require(path.join(__dirname, '../../database.js')); +var format = require(path.join(__dirname, '../../util/format.js')); + +module.exports = class ClientWelcome { + getData(params, cb) { + let query = `SELECT + CONCAT(w.name, ' ', w.firstName) name, + w.phone AS phone, + CONCAT(wu.name, '@verdnatura.es') AS email, + u.name AS userName, + LOWER(ct.code) countryCode, + c.email recipient + FROM client c + JOIN account.user u ON u.id = c.id + LEFT JOIN worker w ON w.id = c.workerFk + LEFT JOIN account.user wu ON wu.id = w.userFk + JOIN country ct ON ct.id = c.countryFk + WHERE c.id = ?`; + database.pool.query(query, [params.recipient], (error, result) => { + if (error || result.length == 0) + return cb(new Error('No template data found')); + + Object.assign(this, result[0]); + cb(); + }); + } + + get salesPersonName() { + if (this.name) + return `
${this._.salesPersonNameText}: ${this.name}
`; + } + + get salesPersonPhone() { + if (this.phone) + return `
${this._.salesPersonPhoneText}: ${format.phone(this.phone)}
`; + } + + get salesPersonEmail() { + if (this.email) + return `
${this._.salesPersonEmailText}: ` + + `${this.email}
`; + } +}; diff --git a/services/mailer/application/template/client-welcome/index.html b/services/mailer/application/template/client-welcome/index.html new file mode 100644 index 000000000..661f0986a --- /dev/null +++ b/services/mailer/application/template/client-welcome/index.html @@ -0,0 +1,129 @@ + + + + {{_.subject}} + + + +
+
+ + + + + +
+

{{_.title}}

+
+ + + +
+

{{_.dear}},

+

{{_.bodyDescription}}

+ +

+ Sus datos para poder comprar en la web de verdnatura (https://www.verdnatura.es) + o en nuestras aplicaciones para iOS (https://goo.gl/3hC2mG) y Android (https://goo.gl/8obvLc), son: +

+ +

+

Usuario: {{userName}}
+
Contraseña: ******** (Va a recibir un correo para establecer la contraseña)
+

+ +

Cómo hacer un pedido

+ +

Para realizar un pedido en nuestra web, debe configurarlo indicando:

+ +
    +
  1. Si quiere recibir el pedido (por agencia o por nuestro propio reparto) o si lo prefiere recoger en alguno de nuestros almacenes.
  2. +
  3. La fecha en la que quiera recibir el pedido (se preparará el día anterior).
  4. +
  5. La dirección de entrega o el almacén donde quiera recoger el pedido.
  6. +
+ +

En nuestra web y aplicaciones puedes visualizar el stock disponible de flor cortada, verdes, plantas, complementos y artificial. + Tenga en cuenta que dicho stock puede variar en función de la fecha seleccionada al configurar el pedido. Es importante CONFIRMAR los pedidos para que la mercancía quede reservada.

+ +

El reparto se realiza de lunes a sábado según la zona en la que se encuentre. Por regla general, los pedidos que se entregan por agencia, deben estar confirmados y pagados antes de las 17h + del día en que se preparan (el día anterior a recibirlos), aunque esto puede variar si el pedido se envía a través de nuestro reparto y según la zona.

+ +

Cómo pagar

+ +

Las formas de pago admitidas en Verdnatura son

+ +
    +
  • Con tarjeta a través de nuestra plataforma web (al confirmar el pedido).
  • +
  • Mediante giro bancario mensual, modalidad que hay que solicitar y tramitar.
  • +
+ +

Cosas a tener en cuenta

+ +

Verdnatura vende EXCLUSIVAMENTE a profesionales, por lo que debe remitirnos el Modelo 036 ó 037, + para comprobar que está dado/a de alta en el epígrafe correspondiente al comercio de flores.

+ +

POLÍTICA DE RECLAMACIONES

+ +

Verdnatura aceptará las reclamaciones que se realicen dentro de los dos días naturales + siguientes a la recepción del pedido (incluyendo el mismo día de la recepción). Pasado este plazo no se aceptará ninguna reclamación.

+ +

Cualquier duda que le surja, no dude en consultarla, ¡estamos para atenderle!

+ +

+ {{{salesPersonName}}} + {{{salesPersonPhone}}} + {{{salesPersonEmail}}} +

+ + +
+ + + + + + + + + + + +
+

{{_.fiscalAddress}}

+

{{_.privacy}}

+

{{_.privacyLaw}}

+
+ +
+
+ + \ No newline at end of file diff --git a/services/mailer/application/template/client-welcome/locale/es.json b/services/mailer/application/template/client-welcome/locale/es.json new file mode 100644 index 000000000..c99fe0c8e --- /dev/null +++ b/services/mailer/application/template/client-welcome/locale/es.json @@ -0,0 +1,14 @@ +{ + "subject": "¡Le damos la bienvenida!", + "title": "¡LE DAMOS LA BIENVENIDA!", + "dear": "Estimado cliente", + "bodyDescription": "Siga las intrucciones especificadas en este correo para llevar a cabo la instalación de la impresora.", + "salesPersonNameText": "Soy tu comercial y mi nombre es", + "salesPersonPhoneText": "Teléfono y whatsapp", + "salesPersonEmailText": "Dirección de e-mail", + "actionButton": "Visita nuestra Web", + "infoButton": "Ayúdanos a mejorar", + "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", + "privacy": "- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado exclusivamente por la persona destinataria del mismo. Si usted ha recibido este mensaje por error, le rogamos lo comunique al remitente y borre dicho mensaje y cualquier documento adjunto que pudiera contener. Verdnatura Levante SL no renuncia a la confidencialidad ni a ningún privilegio por causa de transmisión errónea o mal funcionamiento. Igualmente no se hace responsable de los cambios, alteraciones, errores u omisiones que pudieran hacerse al mensaje una vez enviado.", + "privacyLaw": "En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, le comunicamos que los datos personales que facilite se incluirán en ficheros automatizados de VERDNATURA LEVANTE S.L., pudiendo en todo momento ejercitar los derechos de acceso, rectificación, cancelación y oposición, comunicándolo por escrito al domicilio social de la entidad. La finalidad del fichero es la gestión administrativa, contabilidad, y facturación." +} \ No newline at end of file diff --git a/services/mailer/application/template/payment-update/payment-update.js b/services/mailer/application/template/payment-update/payment-update.js index 0dbb69798..d126dc83a 100644 --- a/services/mailer/application/template/payment-update/payment-update.js +++ b/services/mailer/application/template/payment-update/payment-update.js @@ -25,17 +25,16 @@ module.exports = class PaymentUpdate { } get paymentDay() { - if (this.payMethodFk != 5) { + if (this.payMethodFk != 5) return `
${this._.paymentDay}: ${this.dueDay} ${this._.everyMonth}
`; - } } get paymentAdvice() { switch (this.payMethodFk) { - case 4: - return `${this._.accountPaymentAdviceBefore} ${format.partialAccountAddress(this.iban)} ${this._.accountPaymentAdviceAfter}`; - case 5: - return this._.cardPaymentAdvice; + case 4: + return `${this._.accountPaymentAdviceBefore} ${format.partialAccountAddress(this.iban)} ${this._.accountPaymentAdviceAfter}`; + case 5: + return this._.cardPaymentAdvice; } } }; diff --git a/services/mailer/application/template/printer-setup/index.html b/services/mailer/application/template/printer-setup/index.html index 86ae8e31a..3f6c8910d 100644 --- a/services/mailer/application/template/printer-setup/index.html +++ b/services/mailer/application/template/printer-setup/index.html @@ -23,49 +23,40 @@

{{_.dear}},

{{_.bodyDescription}}

- -

- Puede utilizar como guía, el video del montaje del ribon y la cinta https://www.youtube.com/watch?v=qhb0kgQF3o8. - También necesitará el QLabel, el programa para imprimir las cintas.

- -

Puede descargarlo desde este enlace http://www.godexintl.com/en/product/type/Download/2967

+

{{{_.followGuide}}}

+

{{{_.downloadFrom}}}

-

Utilización de QLabel

+

{{_.sectionQLabelTitle}}

-

Para utilizar el programa de impresión de cintas siga estos pasos:

+

{{_.sectionQLabelDescription}}

    -
  1. Abra el programa QLabel.
  2. -
  3. Haga click en el icono de la carpeta.
  4. -
  5. Seleccione el archivo plantilla llamado "MODEL.ezp".
  6. -
  7. Haga click ENCIMA DEL TEXTO con el boton secundario del ratÓn.
  8. -
  9. Elija la primera opcion "SETUP".
  10. -
  11. Cambie el texto para imprimir.
  12. -
  13. Haga click en el boton OK.
  14. -
  15. Desplácese con el raton para ver la medida máxima.
  16. -
  17. Haga click ENCIMA DEL TEXTO con el boton secundario del raton.
  18. -
  19. Elija la primera opcion "SETUP PRINTER".
  20. -
  21. Haga click en la primera pestalla "Label Setup".
  22. -
  23. Y modifique la propidad "Paper Height".
  24. -
  25. Haga click en el boton OK.
  26. -
  27. Haga click sobre el icono de la impresora.
  28. -
  29. Haga click en "Print".
  30. +
  31. {{_.sectionQLabelStep1}}
  32. +
  33. {{_.sectionQLabelStep2}}
  34. +
  35. {{_.sectionQLabelStep3}}
  36. +
  37. {{{_.sectionQLabelStep4}}}
  38. +
  39. {{_.sectionQLabelStep5}}
  40. +
  41. {{_.sectionQLabelStep6}}
  42. +
  43. {{_.sectionQLabelStep7}}
  44. +
  45. {{_.sectionQLabelStep8}}
  46. +
  47. {{{_.sectionQLabelStep9}}}
  48. +
  49. {{_.sectionQLabelStep10}}
  50. +
  51. {{_.sectionQLabelStep11}}
  52. +
  53. {{_.sectionQLabelStep12}}
  54. +
  55. {{_.sectionQLabelStep13}}
  56. +
  57. {{_.sectionQLabelStep14}}
  58. +
  59. {{_.sectionQLabelStep15}}
-

¿Necesita ayuda?

- -

Si necesita ayuda, descárguese nuestro programa de soporte para poder conectarnos remotamente a su pc y hacerle la instalación. - Proporciónenos un horario de contacto para atenderle, y contactaremos con usted.

- -

Puede descargarse el programa desde este enlace http://soporte.verdnatura.es

+

{{_.sectionHelpTitle}}

+

{{_.sectionHelpDescription}}

+

{{{_.sectionHelpDownloadRemoteSupport}}}

-

Soy tu comercial y mi nombre es: {{_.salesPersonName}}
-
Teléfono y whatsapp: {salesMan_phone}
-
Email: {salesMan_mail}
+ {{{salesPersonName}}} + {{{salesPersonPhone}}} + {{{salesPersonEmail}}}

- -
diff --git a/services/mailer/application/template/printer-setup/locale/es.json b/services/mailer/application/template/printer-setup/locale/es.json index a856dd827..41a831524 100644 --- a/services/mailer/application/template/printer-setup/locale/es.json +++ b/services/mailer/application/template/printer-setup/locale/es.json @@ -3,6 +3,31 @@ "title": "¡GRACIAS POR SU CONFIANZA!", "dear": "Estimado cliente", "bodyDescription": "Siga las intrucciones especificadas en este correo para llevar a cabo la instalación de la impresora.", + "followGuide": "Puede utilizar como guía, el video del montaje del ribon y la cinta https://www.youtube.com/watch?v=qhb0kgQF3o8. También necesitará el QLabel, el programa para imprimir las cintas.", + "downloadFrom": "Puede descargarlo desde este enlace http://www.godexintl.com/en/product/type/Download/2967", + "sectionQLabelTitle": "Utilización de QLabel", + "sectionQLabelDescription": "Para utilizar el programa de impresión de cintas siga estos pasos:", + "sectionQLabelStep1": "Abra el programa QLabel.", + "sectionQLabelStep2": "Haga clic en el icono de la barra superior superior de la \"carpeta\".", + "sectionQLabelStep3": "Seleccione el archivo plantilla llamado \"model.ezp\".", + "sectionQLabelStep4": "Haga clic encima del texto con el boton secundario del ratón.", + "sectionQLabelStep5": "Elija la primera opcion \"setup\".", + "sectionQLabelStep6": "Cambie el texto para imprimir.", + "sectionQLabelStep7": "Haga clic en el boton \"Ok\".", + "sectionQLabelStep8": "Desplácese con el raton para ver la medida máxima.", + "sectionQLabelStep9": "Haga clic encima del texto con el botón secundario del ratón.", + "sectionQLabelStep10": "Elija la primera opcion \"Setup printer\".", + "sectionQLabelStep11": "Haga clic en la primera pestalla \"Label Setup\".", + "sectionQLabelStep12": "Modifique la propidad \"Paper Height\".", + "sectionQLabelStep13": "Haga clic en el boton \"Ok\".", + "sectionQLabelStep14": "Haga clic sobre el icono de la impresora.", + "sectionQLabelStep15": "Haga clic en \"Print\".", + "sectionHelpTitle": "¿Necesita ayuda?", + "sectionHelpDescription": "Si necesita ayuda, descárguese nuestro programa de soporte para poder conectarnos remotamente a su equipo y hacerle la instalación. Proporciónenos un horario de contacto para atenderle, y contactaremos con usted.", + "sectionHelpDownloadRemoteSupport": "Puede descargarse el programa desde este enlace http://soporte.verdnatura.es.", + "salesPersonNameText": "Soy su comercial y mi nombre es", + "salesPersonPhoneText": "Teléfono y whatsapp", + "salesPersonEmailText": "Dirección de e-mail", "actionButton": "Visita nuestra Web", "infoButton": "Ayúdanos a mejorar", "fiscalAddress": "VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla _ www.verdnatura.es _ clientes@verdnatura.es", diff --git a/services/mailer/application/template/printer-setup/printer-setup.js b/services/mailer/application/template/printer-setup/printer-setup.js index c8b25ffed..77147f459 100644 --- a/services/mailer/application/template/printer-setup/printer-setup.js +++ b/services/mailer/application/template/printer-setup/printer-setup.js @@ -2,14 +2,17 @@ var path = require('path'); var database = require(path.join(__dirname, '../../database.js')); var format = require(path.join(__dirname, '../../util/format.js')); -module.exports = class PaymentUpdate { +module.exports = class PrinterSetup { getData(params, cb) { let query = `SELECT - CONCAT(w.name, ' ', w.firstName) salesPersonName, + CONCAT(w.name, ' ', w.firstName) name, + w.phone AS phone, + CONCAT(u.name, '@verdnatura.es') AS email, LOWER(ct.code) countryCode, c.email recipient FROM client c LEFT JOIN worker w ON w.id = c.workerFk + LEFT JOIN account.user u ON u.id = w.userFk JOIN country ct ON ct.id = c.countryFk WHERE c.id = ?`; database.pool.query(query, [params.recipient], (error, result) => { @@ -20,4 +23,20 @@ module.exports = class PaymentUpdate { cb(); }); } + + get salesPersonName() { + if (this.name) + return `
${this._.salesPersonNameText}: ${this.name}
`; + } + + get salesPersonPhone() { + if (this.phone) + return `
${this._.salesPersonPhoneText}: ${format.phone(this.phone)}
`; + } + + get salesPersonEmail() { + if (this.email) + return `
${this._.salesPersonEmailText}: ` + + `${this.email}
`; + } }; diff --git a/services/mailer/application/util/format.js b/services/mailer/application/util/format.js index e166062c7..681fea72d 100644 --- a/services/mailer/application/util/format.js +++ b/services/mailer/application/util/format.js @@ -31,5 +31,9 @@ module.exports = { partialAccountAddress: function(addressNumber) { let address = this.accountAddress(addressNumber); return address.substring(0, 19).replace(/[0-9]/g, 'X') + address.substring(19, 24); + }, + + phone: function(number) { + return number; } }; From b32f0b199ff054a54d269bf185e82c7470653b9b Mon Sep 17 00:00:00 2001 From: Vicente Falco Date: Sun, 22 Oct 2017 14:03:04 +0200 Subject: [PATCH 2/2] mailer localDB --- services/mailer/application/config/mysql.test.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/mailer/application/config/mysql.test.json b/services/mailer/application/config/mysql.test.json index dee7b6929..5b00829b3 100644 --- a/services/mailer/application/config/mysql.test.json +++ b/services/mailer/application/config/mysql.test.json @@ -1,7 +1,7 @@ { "host": "localhost", "port": 3306, - "user": "rot", + "user": "root", "password": "", "database": "vn" } \ No newline at end of file