dynamic header & footer texts by company #1336
This commit is contained in:
parent
37618efb58
commit
5f28d39bbf
|
@ -31,7 +31,7 @@ INSERT INTO `hedera`.`tpvConfig`(`id`, `currency`, `terminal`, `transactionType`
|
|||
INSERT INTO `account`.`user`(`id`,`name`,`password`,`role`,`active`,`email`,`lang`)
|
||||
VALUES
|
||||
(101, 'BruceWayne', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'BruceWayne@mydomain.com', 'es'),
|
||||
(102, 'PetterParker', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'PetterParker@mydomain.com', 'es'),
|
||||
(102, 'PetterParker', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'PetterParker@mydomain.com', 'en'),
|
||||
(103, 'ClarkKent', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'ClarkKent@mydomain.com', 'fr'),
|
||||
(104, 'TonyStark', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'TonyStark@mydomain.com', 'es'),
|
||||
(105, 'MaxEisenhardt', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'MaxEisenhardt@mydomain.com', 'pt'),
|
||||
|
|
|
@ -39,9 +39,9 @@
|
|||
|
||||
<!-- Privacy block -->
|
||||
<div class="privacy">
|
||||
<p>{{$t('privacy.fiscalAddress')}}</p>
|
||||
<p>{{$t('privacy.disclaimer')}}</p>
|
||||
<p>{{$t('privacy.law')}}</p>
|
||||
<p>{{$t('fiscalAddress')}}</p>
|
||||
<p>{{$t('disclaimer')}}</p>
|
||||
<p>{{$t('privacy')}}</p>
|
||||
</div>
|
||||
<!-- Privacy block end -->
|
||||
</footer>
|
|
@ -1,4 +1,3 @@
|
|||
module.exports = {
|
||||
name: 'email-footer',
|
||||
props: ['isPreview', 'locale']
|
||||
name: 'email-footer'
|
||||
};
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
buttons:
|
||||
webAcccess: Visit our website
|
||||
info: Help us to improve
|
||||
fiscalAddress: VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla
|
||||
· www.verdnatura.es · clientes@verdnatura.es
|
||||
disclaimer: '- NOTICE - This message is private and confidential, and should be used
|
||||
exclusively by the person receiving it. If you have received this message by mistake,
|
||||
please notify the sender and delete that message and any attached documents that it may contain.
|
||||
Verdnatura Levante SL does not waive confidentiality or any privilege due to erroneous
|
||||
transmission or malfunction. Likewise, it is not responsible for the changes, alterations,
|
||||
errors or omissions that could be made to the message once sent.'
|
||||
privacy: 'In compliance with the provisions of Organic Law 15/1999, on the
|
||||
Protection of Personal Data, we inform you that the personal data you provide
|
||||
will be included in automated files of VERDNATURA LEVANTE SL, being able at all
|
||||
times to exercise the rights of access, rectification, cancellation and opposition,
|
||||
communicating it in writing to the registered office of the entity.
|
||||
The purpose of the file is administrative management, accounting, and billing.'
|
|
@ -1,7 +1,6 @@
|
|||
buttons:
|
||||
webAcccess: Visita nuestra Web
|
||||
info: Ayúdanos a mejorar
|
||||
privacy:
|
||||
fiscalAddress: VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla
|
||||
· www.verdnatura.es · clientes@verdnatura.es
|
||||
disclaimer: '- AVISO - Este mensaje es privado y confidencial, y debe ser utilizado
|
||||
|
@ -11,7 +10,7 @@ privacy:
|
|||
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.'
|
||||
law: En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de
|
||||
privacy: En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de
|
||||
Datos de Carácter Personal, te comunicamos que los datos personales que facilites
|
||||
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,
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
buttons:
|
||||
webAcccess: Visitez notre site web
|
||||
info: Aidez-nous à améliorer
|
||||
privacy:
|
||||
fiscalAddress: VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla
|
||||
· www.verdnatura.es · clientes@verdnatura.es
|
||||
disclaimer: "- AVIS - Ce message est privé et confidentiel et doit être utilisé
|
||||
|
@ -11,9 +10,9 @@ privacy:
|
|||
confidentialité ni aux privilèges résultant d'une transmission erronée ou d'un dysfonctionnement.
|
||||
De même, il n'est pas responsable des modifications, altérations, erreurs ou
|
||||
omissions qui pourraient être apportées au message une fois envoyé."
|
||||
law: En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección de
|
||||
Datos de Carácter Personal, te comunicamos que los datos personales que facilites
|
||||
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 porescrito al domicilio social de la entidad. La finalidad del fichero
|
||||
es la gestión administrativa, contabilidad, y facturación.
|
||||
privacy: Conformément aux dispositions de la loi organique 15/1999 sur la protection
|
||||
des données personnelles, nous vous informons que les données personnelles que
|
||||
vous fournissez seront incluses dans des dossiers. VERDNATURA LEVANTE S.L., vous
|
||||
pouvez à tout moment, exercer les droits d'accès, de rectification, d'annulation
|
||||
et d'opposition, en communiquant par écrit au siège social de la société. Le dossier
|
||||
a pour objet la gestion administrative, la comptabilité et la facturation.
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
buttons:
|
||||
webAcccess: Visite o nosso site
|
||||
info: Ajude-nos a melhorar
|
||||
fiscalAddress: VERDNATURA LEVANTE SL, B97367486 Avda. Espioca, 100, 46460 Silla
|
||||
· www.verdnatura.es · clientes@verdnatura.es
|
||||
disclaimer: '- AVISO - Esta mensagem é privada e confidencial e deve ser usada exclusivamente
|
||||
pela pessoa que a recebe. Se você recebeu esta mensagem por engano, notifique o remetente e
|
||||
exclua essa mensagem e todos os documentos anexos que ela possa conter.
|
||||
A Verdnatura Levante SL não renuncia à confidencialidade ou a qualquer privilégio devido a
|
||||
transmissão ou mau funcionamento incorretos. Da mesma forma, não se responsabiliza pelas alterações,
|
||||
alterações, erros ou omissões que possam ser feitos na mensagem após o envio.'
|
||||
privacy: Em cumprimento do disposto na lei Orgânica 15/1999, de Protecção de Dados
|
||||
de Carácter Pessoal, comunicamos que os dados pessoais que facilite se incluirão
|
||||
nos ficheiros automatizados de VERDNATURA LEVANTE S.L., podendo em todo momento
|
||||
exercer os direitos de acesso, rectificação, cancelação e oposição, comunicando
|
||||
por escrito ao domicílio social da entidade. A finalidade do ficheiro é a gestão
|
||||
administrativa, contabilidade e facturação.
|
|
@ -1,4 +1,3 @@
|
|||
module.exports = {
|
||||
name: 'email-header',
|
||||
props: ['locale']
|
||||
name: 'email-header'
|
||||
};
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
numPages: Page {{page}} of {{pages}}
|
||||
law:
|
||||
privacy: 'In compliance with the provisions of Organic Law 15/1999, on the
|
||||
Protection of Personal Data, we inform you that the personal data you provide
|
||||
will be included in automated files of VERDNATURA LEVANTE SL, being able at all
|
||||
times to exercise the rights of access, rectification, cancellation and opposition,
|
||||
communicating it in writing to the registered office of the entity.
|
||||
The purpose of the file is administrative management, accounting, and billing.'
|
|
@ -1,7 +1,5 @@
|
|||
numPages: Página {{page}} de {{pages}}
|
||||
law:
|
||||
phytosanitary: 'VERDNATURA LEVANTE SL - Pasaporte Fitosanitario R.P. Generalitat
|
||||
Valenciana - Nº Comerciante: ES17462130'
|
||||
privacy: 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
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
numPages: Page {{page}} de {{pages}}
|
||||
law:
|
||||
phytosanitary: 'VERDNATURA LEVANTE SL - Passeport Phytosanitaire R.P. Generalitat
|
||||
Valenciana - Numéro d''opérateur: ES17462130'
|
||||
privacy: Conformément aux dispositions de la loi organique 15/1999 sur la protection
|
||||
des données personnelles, nous vous informons que les données personnelles que
|
||||
vous fournissez seront incluses dans des dossiers. VERDNATURA LEVANTE S.L., vous
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
numPages: Página {{page}} de {{pages}}
|
||||
law:
|
||||
phytosanitary: 'VERDNATURA LEVANTE S.L - Passaporte Fitossanitário R.P. Generalitat
|
||||
Valenciana - Nº Comerciante: ES17462130'
|
||||
privacy: Em cumprimento do disposto na lei Orgânica 15/1999, de Protecção de Dados
|
||||
de Carácter Pessoal, comunicamos que os dados pessoais que facilite se incluirão
|
||||
nos ficheiros automatizados de VERDNATURA LEVANTE S.L., podendo em todo momento
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
<section v-if="centerText" class="uppercase">{{centerText}}</section>
|
||||
<section class="number">{{$t('numPages')}}</section>
|
||||
</section>
|
||||
<p class="phytosanitary" v-if="showPhytosanitary">{{$t('law.phytosanitary')}}</p>
|
||||
<p class="phytosanitary" v-if="showPhytosanitary">{{phytosanitary}}</p>
|
||||
<p class="privacy" v-html="$t('law.privacy')"></p>
|
||||
</footer>
|
||||
|
|
|
@ -1,4 +1,18 @@
|
|||
const db = require('../../database');
|
||||
|
||||
module.exports = {
|
||||
name: 'report-footer',
|
||||
props: ['leftText', 'centerText', 'locale', 'showPhytosanitary']
|
||||
async serverPrefetch() {
|
||||
const companyCode = this.companyCode || 'VNL';
|
||||
|
||||
this.phytosanitary = await this.getPhytosanitary(companyCode);
|
||||
},
|
||||
methods: {
|
||||
getPhytosanitary(code) {
|
||||
return db.findValue(`
|
||||
SELECT phytosanitary FROM company c
|
||||
WHERE c.code = :code`, {code});
|
||||
}
|
||||
},
|
||||
props: ['companyCode', 'showPhytosanitary', 'leftText', 'centerText']
|
||||
};
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
company:
|
||||
contactData: www.verdnatura.es - clientes@verdnatura.es
|
|
@ -1,5 +1,2 @@
|
|||
company:
|
||||
fiscalAddress: VERDNATURA LEVANTE S.L., B97367486 Avda. Espioca, 100, 46460 Silla
|
||||
- www.verdnatura.es - clientes@verdnatura.es
|
||||
registry: 'CIF: B97367486 Registro Mercantil de Valencia, Tomo 8041, Libro 5334,
|
||||
Folio 160, Sección 8, Hoja V 102076'
|
||||
contactData: www.verdnatura.es - clientes@verdnatura.es
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
company:
|
||||
contactData: www.verdnatura.es - clientes@verdnatura.es
|
|
@ -1,5 +1,2 @@
|
|||
company:
|
||||
fiscalAddress: VERDNATURA LEVANTE S.L., B97367486 Avda. Espioca, 100, 46460 Silla
|
||||
- www.verdnatura.es - clientes@verdnatura.es
|
||||
registry: 'CIF: B97367486 Registro Mercantil de Valencia, Tomo 8041, Libro 5334,
|
||||
Folio 160, Sección 8, Hoja V 102076'
|
||||
contactData: · www.verdnatura.es · clientes@verdnatura.es
|
|
@ -1,5 +1,10 @@
|
|||
<header>
|
||||
<img v-bind:src="getReportSrc('report-logo.svg')" alt="Verdnatura"/>
|
||||
<section>{{$t('company.fiscalAddress')}}</section>
|
||||
<section>{{$t('company.registry')}}</section>
|
||||
<section>
|
||||
{{companyName}}. {{company.street}}.
|
||||
{{company.postCode}} {{company.city}}.
|
||||
☎ {{companyPhone}}
|
||||
· {{$t('company.contactData')}}
|
||||
</section>
|
||||
<section>CIF: {{fiscalAddress.nif}} {{fiscalAddress.register}}</section>
|
||||
</header>
|
||||
|
|
|
@ -1,4 +1,46 @@
|
|||
const db = require('../../database');
|
||||
|
||||
module.exports = {
|
||||
name: 'report-header',
|
||||
props: ['isPreview', 'locale']
|
||||
async serverPrefetch() {
|
||||
const companyCode = this.companyCode || 'VNL';
|
||||
|
||||
this.company = await this.getCompany(companyCode);
|
||||
this.fiscalAddress = await this.getFiscalAddress(companyCode);
|
||||
},
|
||||
computed: {
|
||||
companyName() {
|
||||
if (!this.company.name) return;
|
||||
|
||||
return this.company.name.toUpperCase();
|
||||
},
|
||||
companyPhone() {
|
||||
if (!this.company.phone) return;
|
||||
|
||||
let phone = this.company.phone;
|
||||
|
||||
if (phone.length >= 13) {
|
||||
const prefix = parseInt(phone.substr(0, 4));
|
||||
const number = phone.substr(5, phone.length);
|
||||
return `+${prefix} ${number}`;
|
||||
} else
|
||||
return phone;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getCompany(code) {
|
||||
return db.findOne(`
|
||||
SELECT s.name, s.street, s.postCode, s.city, s.phone
|
||||
FROM company c
|
||||
JOIN supplier s ON s.id = c.id
|
||||
WHERE c.code = :code`, {code});
|
||||
},
|
||||
getFiscalAddress(code) {
|
||||
return db.findOne(`
|
||||
SELECT nif, register FROM company c
|
||||
JOIN supplier s ON s.id = c.id
|
||||
WHERE c.code = :code`, {code});
|
||||
}
|
||||
},
|
||||
props: ['companyCode']
|
||||
};
|
||||
|
|
|
@ -15,15 +15,34 @@ module.exports = {
|
|||
* @param {String} query - The raw SQL query
|
||||
* @param {Object} params - Parameterized values
|
||||
*
|
||||
* @return {Object} - Result
|
||||
* @return {Object} - Result promise
|
||||
*/
|
||||
rawSql(query, params) {
|
||||
return this.pool.query(query, params).then(([rows]) => {
|
||||
return rows;
|
||||
});
|
||||
},
|
||||
/**
|
||||
* Returns the first row from a given raw sql
|
||||
* @param {String} query - The raw SQL query
|
||||
* @param {Object} params - Parameterized values
|
||||
*
|
||||
* @return {Object} - Result promise
|
||||
*/
|
||||
findOne(query, params) {
|
||||
return this.rawSql(query, params).then(([rows]) => rows);
|
||||
return this.rawSql(query, params).then(([row]) => row);
|
||||
},
|
||||
/**
|
||||
* Returns the first property from a given raw sql
|
||||
* @param {String} query - The raw SQL query
|
||||
* @param {Object} params - Parameterized values
|
||||
*
|
||||
* @return {Object} - Result promise
|
||||
*/
|
||||
findValue(query, params) {
|
||||
return this.findOne(query, params).then(row => {
|
||||
return Object.values(row)[0];
|
||||
});
|
||||
},
|
||||
findFromDef() {
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
const Vue = require('vue');
|
||||
const db = require('../database');
|
||||
const config = require('../config');
|
||||
const fallbackLocale = config.i18n.fallbackLocale;
|
||||
const userLocale = {
|
||||
async serverPrefetch() {
|
||||
if (this.clientId)
|
||||
|
@ -13,7 +15,9 @@ const userLocale = {
|
|||
return db.findOne(`
|
||||
SELECT lang FROM account.user
|
||||
WHERE id = ?`, [clientId]).then(rows => {
|
||||
if (rows)
|
||||
return rows.lang;
|
||||
else return fallbackLocale;
|
||||
});
|
||||
}
|
||||
},
|
||||
|
|
|
@ -17,10 +17,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-header>
|
||||
<email-header v-bind="$props"></email-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -34,10 +31,7 @@
|
|||
<!-- Footer block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-footer
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-footer>
|
||||
<email-footer v-bind="$props"></email-footer>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Empty block -->
|
||||
|
|
|
@ -17,10 +17,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-header>
|
||||
<email-header v-bind="$props"></email-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -80,10 +77,7 @@
|
|||
<!-- Footer block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-footer
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-footer>
|
||||
<email-footer v-bind="$props"></email-footer>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Empty block -->
|
||||
|
|
|
@ -22,10 +22,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-header>
|
||||
<email-header v-bind="$props"></email-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -57,10 +54,7 @@
|
|||
<!-- Footer block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-footer
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-footer>
|
||||
<email-footer v-bind="$props"></email-footer>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Empty block -->
|
||||
|
|
|
@ -17,10 +17,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-header>
|
||||
<email-header v-bind="$props"></email-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -37,10 +34,7 @@
|
|||
<!-- Footer block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-footer
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-footer>
|
||||
<email-footer v-bind="$props"></email-footer>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Empty block -->
|
||||
|
|
|
@ -17,10 +17,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-header>
|
||||
<email-header v-bind="$props"></email-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -33,10 +30,7 @@
|
|||
<!-- Footer block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-footer
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-footer>
|
||||
<email-footer v-bind="$props"></email-footer>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Empty block -->
|
||||
|
|
|
@ -17,10 +17,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-header>
|
||||
<email-header v-bind="$props"></email-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -69,7 +66,6 @@
|
|||
<attachment v-for="attachment in attachments"
|
||||
v-bind:key="attachment.filename"
|
||||
v-bind:attachment="attachment"
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:args="$props">
|
||||
</attachment>
|
||||
</div>
|
||||
|
@ -77,10 +73,7 @@
|
|||
<!-- Footer block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-footer
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-footer>
|
||||
<email-footer v-bind="$props"></email-footer>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Empty block -->
|
||||
|
|
|
@ -17,10 +17,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-header>
|
||||
<email-header v-bind="$props"></email-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -52,7 +49,6 @@
|
|||
<attachment v-for="attachment in attachments"
|
||||
v-bind:key="attachment.filename"
|
||||
v-bind:attachment="attachment"
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:args="$props">
|
||||
</attachment>
|
||||
</div>
|
||||
|
@ -60,10 +56,7 @@
|
|||
<!-- Footer block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-footer
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-footer>
|
||||
<email-footer v-bind="$props"></email-footer>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Empty block -->
|
||||
|
|
|
@ -17,10 +17,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-header>
|
||||
<email-header v-bind="$props"></email-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -54,10 +51,7 @@
|
|||
<!-- Footer block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-footer
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-footer>
|
||||
<email-footer v-bind="$props"></email-footer>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Empty block -->
|
||||
|
|
|
@ -17,10 +17,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-header>
|
||||
<email-header v-bind="$props"></email-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -77,10 +74,7 @@
|
|||
<!-- Footer block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-footer
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-footer>
|
||||
<email-footer v-bind="$props"></email-footer>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Empty block -->
|
||||
|
|
|
@ -17,10 +17,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-header>
|
||||
<email-header v-bind="$props"></email-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -45,10 +42,7 @@
|
|||
<!-- Footer block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<email-footer
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</email-footer>
|
||||
<email-footer v-bind="$props"></email-footer>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Empty block -->
|
||||
|
|
|
@ -8,10 +8,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<report-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</report-header>
|
||||
<report-header v-bind="$props"></report-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -93,8 +90,7 @@
|
|||
<report-footer id="pageFooter"
|
||||
v-bind:left-text="$t('claim', [claimId])"
|
||||
v-bind:center-text="client.name"
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
v-bind="$props">
|
||||
</report-footer>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -8,9 +8,8 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<report-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
<report-header v-bind="$props"
|
||||
v-bind:company-code="ticket.companyCode">
|
||||
</report-header>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -238,11 +237,11 @@
|
|||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<report-footer id="pageFooter"
|
||||
v-bind:company-code="ticket.companyCode"
|
||||
v-bind:show-phytosanitary="true"
|
||||
v-bind:left-text="$t('ticket', [ticket.id])"
|
||||
v-bind:center-text="client.socialName"
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
v-bind="$props">
|
||||
</report-footer>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -57,8 +57,9 @@ module.exports = {
|
|||
`SELECT
|
||||
t.id,
|
||||
t.shipped,
|
||||
t.companyFk
|
||||
c.code companyCode
|
||||
FROM ticket t
|
||||
JOIN company c ON c.id = t.companyFk
|
||||
WHERE t.id = ?`, [ticketId]);
|
||||
},
|
||||
fetchAddress(ticketId) {
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
title: Delivery note
|
||||
ticketId: Delivery note
|
||||
clientId: Client
|
||||
deliveryAddress: Delivery address
|
||||
fiscalData: Fiscal data
|
||||
saleLines: Line items
|
||||
date: Date
|
||||
reference: Ref.
|
||||
quantity: Qty.
|
||||
concept: Concept
|
||||
price: PSP/u
|
||||
discount: Disc.
|
||||
vat: VAT
|
||||
amount: Amount
|
||||
type: Type
|
||||
taxBase: Tax base
|
||||
tax: Tax
|
||||
fee: Fee
|
||||
total: Total
|
||||
subtotal: Subtotal
|
||||
taxBreakdown: Tax breakdown
|
||||
packagings: Buckets and packaging
|
||||
services: Services
|
||||
vatType: VAT Type
|
||||
digitalSignature: Digital signature
|
||||
ticket: Delivery note {0}
|
|
@ -1,10 +1,10 @@
|
|||
title: Bon de livraison
|
||||
ticketId: Bon de livraison
|
||||
clientId: Client
|
||||
deliveryAddress: Addresse de livraison
|
||||
title: Albarán
|
||||
ticketId: Albarán
|
||||
clientId: Cliente
|
||||
deliveryAddress: Dirección de entrega
|
||||
fiscalData: Datos fiscales
|
||||
saleLines: Líneas de pedido
|
||||
date: Date
|
||||
date: Fecha
|
||||
reference: Ref.
|
||||
quantity: Cant.
|
||||
concept: Concepto
|
||||
|
@ -18,8 +18,8 @@ tax: Tasa
|
|||
fee: Cuota
|
||||
total: Total
|
||||
subtotal: Subtotal
|
||||
taxBreakdown: Répartition de la taxe
|
||||
packagings: Seaux et emballages
|
||||
taxBreakdown: Desglose impositivo
|
||||
packagings: Cubos y embalajes
|
||||
services: Servicios
|
||||
vatType: Tipo de IVA
|
||||
digitalSignature: Firma digital
|
||||
|
|
|
@ -8,10 +8,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<report-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</report-header>
|
||||
<report-header v-bind="$props"></report-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -161,8 +158,7 @@
|
|||
<div class="grid-block">
|
||||
<report-footer id="pageFooter"
|
||||
v-bind:left-text="$t('routeId', [route.id])"
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
v-bind="$props">
|
||||
</report-footer>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -8,10 +8,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<report-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</report-header>
|
||||
<report-header v-bind="$props"></report-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -91,8 +88,7 @@
|
|||
<report-footer id="pageFooter"
|
||||
v-bind:left-text="$t('client', [client.id])"
|
||||
v-bind:center-text="client.socialName"
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
v-bind="$props">
|
||||
</report-footer>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -8,10 +8,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<report-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</report-header>
|
||||
<report-header v-bind="$props"></report-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -44,8 +41,7 @@
|
|||
<report-footer id="pageFooter"
|
||||
v-bind:left-text="$t('client', [client.id])"
|
||||
v-bind:center-text="client.socialName"
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
v-bind="$props">
|
||||
</report-footer>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -8,10 +8,7 @@
|
|||
<!-- Header block -->
|
||||
<div class="grid-row">
|
||||
<div class="grid-block">
|
||||
<report-header
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
</report-header>
|
||||
<report-header v-bind="$props"></report-header>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Block -->
|
||||
|
@ -174,8 +171,7 @@
|
|||
<report-footer id="pageFooter"
|
||||
v-bind:left-text="$t('order', [supplier.mandateCode])"
|
||||
v-bind:center-text="client.socialName"
|
||||
v-bind:is-preview="isPreview"
|
||||
v-bind:locale="locale">
|
||||
v-bind="$props">
|
||||
</report-footer>
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue