267 lines
13 KiB
HTML
267 lines
13 KiB
HTML
<report-body v-bind="$props">
|
|
<invoice-incoterms v-if="hasIncoterms" v-bind="$props"> </invoice-incoterms>
|
|
<template v-slot:header>
|
|
<report-header v-bind="$props" v-bind:company-code="invoice.companyCode"></report-header>
|
|
</template>
|
|
<div class="grid-row">
|
|
<div class="grid-block">
|
|
<div class="columns vn-mb-lg">
|
|
<div class="size50">
|
|
<div class="size75 vn-mt-ml">
|
|
<h1 class="title uppercase">{{$t('title')}}</h1>
|
|
<table class="row-oriented ticket-info">
|
|
<tbody>
|
|
<tr>
|
|
<td class="font gray uppercase">{{$t('clientId')}}</td>
|
|
<th>{{client.id}}</th>
|
|
</tr>
|
|
<tr>
|
|
<td class="font gray uppercase">{{$t('invoice')}}</td>
|
|
<th>{{invoice.ref}}</th>
|
|
</tr>
|
|
<tr>
|
|
<td class="font gray uppercase">{{$t('date')}}</td>
|
|
<th>{{formatDate(invoice.issued, '%d-%m-%Y')}}</th>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="size50">
|
|
<div class="panel">
|
|
<div class="header">{{$t('invoiceData')}}</div>
|
|
<div class="body">
|
|
<h3 class="uppercase">{{client.socialName}}</h3>
|
|
<div>{{client.postalAddress}}</div>
|
|
<div>{{client.postcodeCity}}</div>
|
|
<div>{{$t('fiscalId')}}: {{client.fi}}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="size100 no-page-break" v-if="rectified.length > 0">
|
|
<h2>{{$t('rectifiedInvoices')}}</h2>
|
|
<table class="column-oriented">
|
|
<thead>
|
|
<tr>
|
|
<th>{{$t('invoice')}}</th>
|
|
<th>{{$t('issued')}}</th>
|
|
<th class="number">{{$t('amount')}}</th>
|
|
<th width="50%">{{$t('description')}}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr v-for="row in rectified">
|
|
<td>{{row.ref}}</td>
|
|
<td>{{formatDate(row.issued, '%d-%m-%Y')}}</td>
|
|
<td class="number">{{row.amount | currency('EUR', $i18n.locale)}}</td>
|
|
<td width="50%">{{row.description}}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="vn-mt-lg" v-for="ticket in tickets">
|
|
<div class="table-title clearfix">
|
|
<div class="pull-left">
|
|
<h2>{{$t('deliveryNote')}}</h2>
|
|
</div>
|
|
<div class="pull-left vn-mr-md">
|
|
<div class="field rectangle">
|
|
<span>{{ticket.id}}</span>
|
|
</div>
|
|
</div>
|
|
<div class="pull-left">
|
|
<h2>{{$t('shipped')}}</h2>
|
|
</div>
|
|
<div class="pull-left">
|
|
<div class="field rectangle">
|
|
<span>{{formatDate(ticket.shipped, '%d-%m-%Y')}}</span>
|
|
</div>
|
|
</div>
|
|
<span id="nickname" class="pull-right">
|
|
<h2>{{ticket.nickname}}</h2>
|
|
</span>
|
|
</div>
|
|
<table class="column-oriented">
|
|
<thead>
|
|
<tr>
|
|
<th width="5%">{{$t('reference')}}</th>
|
|
<th class="number">{{$t('quantity')}}</th>
|
|
<th width="50%">{{$t('concept')}}</th>
|
|
<th class="number">{{$t('price')}}</th>
|
|
<th class="centered" width="5%">{{$t('discount')}}</th>
|
|
<th class="centered">{{$t('vat')}}</th>
|
|
<th class="number">{{$t('amount')}}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody v-for="sale in ticket.sales" class="no-page-break">
|
|
<tr>
|
|
<td width="5%">{{sale.itemFk}}</td>
|
|
<td class="number">{{sale.quantity}}</td>
|
|
<td width="50%">{{sale.concept}}</td>
|
|
<td class="number">{{sale.price | currency('EUR', $i18n.locale)}}</td>
|
|
<td class="centered" width="5%">{{(sale.discount / 100) | percentage}}</td>
|
|
<td class="centered">{{sale.vatType}}</td>
|
|
<td class="number">{{saleImport(sale) | currency('EUR', $i18n.locale)}}</td>
|
|
</tr>
|
|
<tr class="description font light-gray">
|
|
<td colspan="7">
|
|
<span v-if="sale.value5"> <strong>{{sale.tag5}}</strong> {{sale.value5}} </span>
|
|
<span v-if="sale.value6"> <strong>{{sale.tag6}}</strong> {{sale.value6}} </span>
|
|
<span v-if="sale.value7"> <strong>{{sale.tag7}}</strong> {{sale.value7}} </span>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
<tfoot>
|
|
<tr>
|
|
<td colspan="6" class="font bold">
|
|
<span class="pull-right">{{$t('subtotal')}}</span>
|
|
</td>
|
|
<td class="number">{{ticketSubtotal(ticket) | currency('EUR', $i18n.locale)}}</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="columns vn-mt-xl">
|
|
<div id="taxes" class="size50 pull-right no-page-break" v-if="taxes">
|
|
<table class="column-oriented">
|
|
<thead>
|
|
<tr>
|
|
<th colspan="4">{{$t('taxBreakdown')}}</th>
|
|
</tr>
|
|
</thead>
|
|
<thead class="light">
|
|
<tr>
|
|
<th width="45%">{{$t('type')}}</th>
|
|
<th width="25%" class="number">{{$t('taxBase')}}</th>
|
|
<th>{{$t('tax')}}</th>
|
|
<th class="number">{{$t('fee')}}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr v-for="tax in taxes">
|
|
<td width="45%">{{tax.name}}</td>
|
|
<td width="25%" class="number">{{tax.base | currency('EUR', $i18n.locale)}}</td>
|
|
<td>{{tax.vatPercent | percentage}}</td>
|
|
<td class="number">{{tax.vat | currency('EUR', $i18n.locale)}}</td>
|
|
</tr>
|
|
</tbody>
|
|
<tfoot>
|
|
<tr class="font bold">
|
|
<td width="45%">{{$t('subtotal')}}</td>
|
|
<td width="20%" class="number">
|
|
{{sumTotal(taxes, 'base') | currency('EUR', $i18n.locale)}}
|
|
</td>
|
|
<td></td>
|
|
<td class="number">{{sumTotal(taxes, 'vat') | currency('EUR', $i18n.locale)}}</td>
|
|
</tr>
|
|
<tr class="font bold">
|
|
<td colspan="2">{{$t('total')}}</td>
|
|
<td colspan="2" class="number">{{taxTotal | currency('EUR', $i18n.locale)}}</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
|
|
<div class="panel" v-if="invoice.footNotes">
|
|
<div class="header">{{$t('notes')}}</div>
|
|
<div class="body">
|
|
<span>{{invoice.footNotes}}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="phytosanitary" class="size50 pull-left no-page-break">
|
|
<div class="panel">
|
|
<div class="body">
|
|
<div class="flag">
|
|
<div class="columns">
|
|
<div class="size25">
|
|
<img v-bind:src="getReportSrc('europe.png')" />
|
|
</div>
|
|
<div class="size75 flag-text"><strong>{{$t('plantPassport')}}</strong><br /></div>
|
|
</div>
|
|
</div>
|
|
<div class="phytosanitary-info">
|
|
<div>
|
|
<strong>A</strong>
|
|
<span>{{botanical}}</span>
|
|
</div>
|
|
<div>
|
|
<strong>B</strong>
|
|
<span>ES17462130</span>
|
|
</div>
|
|
<div>
|
|
<strong>C</strong>
|
|
<span>{{ticketsId}}</span>
|
|
</div>
|
|
<div>
|
|
<strong>D</strong>
|
|
<span>ES</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="size100 no-page-break" v-if="hasIntrastat">
|
|
<h2>{{$t('intrastat')}}</h2>
|
|
<table class="column-oriented">
|
|
<thead>
|
|
<tr>
|
|
<th>{{$t('code')}}</th>
|
|
<th width="50%">{{$t('description')}}</th>
|
|
<th class="number">{{$t('stems')}}</th>
|
|
<th class="number">{{$t('netKg')}}</th>
|
|
<th class="number">{{$t('amount')}}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr v-for="row in intrastat">
|
|
<td>{{row.code}}</td>
|
|
<td width="50%">{{row.description || $t('services') }}</td>
|
|
<td class="number">{{row.stems | number($i18n.locale)}}</td>
|
|
<td class="number">{{row.netKg | number($i18n.locale)}}</td>
|
|
<td class="number">{{row.subtotal | currency('EUR', $i18n.locale)}}</td>
|
|
</tr>
|
|
</tbody>
|
|
<tfoot>
|
|
<tr>
|
|
<td colspan="2"></td>
|
|
<td class="number">
|
|
<strong>{{sumTotal(intrastat, 'stems') | number($i18n.locale)}}</strong>
|
|
</td>
|
|
<td class="number">
|
|
<strong>{{sumTotal(intrastat, 'netKg') | number($i18n.locale)}}</strong>
|
|
</td>
|
|
<td class="number">
|
|
<strong>{{sumTotal(intrastat, 'subtotal') | currency('EUR', $i18n.locale)}}</strong>
|
|
</td>
|
|
</tr>
|
|
</tfoot>
|
|
</table>
|
|
</div>
|
|
<div class="columns vn-mt-xl" v-if="invoice.payMethodCode == 'wireTransfer' && invoice.iban">
|
|
<div class="size50 pull-left no-page-break">
|
|
<div class="panel">
|
|
<div class="header">{{$t('observations')}}</div>
|
|
<div class="body">
|
|
<div>{{$t('wireTransfer')}}</div>
|
|
<div>{{$t('accountNumber', [invoice.iban])}}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<template v-slot:footer>
|
|
<report-footer
|
|
id="pageFooter"
|
|
v-bind:company-code="invoice.companyCode"
|
|
v-bind:left-text="$t('invoiceRef', [invoice.ref])"
|
|
v-bind:center-text="client.socialName"
|
|
v-bind="$props"
|
|
>
|
|
</report-footer>
|
|
</template>
|
|
</report-body>
|