diff --git a/db/changes/10004-mother/00-mandateType.sql b/db/changes/10004-mother/00-mandateType.sql
new file mode 100644
index 000000000..9b16e93d7
--- /dev/null
+++ b/db/changes/10004-mother/00-mandateType.sql
@@ -0,0 +1 @@
+UPDATE `vn2008`.`mandato_tipo` SET `Nombre`='LCR' WHERE `idmandato_tipo`='3';
diff --git a/db/changes/10004-mother/00-sample.sql b/db/changes/10004-mother/00-sample.sql
new file mode 100644
index 000000000..4c0453705
--- /dev/null
+++ b/db/changes/10004-mother/00-sample.sql
@@ -0,0 +1,4 @@
+
+INSERT INTO `vn`.`sample`(`id`, `code`, `description`, `isVisible`, `hasCompany`)
+ VALUES
+ (17, 'client-lcr', 'Autorisation pour débit', 1, 1);
\ No newline at end of file
diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql
index 0f644bf7f..3bc22a931 100644
--- a/db/dump/fixtures.sql
+++ b/db/dump/fixtures.sql
@@ -523,7 +523,8 @@ INSERT INTO `vn`.`greuge`(`id`, `clientFk`, `description`, `amount`, `shipped`,
INSERT INTO `vn`.`mandateType`(`id`, `name`)
VALUES
(1, 'B2B'),
- (2, 'CORE');
+ (2, 'CORE'),
+ (3, 'LCR');
INSERT INTO `vn`.`mandate`(`id`, `clientFk`, `companyFk`, `code`, `created`, `mandateTypeFk`)
VALUES
diff --git a/modules/client/back/models/client-sample.js b/modules/client/back/models/client-sample.js
index b36d27f84..c7cda2412 100644
--- a/modules/client/back/models/client-sample.js
+++ b/modules/client/back/models/client-sample.js
@@ -14,10 +14,19 @@ module.exports = Self => {
if (sample.hasCompany && !changes.companyFk)
throw new UserError('Choose a company');
+ const mandateSamples = [
+ {sample: 'sepa-core', type: 'CORE'},
+ {sample: 'client-lcr', type: 'LCR'}
+ ];
+
+ const mandate = mandateSamples.find(mandate => {
+ return mandate.sample === sample.code;
+ });
+
// Renew mandate
- if (sample.code === 'sepa-core') {
+ if (mandate) {
let mandateType = await models.MandateType.findOne({
- where: {name: 'CORE'}
+ where: {name: mandate.type}
});
let oldMandate = await models.Mandate.findOne({
diff --git a/print/config/routes.json b/print/config/routes.json
index 6e287131f..f4a620ffe 100644
--- a/print/config/routes.json
+++ b/print/config/routes.json
@@ -6,6 +6,7 @@
{"type": "email", "name": "letter-debtor-nd"},
{"type": "email", "name": "claim-pickup-order"},
{"type": "email", "name": "sepa-core"},
+ {"type": "email", "name": "client-lcr"},
{"type": "email", "name": "driver-route"},
{"type": "report", "name": "rpt-delivery-note"},
{"type": "report", "name": "rpt-claim-pickup-order"},
diff --git a/print/report/client-lcr/assets/css/index.js b/print/report/client-lcr/assets/css/index.js
new file mode 100644
index 000000000..321c632dc
--- /dev/null
+++ b/print/report/client-lcr/assets/css/index.js
@@ -0,0 +1,7 @@
+const CssReader = require(`${appPath}/lib/cssReader`);
+
+module.exports = new CssReader([
+ `${appPath}/common/css/layout.css`,
+ `${appPath}/common/css/email.css`,
+ `${appPath}/common/css/misc.css`])
+ .mergeStyles();
diff --git a/print/report/client-lcr/index.html b/print/report/client-lcr/index.html
new file mode 100644
index 000000000..91fa67ab5
--- /dev/null
+++ b/print/report/client-lcr/index.html
@@ -0,0 +1,27 @@
+
+
+
+ {{ $t('subject') }}
+
+
+
+
+
+
+
+
+
+
{{ $t('title') }}
+
+
+
+ {{$t('description.dear')}},
+ {{$t('description.instructions')}}
+ {{$t('description.conclusion')}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/print/report/client-lcr/index.js b/print/report/client-lcr/index.js
new file mode 100755
index 000000000..bb7ba452d
--- /dev/null
+++ b/print/report/client-lcr/index.js
@@ -0,0 +1,49 @@
+const database = require(`${appPath}/lib/database`);
+const reportEngine = require(`${appPath}/lib/reportEngine.js`);
+const UserException = require(`${appPath}/lib/exceptions/userException`);
+
+module.exports = {
+ name: 'client-lcr',
+ async asyncData(ctx, params) {
+ const promises = [];
+ const data = {
+ isPreview: ctx.method === 'GET',
+ };
+
+ if (!params.clientFk)
+ throw new UserException('No client id specified');
+
+ promises.push(reportEngine.toPdf('rpt-lcr', ctx));
+ promises.push(this.methods.fetchClient(params.clientFk));
+
+ return Promise.all(promises).then(result => {
+ const stream = result[0];
+ const [[client]] = result[1];
+
+ Object.assign(data, client);
+ Object.assign(data, {attachments: [{filename: 'rpt-lcr.pdf', content: stream}]});
+
+ return data;
+ });
+ },
+ created() {
+ if (this.locale)
+ this.$i18n.locale = this.locale;
+ },
+
+ methods: {
+ fetchClient(clientFk) {
+ return database.pool.query(`
+ SELECT
+ u.lang locale,
+ c.email recipient
+ FROM client c
+ JOIN account.user u ON u.id = c.id
+ WHERE c.id = ?`, [clientFk]);
+ },
+ },
+ components: {
+ 'email-header': require('../email-header'),
+ 'email-footer': require('../email-footer'),
+ },
+};
diff --git a/print/report/client-lcr/locale.js b/print/report/client-lcr/locale.js
new file mode 100644
index 000000000..85a75d778
--- /dev/null
+++ b/print/report/client-lcr/locale.js
@@ -0,0 +1,64 @@
+module.exports = {
+ messages: {
+ es: {
+ subject: 'Autorisation pour débit',
+ title: 'Autorisation pour débit',
+ description: {
+ dear: 'Messieurs',
+ instructions: `Étant donné les excellentes relations existantes entre nos
+ deux sociétés et en vue de faciliter les processus de
+ paiement de nos factures, nous vous suggérons l'utilisation
+ du système française de compensation LCR.
+ Ce service consiste à effectuer des recouvrements
+ automatiques, de manière électronique, de nos effets -
+ lettres de change et billets à ordre - tirés sur votre société
+ en Euro, qui présente comme principal avantage pour vous
+ la substantielle réduction de coûts dans des termes de frais
+ et commissions bancaires.
+ Dans le cas où vous accepteriez notre proposition, à
+ l’échéance de chaque effet, votre compte sera débité
+ automatiquement par votre Banque.
+ Ainsi, nous vous demandons de signer et envoyer à votre
+ Banque l'original de l'autorisation pour débit en annexe,
+ dûment remplie, et de nous retourner une photocopie de la
+ dite autorisation.
+ Ce système étant basé sur la transmission de données de
+ manière électronique, le maniement de documents
+ physiques á été éliminé
+ En vous remercieront pour votre collaboration, nous vous
+ prions d’agréer, Messieurs, nos salutations distinguées.`,
+ conclusion: 'Bien cordialement'
+ },
+ },
+ fr: {
+ subject: 'Autorisation pour débit',
+ title: 'Autorisation pour débit',
+ description: {
+ dear: 'Messieurs',
+ instructions: `Étant donné les excellentes relations existantes entre nos
+ deux sociétés et en vue de faciliter les processus de
+ paiement de nos factures, nous vous suggérons l'utilisation
+ du système française de compensation LCR.
+ Ce service consiste à effectuer des recouvrements
+ automatiques, de manière électronique, de nos effets -
+ lettres de change et billets à ordre - tirés sur votre société
+ en Euro, qui présente comme principal avantage pour vous
+ la substantielle réduction de coûts dans des termes de frais
+ et commissions bancaires.
+ Dans le cas où vous accepteriez notre proposition, à
+ l’échéance de chaque effet, votre compte sera débité
+ automatiquement par votre Banque.
+ Ainsi, nous vous demandons de signer et envoyer à votre
+ Banque l'original de l'autorisation pour débit en annexe,
+ dûment remplie, et de nous retourner une photocopie de la
+ dite autorisation.
+ Ce système étant basé sur la transmission de données de
+ manière électronique, le maniement de documents
+ physiques á été éliminé
+ En vous remercieront pour votre collaboration, nous vous
+ prions d’agréer, Messieurs, nos salutations distinguées.`,
+ conclusion: 'Bien cordialement'
+ },
+ },
+ },
+};