Updated delivery note
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
This commit is contained in:
parent
21a2ba25b4
commit
5ecd589106
|
@ -442,13 +442,13 @@ INSERT INTO `vn`.`supplierAccount`(`id`, `supplierFk`, `iban`, `bankEntityFk`)
|
||||||
VALUES
|
VALUES
|
||||||
(241, 442, 'ES111122333344111122221111', 128);
|
(241, 442, 'ES111122333344111122221111', 128);
|
||||||
|
|
||||||
INSERT INTO `vn`.`company`(`id`, `code`, `supplierAccountFk`, `workerManagerFk`, `companyCode`, `sage200Company`, `expired`)
|
INSERT INTO `vn`.`company`(`id`, `code`, `supplierAccountFk`, `workerManagerFk`, `companyCode`, `sage200Company`, `expired`, `phytosanitary`)
|
||||||
VALUES
|
VALUES
|
||||||
(69 , 'CCs', NULL, 30, NULL, 0, NULL),
|
(69 , 'CCs', NULL, 30, NULL, 0, NULL, NULL),
|
||||||
(442 , 'VNL', 241, 30, 2 , 1, NULL),
|
(442 , 'VNL', 241, 30, 2 , 1, NULL, 'VNL Company - Plant passport'),
|
||||||
(567 , 'VNH', NULL, 30, NULL, 4, NULL),
|
(567 , 'VNH', NULL, 30, NULL, 4, NULL, 'VNH Company - Plant passport'),
|
||||||
(791 , 'FTH', NULL, 30, NULL, 3, '2015-11-30'),
|
(791 , 'FTH', NULL, 30, NULL, 3, '2015-11-30', NULL),
|
||||||
(1381, 'ORN', NULL, 30, NULL, 7, NULL);
|
(1381, 'ORN', NULL, 30, NULL, 7, NULL, 'ORN Company - Plant passport');
|
||||||
|
|
||||||
INSERT INTO `vn`.`invoiceOut`(`id`, `serial`, `amount`, `issued`,`clientFk`, `created`, `companyFk`, `dued`, `booked`, `bankFk`, `hasPdf`)
|
INSERT INTO `vn`.`invoiceOut`(`id`, `serial`, `amount`, `issued`,`clientFk`, `created`, `companyFk`, `dued`, `booked`, `bankFk`, `hasPdf`)
|
||||||
VALUES
|
VALUES
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.grid {
|
.grid {
|
||||||
font-family: Arial, sans-serif;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
font-size: 16px !important;
|
font-size: 16px !important;
|
||||||
width: 100%
|
width: 100%
|
||||||
}
|
}
|
||||||
|
@ -63,7 +63,6 @@
|
||||||
.panel {
|
.panel {
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
padding-top: 10px;
|
|
||||||
break-inside: avoid;
|
break-inside: avoid;
|
||||||
break-before: always;
|
break-before: always;
|
||||||
break-after: always;
|
break-after: always;
|
||||||
|
@ -72,10 +71,11 @@
|
||||||
.panel .header {
|
.panel .header {
|
||||||
background-color: #FFF;
|
background-color: #FFF;
|
||||||
padding: 2.5px 10px;
|
padding: 2.5px 10px;
|
||||||
position: absolute;
|
position: relative;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
top: 0px;
|
display: inline-block;
|
||||||
left: 17.5px;
|
left: 17.5px;
|
||||||
|
top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.panel .body {
|
.panel .body {
|
||||||
|
@ -168,18 +168,22 @@ table {
|
||||||
|
|
||||||
.column-oriented td,
|
.column-oriented td,
|
||||||
.column-oriented th {
|
.column-oriented th {
|
||||||
padding: 5px 10px
|
padding: 10px
|
||||||
}
|
}
|
||||||
|
|
||||||
.column-oriented thead {
|
.column-oriented thead {
|
||||||
display: table-header-group;
|
display: table-header-group
|
||||||
background-color: #e5e5e5
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.column-oriented thead tr {
|
.column-oriented thead tr {
|
||||||
border-bottom: 1px solid #808080;
|
border-top: 1px solid #AFB1B2;
|
||||||
border-top: 1px solid #808080;
|
background-color: #BABDBD;
|
||||||
background-color: #e5e5e5
|
border-bottom: 1px solid #AFB1B2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column-oriented thead.light tr {
|
||||||
|
background-color: #FFF;
|
||||||
|
color: #AFB1B2
|
||||||
}
|
}
|
||||||
|
|
||||||
.column-oriented tfoot {
|
.column-oriented tfoot {
|
||||||
|
@ -193,13 +197,10 @@ table {
|
||||||
}
|
}
|
||||||
|
|
||||||
.column-oriented tfoot tr:first-child td {
|
.column-oriented tfoot tr:first-child td {
|
||||||
|
border-top: 2px solid #AFB1B2;
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,6 @@ body {
|
||||||
.title {
|
.title {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
font-weight: 100;
|
font-weight: 100;
|
||||||
font-size: 2em;
|
font-size: 3em;
|
||||||
margin-top: 0
|
margin-top: 0
|
||||||
}
|
}
|
|
@ -4,4 +4,5 @@ require('./uppercase');
|
||||||
require('./currency');
|
require('./currency');
|
||||||
require('./percentage');
|
require('./percentage');
|
||||||
require('./number');
|
require('./number');
|
||||||
|
require('./zerofill');
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
const {KeyValueModel} = require('loopback');
|
||||||
|
const Vue = require('vue');
|
||||||
|
|
||||||
|
const zerofill = function(value, pad) {
|
||||||
|
const valueStr = String(value);
|
||||||
|
return pad.substring(0, pad.length - valueStr.length) + valueStr;
|
||||||
|
};
|
||||||
|
|
||||||
|
Vue.filter('zerofill', zerofill);
|
||||||
|
|
||||||
|
module.exports = zerofill;
|
|
@ -9,15 +9,32 @@
|
||||||
max-width: 150px
|
max-width: 150px
|
||||||
}
|
}
|
||||||
|
|
||||||
.description.phytosanitary {
|
.description strong {
|
||||||
background-color: #e5e5e5
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
|
|
||||||
h3 {
|
h2 {
|
||||||
font-weight: 100;
|
font-weight: 100;
|
||||||
color: #555
|
color: #555
|
||||||
}
|
}
|
||||||
|
|
||||||
.ticket-info {
|
.ticket-info {
|
||||||
font-size: 20px
|
font-size: 26px
|
||||||
|
}
|
||||||
|
|
||||||
|
#phytosanitary {
|
||||||
|
padding-right: 10px
|
||||||
|
}
|
||||||
|
|
||||||
|
#phytosanitary .flag img {
|
||||||
|
width: 100%
|
||||||
|
}
|
||||||
|
|
||||||
|
#phytosanitary .flag .flag-text {
|
||||||
|
padding-left: 10px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.phytosanitary-info {
|
||||||
|
margin-top: 10px
|
||||||
}
|
}
|
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
|
@ -14,7 +14,7 @@
|
||||||
<div class="grid-block">
|
<div class="grid-block">
|
||||||
<div class="columns">
|
<div class="columns">
|
||||||
<div class="size50">
|
<div class="size50">
|
||||||
<div class="size75">
|
<div class="size75 vn-mt-lg">
|
||||||
<h1 class="title uppercase">{{$t('title')}}</h1>
|
<h1 class="title uppercase">{{$t('title')}}</h1>
|
||||||
<table class="row-oriented ticket-info">
|
<table class="row-oriented ticket-info">
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -66,59 +66,46 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Sales block -->
|
<!-- Sales block -->
|
||||||
<h3>{{$t('saleLines')}}</h3>
|
<h2>{{$t('saleLines')}}</h2>
|
||||||
<table class="column-oriented">
|
<table class="column-oriented">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{$t('reference')}}</td>
|
<th width="5%">{{$t('reference')}}</th>
|
||||||
<td class="number">{{$t('quantity')}}</td>
|
<th class="number">{{$t('quantity')}}</th>
|
||||||
<td width="50%">{{$t('concept')}}</td>
|
<th width="50%">{{$t('concept')}}</th>
|
||||||
<td class="number">{{$t('price')}}</td>
|
<th class="number">{{$t('price')}}</th>
|
||||||
<td class="centered">{{$t('discount')}}</td>
|
<th class="centered" width="5%">{{$t('discount')}}</th>
|
||||||
<td class="centered">{{$t('vat')}}</td>
|
<th class="centered">{{$t('vat')}}</th>
|
||||||
<td class="number">{{$t('amount')}}</td>
|
<th class="number">{{$t('amount')}}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody v-for="sale in sales">
|
<tbody v-for="sale in sales" class="no-page-break">
|
||||||
<tr class="font bold">
|
<tr>
|
||||||
<td>{{sale.itemFk}}</td>
|
<td width="5%">{{sale.itemFk | zerofill('000000')}}</td>
|
||||||
<td class="number">{{sale.quantity}}</td>
|
<td class="number">{{sale.quantity}}</td>
|
||||||
<td width="50%">{{sale.concept}}</td>
|
<td width="50%">{{sale.concept}}</td>
|
||||||
<td class="number">{{sale.price | currency('EUR', $i18n.locale)}}</td>
|
<td class="number">{{sale.price | currency('EUR', $i18n.locale)}}</td>
|
||||||
<td class="centered">{{(sale.discount / 100) | percentage}}</td>
|
<td class="centered" width="5%">{{(sale.discount / 100) | percentage}}</td>
|
||||||
<td class="centered">{{sale.vatType}}</td>
|
<td class="centered">{{sale.vatType}}</td>
|
||||||
<td class="number">{{sale.price * sale.quantity * (1 - sale.discount / 100) | currency('EUR', $i18n.locale)}}</td>
|
<td class="number">{{sale.price * sale.quantity * (1 - sale.discount / 100) | currency('EUR', $i18n.locale)}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="description">
|
<tr class="description font light-gray">
|
||||||
<td colspan="2" class="centered">
|
|
||||||
<div v-if="sale.value5">
|
|
||||||
<strong class="font gray">{{sale.tag5}}</strong>
|
|
||||||
<span>{{sale.value5}}</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td colspan="3" class="centered">
|
|
||||||
<div v-if="sale.value6">
|
|
||||||
<strong class="font gray">{{sale.tag6}}</strong>
|
|
||||||
<span>{{sale.value6}}</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td colspan="2" class="centered">
|
|
||||||
<div v-if="sale.value7">
|
|
||||||
<strong class="font gray">{{sale.tag7}}</strong>
|
|
||||||
<span>{{sale.value7}}</span>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="description phytosanitary" v-if="sale.passportNumber">
|
|
||||||
<td colspan="7">
|
<td colspan="7">
|
||||||
{{sale.ediBotanic}} {{sale.denomination}} {{sale.countryCode}}-{{sale.passportNumber}}
|
<span v-if="sale.value5">
|
||||||
<span v-if="sale.isProtectedZone">ZP</span>
|
<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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
<tfoot>
|
<tfoot>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="6">
|
<td colspan="6" class="font bold">
|
||||||
<span class="pull-right">{{$t('subtotal')}}</span>
|
<span class="pull-right">{{$t('subtotal')}}</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="number">{{getSubTotal() | currency('EUR', $i18n.locale)}}</td>
|
<td class="number">{{getSubTotal() | currency('EUR', $i18n.locale)}}</td>
|
||||||
|
@ -130,52 +117,89 @@
|
||||||
<div class="columns">
|
<div class="columns">
|
||||||
<!-- Services block-->
|
<!-- Services block-->
|
||||||
<div class="size100 no-page-break" v-if="services.length > 0">
|
<div class="size100 no-page-break" v-if="services.length > 0">
|
||||||
<h3>{{$t('services')}}</h3>
|
<h2>{{$t('services')}}</h2>
|
||||||
<table class="column-oriented">
|
<table class="column-oriented">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{$t('concept')}}</td>
|
<th width="5%"></th>
|
||||||
<td class="number">{{$t('quantity')}}</td>
|
<th class="number">{{$t('quantity')}}</th>
|
||||||
<td>{{$t('vatType')}}</td>
|
<th width="50%">{{$t('concept')}}</th>
|
||||||
<td class="number">{{$t('amount')}}</td>
|
<th class="number">{{$t('price')}}</th>
|
||||||
|
<th class="centered" width="5%"></th>
|
||||||
|
<th class="centered">{{$t('vat')}}</th>
|
||||||
|
<th class="number">{{$t('amount')}}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr v-for="service in services">
|
<tr v-for="service in services">
|
||||||
<td>{{service.description}}</td>
|
<td width="5%"></td>
|
||||||
<td class="number">{{service.quantity}}</td>
|
<td class="number">{{service.quantity}}</td>
|
||||||
<td>{{service.taxDescription}}</td>
|
<td width="50%">{{service.description}}</td>
|
||||||
|
<td class="number">{{service.price | currency('EUR', $i18n.locale)}}</td>
|
||||||
|
<td class="centered" width="5%"></td>
|
||||||
|
<td class="centered">{{service.taxDescription}}</td>
|
||||||
<td class="number">{{service.price | currency('EUR', $i18n.locale)}}</td>
|
<td class="number">{{service.price | currency('EUR', $i18n.locale)}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
<tfoot>
|
<tfoot>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="3"></td>
|
<td colspan="6" class="font bold">
|
||||||
<td class="number">{{$t('total')}} {{serviceTotal | currency('EUR', $i18n.locale)}}</td>
|
<span class="pull-right">{{$t('subtotal')}}</span>
|
||||||
|
</td>
|
||||||
|
<td class="number">{{serviceTotal | currency('EUR', $i18n.locale)}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- End of services block -->
|
<!-- End of services block -->
|
||||||
|
</div>
|
||||||
<!-- Taxes block -->
|
<div class="columns">
|
||||||
<div id="taxes" class="size50 pull-right no-page-break" v-if="taxes">
|
<!-- Packages block -->
|
||||||
<h3>{{$t('taxBreakdown')}}</h3>
|
<div id="packagings" class="size100 no-page-break" v-if="packagings.length > 0">
|
||||||
|
<h2>{{$t('packagings')}}</h2>
|
||||||
<table class="column-oriented">
|
<table class="column-oriented">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<td width="45%">{{$t('type')}}</td>
|
<th>{{$t('reference')}}</th>
|
||||||
<td width="20%" class="number">
|
<th class="number">{{$t('quantity')}}</th>
|
||||||
|
<th wihth="75%">{{$t('concept')}}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr v-for="packaging in packagings">
|
||||||
|
<td>{{packaging.itemFk | zerofill('000000')}}</td>
|
||||||
|
<td class="number">{{packaging.quantity}}</td>
|
||||||
|
<td width="85%">{{packaging.name}}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- End of packages block -->
|
||||||
|
</div>
|
||||||
|
<div class="columns vn-mt-xl">
|
||||||
|
<!-- Taxes block -->
|
||||||
|
<div id="taxes" class="size50 pull-right no-page-break" v-if="taxes">
|
||||||
|
<!-- <h2>{{$t('taxBreakdown')}}</h2> -->
|
||||||
|
<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')}}
|
{{$t('taxBase')}}
|
||||||
</td>
|
</th>
|
||||||
<td>{{$t('tax')}}</td>
|
<th>{{$t('tax')}}</th>
|
||||||
<td class="number">{{$t('fee')}}</td>
|
<th class="number">{{$t('fee')}}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr v-for="tax in taxes">
|
<tr v-for="tax in taxes">
|
||||||
<td width="45%">{{tax.name}}</td>
|
<td width="45%">{{tax.name}}</td>
|
||||||
<td width="20%" class="number">
|
<td width="25%" class="number">
|
||||||
{{tax.Base | currency('EUR', $i18n.locale)}}
|
{{tax.Base | currency('EUR', $i18n.locale)}}
|
||||||
</td>
|
</td>
|
||||||
<td>{{tax.vatPercent | percentage}}</td>
|
<td>{{tax.vatPercent | percentage}}</td>
|
||||||
|
@ -200,28 +224,45 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- End of taxes block -->
|
<!-- End of taxes block -->
|
||||||
|
|
||||||
<!-- Packages block -->
|
<!-- Phytosanitary block -->
|
||||||
<div id="packagings" class="size100 no-page-break" v-if="packagings.length > 0">
|
<div id="phytosanitary" class="size50 pull-left no-page-break">
|
||||||
<h3>{{$t('packagings')}}</h3>
|
<div class="panel">
|
||||||
<table class="column-oriented">
|
<div class="body">
|
||||||
<thead>
|
<div class="flag">
|
||||||
<tr>
|
<div class="columns">
|
||||||
<td>Id</td>
|
<div class="size25">
|
||||||
<td>{{$t('concept')}}</td>
|
<img v-bind:src="getReportSrc('europe.png')"/>
|
||||||
<td class="number">{{$t('quantity')}}</td>
|
</div>
|
||||||
</tr>
|
<div class="size75 flag-text">
|
||||||
</thead>
|
<strong>Pasaporte fitosanitario</strong><br/>
|
||||||
<tbody>
|
<strong>Plant passport</strong>
|
||||||
<tr v-for="packaging in packagings">
|
</div>
|
||||||
<td>{{packaging.itemFk}}</td>
|
</div>
|
||||||
<td>{{packaging.name}}</td>
|
</div>
|
||||||
<td class="number">{{packaging.quantity}}</td>
|
<div class="phytosanitary-info">
|
||||||
</tr>
|
<div>
|
||||||
</tbody>
|
<strong>A</strong>
|
||||||
</table>
|
<span>{{getBotanical()}}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<strong>B</strong>
|
||||||
|
<span>ES17462130</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<strong>C</strong>
|
||||||
|
<span>{{ticket.id}}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<strong>D</strong>
|
||||||
|
<span>ES</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- End of packages block -->
|
<!-- End of phytosanitary block -->
|
||||||
|
</div>
|
||||||
|
<div class="columns">
|
||||||
<!-- Signature block -->
|
<!-- Signature block -->
|
||||||
<div class="size50 pull-left no-page-break">
|
<div class="size50 pull-left no-page-break">
|
||||||
<div id="signature" class="panel" v-if="signature && signature.id">
|
<div id="signature" class="panel" v-if="signature && signature.id">
|
||||||
|
|
|
@ -95,6 +95,22 @@ module.exports = {
|
||||||
},
|
},
|
||||||
getTotal() {
|
getTotal() {
|
||||||
return this.getTotalBase() + this.getTotalTax();
|
return this.getTotalBase() + this.getTotalTax();
|
||||||
|
},
|
||||||
|
getBotanical() {
|
||||||
|
let phytosanitary = [];
|
||||||
|
this.sales.forEach(sale => {
|
||||||
|
let itemPhytosanitary;
|
||||||
|
if (sale.latinGenusName || sale.latinSpeciesName)
|
||||||
|
itemPhytosanitary = [sale.latinGenusName, sale.latinSpeciesName].filter(Boolean).join(' ');
|
||||||
|
else if (sale.botanical)
|
||||||
|
itemPhytosanitary = sale.botanical;
|
||||||
|
|
||||||
|
phytosanitary.push(itemPhytosanitary);
|
||||||
|
});
|
||||||
|
|
||||||
|
return phytosanitary.filter((item, index) =>
|
||||||
|
phytosanitary.indexOf(item) == index
|
||||||
|
).join(', ');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|
|
@ -14,10 +14,9 @@ SELECT
|
||||||
i.inkFk,
|
i.inkFk,
|
||||||
s.ticketFk,
|
s.ticketFk,
|
||||||
tcl.code vatType,
|
tcl.code vatType,
|
||||||
ibwg.ediBotanic,
|
ib.botanical,
|
||||||
ppa.denomination,
|
eg.latinGenusName,
|
||||||
pp.number passportNumber,
|
es.latinSpeciesName,
|
||||||
be.isProtectedZone, c.code AS countryCode,
|
|
||||||
i.tag5,
|
i.tag5,
|
||||||
i.value5,
|
i.value5,
|
||||||
i.tag6,
|
i.tag6,
|
||||||
|
@ -34,20 +33,14 @@ FROM vn.sale s
|
||||||
LEFT JOIN country c ON c.id = o.countryFk
|
LEFT JOIN country c ON c.id = o.countryFk
|
||||||
LEFT JOIN supplier sp ON sp.id = t.companyFk
|
LEFT JOIN supplier sp ON sp.id = t.companyFk
|
||||||
LEFT JOIN itemType it ON it.id = i.typeFk
|
LEFT JOIN itemType it ON it.id = i.typeFk
|
||||||
|
LEFT JOIN itemCategory ic ON ic.id = it.categoryFk
|
||||||
LEFT JOIN itemTaxCountry itc ON itc.itemFk = i.id
|
LEFT JOIN itemTaxCountry itc ON itc.itemFk = i.id
|
||||||
AND itc.countryFk = sp.countryFk
|
AND itc.countryFk = sp.countryFk
|
||||||
LEFT JOIN taxClass tcl ON tcl.id = itc.taxClassFk
|
LEFT JOIN taxClass tcl ON tcl.id = itc.taxClassFk
|
||||||
LEFT JOIN plantpassport pp ON pp.producerFk = i.producerFk
|
LEFT JOIN itemBotanical ib ON ib.itemFk = i.id
|
||||||
LEFT JOIN plantpassportAuthority ppa ON ppa.id = pp.plantpassportAuthorityFk
|
AND ic.code = 'plant'
|
||||||
LEFT JOIN itemBotanicalWithGenus ibwg ON ibwg.itemFk = i.id
|
LEFT JOIN ediGenus eg ON eg.id = ib.genusFk
|
||||||
LEFT JOIN botanicExport be ON be.restriction = 'pasaporte fitosanitario'
|
LEFT JOIN ediSpecie es ON es.id = ib.specieFk
|
||||||
LEFT JOIN ediGenus eg ON eg.id = be.ediGenusFk
|
|
||||||
LEFT JOIN ediSpecie es ON es.id = be.ediSpecieFk
|
|
||||||
AND ibwg.ediBotanic LIKE CONCAT(
|
|
||||||
IFNULL(eg.latinGenusName, ''),
|
|
||||||
IF(es.latinSpeciesName > '',
|
|
||||||
CONCAT(' ', es.latinSpeciesName), ''),
|
|
||||||
'%')
|
|
||||||
WHERE s.ticketFk = ?
|
WHERE s.ticketFk = ?
|
||||||
GROUP BY s.id
|
GROUP BY s.id
|
||||||
ORDER BY (it.isPackaging), s.concept, s.itemFk
|
ORDER BY (it.isPackaging), s.concept, s.itemFk
|
|
@ -1,5 +1,5 @@
|
||||||
SELECT
|
SELECT
|
||||||
tc.description taxDescription,
|
tc.code taxDescription,
|
||||||
ts.description,
|
ts.description,
|
||||||
ts.quantity,
|
ts.quantity,
|
||||||
ts.price
|
ts.price
|
||||||
|
|
Loading…
Reference in New Issue