Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix into 1788-remove_autoload_vnTable
gitea/salix/pipeline/head There was a failure building this commit
Details
gitea/salix/pipeline/head There was a failure building this commit
Details
This commit is contained in:
commit
79e6871775
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
|
@ -22,7 +22,8 @@ module.exports = Self => {
|
||||||
async function claimIsEditable(ctx) {
|
async function claimIsEditable(ctx) {
|
||||||
const loopBackContext = LoopBackContext.getCurrentContext();
|
const loopBackContext = LoopBackContext.getCurrentContext();
|
||||||
const httpCtx = {req: loopBackContext.active};
|
const httpCtx = {req: loopBackContext.active};
|
||||||
const isEditable = await Self.app.models.Claim.isEditable(httpCtx, ctx.where.id);
|
const claimBeginning = await Self.findById(ctx.where.id);
|
||||||
|
const isEditable = await Self.app.models.Claim.isEditable(httpCtx, claimBeginning.claimFk);
|
||||||
|
|
||||||
if (!isEditable)
|
if (!isEditable)
|
||||||
throw new UserError(`The current claim can't be modified`);
|
throw new UserError(`The current claim can't be modified`);
|
||||||
|
|
|
@ -22,16 +22,25 @@ class Controller extends Section {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
set salesClaimed(value) {
|
get claim() {
|
||||||
this._salesClaimed = value;
|
return this._claim;
|
||||||
|
}
|
||||||
|
|
||||||
|
set claim(value) {
|
||||||
|
this._claim = value;
|
||||||
|
|
||||||
if (value) {
|
if (value) {
|
||||||
this.calculateTotals();
|
|
||||||
this.isClaimEditable();
|
this.isClaimEditable();
|
||||||
this.isTicketEditable();
|
this.isTicketEditable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set salesClaimed(value) {
|
||||||
|
this._salesClaimed = value;
|
||||||
|
|
||||||
|
if (value) this.calculateTotals();
|
||||||
|
}
|
||||||
|
|
||||||
get salesClaimed() {
|
get salesClaimed() {
|
||||||
return this._salesClaimed;
|
return this._salesClaimed;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
url="Clients/consumption"
|
url="Clients/consumption"
|
||||||
link="{clientFk: $ctrl.$params.id}"
|
link="{clientFk: $ctrl.$params.id}"
|
||||||
filter="::$ctrl.filter"
|
filter="::$ctrl.filter"
|
||||||
|
limit="20"
|
||||||
user-params="::$ctrl.filterParams"
|
user-params="::$ctrl.filterParams"
|
||||||
data="sales"
|
data="sales"
|
||||||
order="itemTypeFk, itemName, itemSize">
|
order="itemTypeFk, itemName, itemSize">
|
||||||
|
|
|
@ -51,7 +51,7 @@ module.exports = Self => {
|
||||||
|
|
||||||
stmt = new ParameterizedSQL(
|
stmt = new ParameterizedSQL(
|
||||||
`SELECT t.id AS ticketFk, c.id AS clientFk, c.name AS clientName, tw.weekDay,
|
`SELECT t.id AS ticketFk, c.id AS clientFk, c.name AS clientName, tw.weekDay,
|
||||||
wh.name AS warehouseName, u.id AS workerFk, u.nickName, tw.agencyModeFk
|
wh.name AS warehouseName, u.id AS workerFk, u.name AS userName, u.nickName, tw.agencyModeFk
|
||||||
FROM ticketWeekly tw
|
FROM ticketWeekly tw
|
||||||
JOIN ticket t ON t.id = tw.ticketFk
|
JOIN ticket t ON t.id = tw.ticketFk
|
||||||
JOIN client c ON c.id = t.clientFk
|
JOIN client c ON c.id = t.clientFk
|
||||||
|
|
|
@ -4,6 +4,6 @@ describe('ticket getTaxes()', () => {
|
||||||
it('should return the tax of a given ticket', async() => {
|
it('should return the tax of a given ticket', async() => {
|
||||||
let result = await app.models.Ticket.getTaxes(1);
|
let result = await app.models.Ticket.getTaxes(1);
|
||||||
|
|
||||||
expect(result[0].tax).toEqual(77.54);
|
expect(result[0].tax).toEqual(7.1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -189,28 +189,26 @@
|
||||||
"state": "ticket.weekly.index",
|
"state": "ticket.weekly.index",
|
||||||
"component": "vn-ticket-weekly-index",
|
"component": "vn-ticket-weekly-index",
|
||||||
"description": "Weekly tickets"
|
"description": "Weekly tickets"
|
||||||
}, {
|
|
||||||
"url": "/request",
|
|
||||||
"state": "ticket.card.request",
|
|
||||||
"abstract": true,
|
|
||||||
"component": "ui-view"
|
|
||||||
}, {
|
}, {
|
||||||
"url": "/service",
|
"url": "/service",
|
||||||
"state": "ticket.card.service",
|
"state": "ticket.card.service",
|
||||||
"component": "vn-ticket-service",
|
"component": "vn-ticket-service",
|
||||||
"description": "Service"
|
"description": "Service"
|
||||||
|
}, {
|
||||||
|
"url": "/request",
|
||||||
|
"state": "ticket.card.request",
|
||||||
|
"abstract": true,
|
||||||
|
"component": "ui-view"
|
||||||
}, {
|
}, {
|
||||||
"url" : "/index",
|
"url" : "/index",
|
||||||
"state": "ticket.card.request.index",
|
"state": "ticket.card.request.index",
|
||||||
"component": "vn-ticket-request-index",
|
"component": "vn-ticket-request-index",
|
||||||
"description": "Purchase request",
|
"description": "Purchase request"
|
||||||
"acl": ["salesPerson"]
|
|
||||||
}, {
|
}, {
|
||||||
"url" : "/create",
|
"url" : "/create",
|
||||||
"state": "ticket.card.request.create",
|
"state": "ticket.card.request.create",
|
||||||
"component": "vn-ticket-request-create",
|
"component": "vn-ticket-request-create",
|
||||||
"description": "New purchase request",
|
"description": "New purchase request"
|
||||||
"acl": ["salesPerson"]
|
|
||||||
}, {
|
}, {
|
||||||
"url": "/create?clientFk",
|
"url": "/create?clientFk",
|
||||||
"state": "ticket.create",
|
"state": "ticket.create",
|
||||||
|
|
|
@ -18,13 +18,13 @@
|
||||||
</vn-portal>
|
</vn-portal>
|
||||||
<vn-data-viewer
|
<vn-data-viewer
|
||||||
model="model"
|
model="model"
|
||||||
class="vn-w-md vn-mb-xl">
|
class="vn-w-xl">
|
||||||
<vn-card>
|
<vn-card>
|
||||||
<vn-table model="model">
|
<vn-table model="model">
|
||||||
<vn-thead>
|
<vn-thead>
|
||||||
<vn-tr>
|
<vn-tr>
|
||||||
<vn-th field="ticketFk" number>Ticket ID</vn-th>
|
<vn-th field="ticketFk" number>Ticket ID</vn-th>
|
||||||
<vn-th field="weekDay">Client</vn-th>
|
<vn-th field="clientName">Client</vn-th>
|
||||||
<vn-th>Weekday</vn-th>
|
<vn-th>Weekday</vn-th>
|
||||||
<vn-th>Agency</vn-th>
|
<vn-th>Agency</vn-th>
|
||||||
<vn-th>Warehouse</vn-th>
|
<vn-th>Warehouse</vn-th>
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
</span>
|
</span>
|
||||||
</vn-td>
|
</vn-td>
|
||||||
<vn-td vn-click-stop>
|
<vn-td vn-click-stop>
|
||||||
<vn-autocomplete
|
<vn-autocomplete
|
||||||
vn-id="weekday"
|
vn-id="weekday"
|
||||||
ng-model="weekly.weekDay"
|
ng-model="weekly.weekDay"
|
||||||
data="$ctrl.weekdays"
|
data="$ctrl.weekdays"
|
||||||
|
@ -82,7 +82,7 @@
|
||||||
<span
|
<span
|
||||||
vn-click-stop="workerDescriptor.show($event, weekly.workerFk)"
|
vn-click-stop="workerDescriptor.show($event, weekly.workerFk)"
|
||||||
class="link" >
|
class="link" >
|
||||||
{{::weekly.nickName}}
|
{{::weekly.userName}}
|
||||||
</span>
|
</span>
|
||||||
</vn-td>
|
</vn-td>
|
||||||
<vn-td shrink>
|
<vn-td shrink>
|
||||||
|
|
|
@ -3,4 +3,5 @@ Weekly tickets: Tickets programados
|
||||||
You are going to delete this weekly ticket: Vas a eliminar este ticket programado
|
You are going to delete this weekly ticket: Vas a eliminar este ticket programado
|
||||||
This ticket will be removed from weekly tickets! Continue anyway?: Este ticket se eliminará de tickets programados! ¿Continuar de todas formas?
|
This ticket will be removed from weekly tickets! Continue anyway?: Este ticket se eliminará de tickets programados! ¿Continuar de todas formas?
|
||||||
Search weekly ticket by id or client id: Busca tickets programados por el identificador o el identificador del cliente
|
Search weekly ticket by id or client id: Busca tickets programados por el identificador o el identificador del cliente
|
||||||
Search by weekly ticket: Buscar por tickets programados
|
Search by weekly ticket: Buscar por tickets programados
|
||||||
|
weekDay: Dia
|
|
@ -157,22 +157,6 @@ table {
|
||||||
border-spacing: 0;
|
border-spacing: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Prevent page break fix
|
|
||||||
*/
|
|
||||||
tbody {
|
|
||||||
page-break-inside: avoid;
|
|
||||||
break-inside: avoid;
|
|
||||||
display: block;
|
|
||||||
width: 100%
|
|
||||||
}
|
|
||||||
|
|
||||||
thead, tbody tr {
|
|
||||||
table-layout: fixed;
|
|
||||||
display: table;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row-oriented, .column-oriented {
|
.row-oriented, .column-oriented {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
width: 100%
|
width: 100%
|
||||||
|
@ -188,6 +172,7 @@ thead, tbody tr {
|
||||||
}
|
}
|
||||||
|
|
||||||
.column-oriented thead {
|
.column-oriented thead {
|
||||||
|
display: table-header-group;
|
||||||
background-color: #e5e5e5
|
background-color: #e5e5e5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,18 +182,24 @@ thead, tbody tr {
|
||||||
background-color: #e5e5e5
|
background-color: #e5e5e5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.column-oriented tfoot {
|
||||||
|
display: table-row-group;
|
||||||
|
page-break-inside: avoid;
|
||||||
|
break-inside: avoid;
|
||||||
|
}
|
||||||
|
|
||||||
.column-oriented tbody {
|
.column-oriented tbody {
|
||||||
border-bottom: 1px solid #DDD;
|
border-bottom: 1px solid #DDD;
|
||||||
}
|
}
|
||||||
|
|
||||||
.column-oriented tfoot {
|
|
||||||
border-top: 2px solid #808080;
|
|
||||||
}
|
|
||||||
|
|
||||||
.column-oriented tfoot tr:first-child td {
|
.column-oriented tfoot tr:first-child td {
|
||||||
padding-top: 20px !important;
|
padding-top: 20px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.column-oriented tfoot tr:first-child {
|
||||||
|
border-top: 2px solid #808080;
|
||||||
|
}
|
||||||
|
|
||||||
.column-oriented .description {
|
.column-oriented .description {
|
||||||
font-size: 0.8em
|
font-size: 0.8em
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
body {
|
body {
|
||||||
zoom: 0.53
|
zoom: 0.70;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
font-weight: 100;
|
font-weight: 100;
|
||||||
margin-top: 0;
|
font-size: 2em;
|
||||||
font-size: 2em
|
margin-top: 0
|
||||||
}
|
}
|
|
@ -13,10 +13,14 @@
|
||||||
},
|
},
|
||||||
"pdf": {
|
"pdf": {
|
||||||
"format": "A4",
|
"format": "A4",
|
||||||
"border": "1.5cm",
|
"margin": {
|
||||||
"footer": {
|
"top": "1.5cm",
|
||||||
"height": "55px"
|
"right": "1.5cm",
|
||||||
}
|
"bottom": "3cm",
|
||||||
|
"left": "1.5cm"
|
||||||
|
},
|
||||||
|
"displayHeaderFooter": true,
|
||||||
|
"printBackground": true
|
||||||
},
|
},
|
||||||
"mysql": {
|
"mysql": {
|
||||||
"host": "localhost",
|
"host": "localhost",
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
footer {
|
.footer {
|
||||||
font-family: "Roboto", "Helvetica", "Arial", sans-serif;
|
font-family: "Roboto", "Helvetica", "Arial", sans-serif;
|
||||||
font-size: 0.55em;
|
margin-left: 2cm;
|
||||||
|
margin-right: 2cm;
|
||||||
|
font-size: 10px;
|
||||||
color: #555;
|
color: #555;
|
||||||
zoom: 0.65
|
zoom: 0.65
|
||||||
}
|
}
|
||||||
|
|
||||||
footer, footer p {
|
.footer p {
|
||||||
text-align: center
|
text-align: center
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,12 +15,20 @@ p.privacy {
|
||||||
font-size: 0.8em
|
font-size: 0.8em
|
||||||
}
|
}
|
||||||
|
|
||||||
footer .page {
|
.footer .page {
|
||||||
border-bottom: 2px solid #CCC;
|
border-bottom: 2px solid #CCC;
|
||||||
padding-bottom: 2px
|
padding-bottom: 2px
|
||||||
}
|
}
|
||||||
|
|
||||||
footer .page > section {
|
.page .centerText {
|
||||||
|
text-align: center
|
||||||
|
}
|
||||||
|
|
||||||
|
.page .pageCount {
|
||||||
|
text-align: right
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer .page > div {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 33%
|
width: 33%
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
numPages: Page {{page}} of {{pages}}
|
numPages: Page <span class="pageNumber"></span> of <span class="totalPages"></span>
|
||||||
law:
|
law:
|
||||||
privacy: 'In compliance with the provisions of Organic Law 15/1999, on the
|
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
|
Protection of Personal Data, we inform you that the personal data you provide
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
numPages: Página {{page}} de {{pages}}
|
numPages: Página <span class="pageNumber"></span> de <span class="totalPages"></span>
|
||||||
law:
|
law:
|
||||||
privacy: En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección
|
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
|
de Datos de Carácter Personal, le comunicamos que los datos personales que facilite
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
numPages: Page {{page}} de {{pages}}
|
numPages: Page <span class="pageNumber"></span> de <span class="totalPages"></span>
|
||||||
law:
|
law:
|
||||||
privacy: Conformément aux dispositions de la loi organique 15/1999 sur la protection
|
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
|
des données personnelles, nous vous informons que les données personnelles que
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
numPages: Página {{page}} de {{pages}}
|
numPages: Página <span class="pageNumber"></span> de <span class="totalPages"></span>
|
||||||
law:
|
law:
|
||||||
privacy: Em cumprimento do disposto na lei Orgânica 15/1999, de Protecção de Dados
|
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
|
de Carácter Pessoal, comunicamos que os dados pessoais que facilite se incluirão
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
<footer>
|
<div>
|
||||||
<section class="page">
|
<div class="footer">
|
||||||
<section v-if="leftText">{{leftText}}</section>
|
<div class="page">
|
||||||
<section v-if="centerText" class="uppercase">{{centerText}}</section>
|
<div class="leftText" v-if="leftText">{{leftText}}</div>
|
||||||
<section class="number">{{$t('numPages')}}</section>
|
<div class="centerText" v-if="centerText" class="uppercase">{{centerText}}</div>
|
||||||
</section>
|
<div class="pageCount" v-html="$t('numPages')"></div>
|
||||||
<p class="phytosanitary" v-if="showPhytosanitary">{{phytosanitary}}</p>
|
</div>
|
||||||
<p class="privacy" v-html="$t('law.privacy')"></p>
|
<p class="phytosanitary" v-if="showPhytosanitary">{{phytosanitary}}</p>
|
||||||
</footer>
|
<p class="privacy" v-html="$t('law.privacy')"></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
|
@ -4,7 +4,7 @@ header {
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 0.55em;
|
font-size: 12px;
|
||||||
color: #555
|
color: #555
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const pdf = require('html-pdf');
|
const puppeteer = require('puppeteer');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const config = require('./config');
|
const config = require('./config');
|
||||||
const Component = require('./component');
|
const Component = require('./component');
|
||||||
|
@ -20,18 +20,36 @@ class Report extends Component {
|
||||||
|
|
||||||
async toPdfStream() {
|
async toPdfStream() {
|
||||||
const template = await this.render();
|
const template = await this.render();
|
||||||
let options = config.pdf;
|
const defaultOptions = Object.assign({}, config.pdf);
|
||||||
|
|
||||||
const optionsPath = `${this.path}/options.json`;
|
const optionsPath = `${this.path}/options.json`;
|
||||||
const fullPath = path.resolve(__dirname, optionsPath);
|
const fullPath = path.resolve(__dirname, optionsPath);
|
||||||
|
let options = defaultOptions;
|
||||||
if (fs.existsSync(fullPath))
|
if (fs.existsSync(fullPath))
|
||||||
options = Object.assign(options, require(optionsPath));
|
options = require(optionsPath);
|
||||||
|
|
||||||
return new Promise(resolve => {
|
const browser = await puppeteer.launch({headless: true});
|
||||||
pdf.create(template, options).toStream((err, stream) => {
|
const page = await browser.newPage();
|
||||||
resolve(stream);
|
await page.setContent(template);
|
||||||
});
|
|
||||||
});
|
const element = await page.$('#pageFooter');
|
||||||
|
|
||||||
|
let footer = '\n';
|
||||||
|
if (element) {
|
||||||
|
footer = await page.evaluate(el => {
|
||||||
|
const html = el.innerHTML;
|
||||||
|
el.remove();
|
||||||
|
return html;
|
||||||
|
}, element);
|
||||||
|
}
|
||||||
|
|
||||||
|
options.headerTemplate = '\n';
|
||||||
|
options.footerTemplate = footer;
|
||||||
|
|
||||||
|
const buffer = await page.pdf(options);
|
||||||
|
await browser.close();
|
||||||
|
|
||||||
|
return buffer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,7 @@ module.exports = app => {
|
||||||
|
|
||||||
res.setHeader('Content-type', 'application/pdf');
|
res.setHeader('Content-type', 'application/pdf');
|
||||||
res.setHeader('Content-Disposition', `inline; filename="${fileName}"`);
|
res.setHeader('Content-Disposition', `inline; filename="${fileName}"`);
|
||||||
|
res.end(stream);
|
||||||
stream.pipe(res);
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
next(error);
|
next(error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,11 +6,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<!-- Header block -->
|
<!-- Header block -->
|
||||||
<div class="grid-row">
|
<report-header v-bind="$props"></report-header>
|
||||||
<div class="grid-block">
|
|
||||||
<report-header v-bind="$props"></report-header>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Block -->
|
<!-- Block -->
|
||||||
<div class="grid-row">
|
<div class="grid-row">
|
||||||
<div class="grid-block">
|
<div class="grid-block">
|
||||||
|
@ -93,15 +89,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Footer block -->
|
<!-- Footer block -->
|
||||||
<div class="grid-row">
|
<report-footer id="pageFooter"
|
||||||
<div class="grid-block">
|
v-bind:left-text="$t('client', [client.id])"
|
||||||
<report-footer id="pageFooter"
|
v-bind:center-text="client.socialName"
|
||||||
v-bind:left-text="$t('client', [client.id])"
|
v-bind="$props">
|
||||||
v-bind:center-text="client.socialName"
|
</report-footer>
|
||||||
v-bind="$props">
|
|
||||||
</report-footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -6,11 +6,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<!-- Header block -->
|
<!-- Header block -->
|
||||||
<div class="grid-row">
|
<report-header v-bind="$props"></report-header>
|
||||||
<div class="grid-block">
|
|
||||||
<report-header v-bind="$props"></report-header>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Block -->
|
<!-- Block -->
|
||||||
<div class="grid-row">
|
<div class="grid-row">
|
||||||
<div class="grid-block">
|
<div class="grid-block">
|
||||||
|
@ -85,15 +81,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Footer block -->
|
<!-- Footer block -->
|
||||||
<div class="grid-row">
|
<report-footer id="pageFooter"
|
||||||
<div class="grid-block">
|
v-bind:left-text="$t('claim', [claimId])"
|
||||||
<report-footer id="pageFooter"
|
v-bind:center-text="client.name"
|
||||||
v-bind:left-text="$t('claim', [claimId])"
|
v-bind="$props">
|
||||||
v-bind:center-text="client.name"
|
</report-footer>
|
||||||
v-bind="$props">
|
|
||||||
</report-footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -6,13 +6,9 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<!-- Header block -->
|
<!-- Header block -->
|
||||||
<div class="grid-row">
|
<report-header v-bind="$props"
|
||||||
<div class="grid-block">
|
v-bind:company-code="ticket.companyCode">
|
||||||
<report-header v-bind="$props"
|
</report-header>
|
||||||
v-bind:company-code="ticket.companyCode">
|
|
||||||
</report-header>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Block -->
|
<!-- Block -->
|
||||||
<div class="grid-row">
|
<div class="grid-row">
|
||||||
<div class="grid-block">
|
<div class="grid-block">
|
||||||
|
@ -241,17 +237,13 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Footer block -->
|
<!-- Footer block -->
|
||||||
<div class="grid-row">
|
<report-footer id="pageFooter"
|
||||||
<div class="grid-block">
|
v-bind:company-code="ticket.companyCode"
|
||||||
<report-footer id="pageFooter"
|
v-bind:show-phytosanitary="true"
|
||||||
v-bind:company-code="ticket.companyCode"
|
v-bind:left-text="$t('ticket', [ticket.id])"
|
||||||
v-bind:show-phytosanitary="true"
|
v-bind:center-text="client.socialName"
|
||||||
v-bind:left-text="$t('ticket', [ticket.id])"
|
v-bind="$props">
|
||||||
v-bind:center-text="client.socialName"
|
</report-footer>
|
||||||
v-bind="$props">
|
|
||||||
</report-footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -6,11 +6,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<!-- Header block -->
|
<!-- Header block -->
|
||||||
<div class="grid-row">
|
<report-header v-bind="$props"></report-header>
|
||||||
<div class="grid-block">
|
|
||||||
<report-header v-bind="$props"></report-header>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Block -->
|
<!-- Block -->
|
||||||
<div class="grid-row">
|
<div class="grid-row">
|
||||||
<div class="grid-block">
|
<div class="grid-block">
|
||||||
|
@ -154,14 +150,10 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Footer block -->
|
<!-- Footer block -->
|
||||||
<div class="grid-row">
|
<report-footer id="pageFooter"
|
||||||
<div class="grid-block">
|
v-bind:left-text="$t('routeId', [route.id])"
|
||||||
<report-footer id="pageFooter"
|
v-bind="$props">
|
||||||
v-bind:left-text="$t('routeId', [route.id])"
|
</report-footer>
|
||||||
v-bind="$props">
|
|
||||||
</report-footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -6,13 +6,9 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<!-- Header block -->
|
<!-- Header block -->
|
||||||
<div class="grid-row">
|
<report-header v-bind="$props"
|
||||||
<div class="grid-block">
|
v-bind:company-code="entry.companyCode">
|
||||||
<report-header v-bind="$props"
|
</report-header>
|
||||||
v-bind:company-code="entry.companyCode">
|
|
||||||
</report-header>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Block -->
|
<!-- Block -->
|
||||||
<div class="grid-row">
|
<div class="grid-row">
|
||||||
<div class="grid-block">
|
<div class="grid-block">
|
||||||
|
@ -126,16 +122,12 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Footer block -->
|
<!-- Footer block -->
|
||||||
<div class="grid-row">
|
<report-footer id="pageFooter"
|
||||||
<div class="grid-block">
|
v-bind:left-text="$t('entry', [entry.id])"
|
||||||
<report-footer id="pageFooter"
|
v-bind:company-code="entry.companyCode"
|
||||||
v-bind:left-text="$t('entry', [entry.id])"
|
v-bind:center-text="supplier.name"
|
||||||
v-bind:company-code="entry.companyCode"
|
v-bind:="$props">
|
||||||
v-bind:center-text="supplier.name"
|
</report-footer>
|
||||||
v-bind:="$props">
|
|
||||||
</report-footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
{
|
{
|
||||||
"format": "A4",
|
|
||||||
"orientation": "landscape",
|
|
||||||
"width": "10.4cm",
|
"width": "10.4cm",
|
||||||
"height": "4.8cm",
|
"height": "4.8cm",
|
||||||
"border": "0cm",
|
"margin": {
|
||||||
"footer": {
|
"top": "0cm",
|
||||||
"height": "0"
|
"right": "0cm",
|
||||||
}
|
"bottom": "0cm",
|
||||||
|
"left": "0cm"
|
||||||
|
},
|
||||||
|
"printBackground": true
|
||||||
}
|
}
|
|
@ -6,11 +6,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<!-- Header block -->
|
<!-- Header block -->
|
||||||
<div class="grid-row">
|
<report-header v-bind="$props"></report-header>
|
||||||
<div class="grid-block">
|
|
||||||
<report-header v-bind="$props"></report-header>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Block -->
|
<!-- Block -->
|
||||||
<div class="grid-row">
|
<div class="grid-row">
|
||||||
<div class="grid-block">
|
<div class="grid-block">
|
||||||
|
@ -74,24 +70,23 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td class="number"><strong class="pull-left">Total</strong> {{getTotalDebtOut()}}</td>
|
<td class="number">
|
||||||
<td class="number">{{getTotalDebtIn()}}</td>
|
<strong class="pull-left">Total</strong>
|
||||||
<td class="number">{{totalBalance}}</td>
|
{{getTotalDebtOut() | currency('EUR', $i18n.locale)}}
|
||||||
|
</td>
|
||||||
|
<td class="number">{{getTotalDebtIn() | currency('EUR', $i18n.locale)}}</td>
|
||||||
|
<td class="number">{{totalBalance | currency('EUR', $i18n.locale)}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Footer block -->
|
<!-- Footer block -->
|
||||||
<div class="grid-row">
|
<report-footer id="pageFooter"
|
||||||
<div class="grid-block">
|
v-bind:left-text="$t('client', [client.id])"
|
||||||
<report-footer id="pageFooter"
|
v-bind:center-text="client.socialName"
|
||||||
v-bind:left-text="$t('client', [client.id])"
|
v-bind="$props">
|
||||||
v-bind:center-text="client.socialName"
|
</report-footer>
|
||||||
v-bind="$props">
|
|
||||||
</report-footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -6,11 +6,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<!-- Header block -->
|
<!-- Header block -->
|
||||||
<div class="grid-row">
|
<report-header v-bind="$props"></report-header>
|
||||||
<div class="grid-block">
|
|
||||||
<report-header v-bind="$props"></report-header>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Block -->
|
<!-- Block -->
|
||||||
<div class="grid-row">
|
<div class="grid-row">
|
||||||
<div class="grid-block">
|
<div class="grid-block">
|
||||||
|
@ -36,15 +32,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Footer block -->
|
<!-- Footer block -->
|
||||||
<div class="grid-row">
|
<report-footer id="pageFooter"
|
||||||
<div class="grid-block">
|
v-bind:left-text="$t('client', [client.id])"
|
||||||
<report-footer id="pageFooter"
|
v-bind:center-text="client.socialName"
|
||||||
v-bind:left-text="$t('client', [client.id])"
|
v-bind="$props">
|
||||||
v-bind:center-text="client.socialName"
|
</report-footer>
|
||||||
v-bind="$props">
|
|
||||||
</report-footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -6,11 +6,7 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<!-- Header block -->
|
<!-- Header block -->
|
||||||
<div class="grid-row">
|
<report-header v-bind="$props"></report-header>
|
||||||
<div class="grid-block">
|
|
||||||
<report-header v-bind="$props"></report-header>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Block -->
|
<!-- Block -->
|
||||||
<div class="grid-row">
|
<div class="grid-row">
|
||||||
<div class="grid-block">
|
<div class="grid-block">
|
||||||
|
@ -166,15 +162,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Footer block -->
|
<!-- Footer block -->
|
||||||
<div class="grid-row">
|
<report-footer id="pageFooter"
|
||||||
<div class="grid-block">
|
v-bind:left-text="$t('order', [supplier.mandateCode])"
|
||||||
<report-footer id="pageFooter"
|
v-bind:center-text="client.socialName"
|
||||||
v-bind:left-text="$t('order', [supplier.mandateCode])"
|
v-bind="$props">
|
||||||
v-bind:center-text="client.socialName"
|
</report-footer>
|
||||||
v-bind="$props">
|
|
||||||
</report-footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
Loading…
Reference in New Issue