#1407 email core francia LCR

This commit is contained in:
Carlos Jimenez Ruiz 2019-05-08 10:42:26 +02:00
parent 62550b76f6
commit c9521d1024
9 changed files with 166 additions and 3 deletions

View File

@ -0,0 +1 @@
UPDATE `vn2008`.`mandato_tipo` SET `Nombre`='LCR' WHERE `idmandato_tipo`='3';

View File

@ -0,0 +1,4 @@
INSERT INTO `vn`.`sample`(`id`, `code`, `description`, `isVisible`, `hasCompany`)
VALUES
(17, 'client-lcr', 'Autorisation pour débit', 1, 1);

View File

@ -523,7 +523,8 @@ INSERT INTO `vn`.`greuge`(`id`, `clientFk`, `description`, `amount`, `shipped`,
INSERT INTO `vn`.`mandateType`(`id`, `name`) INSERT INTO `vn`.`mandateType`(`id`, `name`)
VALUES VALUES
(1, 'B2B'), (1, 'B2B'),
(2, 'CORE'); (2, 'CORE'),
(3, 'LCR');
INSERT INTO `vn`.`mandate`(`id`, `clientFk`, `companyFk`, `code`, `created`, `mandateTypeFk`) INSERT INTO `vn`.`mandate`(`id`, `clientFk`, `companyFk`, `code`, `created`, `mandateTypeFk`)
VALUES VALUES

View File

@ -14,10 +14,19 @@ module.exports = Self => {
if (sample.hasCompany && !changes.companyFk) if (sample.hasCompany && !changes.companyFk)
throw new UserError('Choose a company'); 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 // Renew mandate
if (sample.code === 'sepa-core') { if (mandate) {
let mandateType = await models.MandateType.findOne({ let mandateType = await models.MandateType.findOne({
where: {name: 'CORE'} where: {name: mandate.type}
}); });
let oldMandate = await models.Mandate.findOne({ let oldMandate = await models.Mandate.findOne({

View File

@ -6,6 +6,7 @@
{"type": "email", "name": "letter-debtor-nd"}, {"type": "email", "name": "letter-debtor-nd"},
{"type": "email", "name": "claim-pickup-order"}, {"type": "email", "name": "claim-pickup-order"},
{"type": "email", "name": "sepa-core"}, {"type": "email", "name": "sepa-core"},
{"type": "email", "name": "client-lcr"},
{"type": "email", "name": "driver-route"}, {"type": "email", "name": "driver-route"},
{"type": "report", "name": "rpt-delivery-note"}, {"type": "report", "name": "rpt-delivery-note"},
{"type": "report", "name": "rpt-claim-pickup-order"}, {"type": "report", "name": "rpt-claim-pickup-order"},

View File

@ -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();

View File

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<title>{{ $t('subject') }}</title>
</head>
<body>
<section class="container">
<!-- Header component -->
<email-header></email-header>
<!-- End header component -->
<section class="main">
<!-- Title block -->
<div class="title">
<h1>{{ $t('title') }}</h1>
</div>
<!-- Title block end -->
<p>{{$t('description.dear')}},</p>
<p>{{$t('description.instructions')}}</p>
<p>{{$t('description.conclusion')}}</p>
</section>
<!-- Footer component -->
<email-footer :locale="locale"></email-footer>
<!-- End footer component -->
</section>
</body>
</html>

View File

@ -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'),
},
};

View File

@ -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 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 dagré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 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 dagréer, Messieurs, nos salutations distinguées.`,
conclusion: 'Bien cordialement'
},
},
},
};