feat: update instrastat.sql
gitea/salix/pipeline/head This commit looks good Details

This commit is contained in:
Vicent Llopis 2022-06-29 14:15:22 +02:00
parent 121efcca2f
commit 459a1fe518
3 changed files with 30 additions and 22 deletions

View File

@ -61,7 +61,8 @@ module.exports = Self => {
responseType: 'stream',
params: {
authorization: auth.id,
invoiceId: id
invoiceId: id,
refFk: invoiceOut.ref
}
}).then(async response => {
const issued = invoiceOut.issued;

View File

@ -10,7 +10,7 @@ module.exports = {
this.invoice = await this.fetchInvoice(this.invoiceId);
this.client = await this.fetchClient(this.invoiceId);
this.taxes = await this.fetchTaxes(this.invoiceId);
this.intrastat = await this.fetchIntrastat(this.invoiceId);
this.intrastat = await this.fetchIntrastat(this.refFk);
this.rectified = await this.fetchRectified(this.invoiceId);
this.hasIncoterms = await this.fetchHasIncoterms(this.invoiceId);
@ -80,8 +80,8 @@ module.exports = {
fetchTaxes(invoiceId) {
return this.rawSqlFromDef(`taxes`, [invoiceId]);
},
fetchIntrastat(invoiceId) {
return this.rawSqlFromDef(`intrastat`, [invoiceId]);
fetchIntrastat(refFk) {
return this.rawSqlFromDef(`intrastat`, [refFk, refFk, refFk]);
},
fetchRectified(invoiceId) {
return this.rawSqlFromDef(`rectified`, [invoiceId]);
@ -118,6 +118,9 @@ module.exports = {
invoiceId: {
type: [Number, String],
required: true
},
refFk: {
type: String
}
}
};

View File

@ -1,18 +1,22 @@
SELECT
ir.id AS code,
ir.description AS description,
CAST(SUM(IFNULL(i.stems,1) * s.quantity) AS DECIMAL(10,2)) as stems,
CAST(SUM(IF(sv.physicalWeight, sv.physicalWeight, i.density * sub.cm3delivery/1000000)) AS DECIMAL(10,2)) netKg,
CAST(SUM((s.quantity * s.price * (100 - s.discount) / 100 )) AS DECIMAL(10,2)) AS subtotal
FROM vn.sale s
LEFT JOIN (SELECT ic.itemFk, ic.cm3, ic.cm3delivery
FROM vn.itemCost ic
WHERE ic.cm3
GROUP BY ic.itemFk) sub ON s.itemFk = sub.itemFk
LEFT JOIN vn.saleVolume sv ON sv.saleFk = s.id
LEFT JOIN vn.ticket t ON t.id = s.ticketFk
LEFT JOIN vn.invoiceOut io ON io.ref = t.refFk
LEFT JOIN vn.item i ON i.id = s.itemFk
JOIN vn.intrastat ir ON ir.id = i.intrastatFk
WHERE io.id = ?
GROUP BY i.intrastatFk;
SELECT
ir.id code,
ir.description description,
CAST(SUM(IFNULL(i.stems, 1) * s.quantity) AS DECIMAL(10,2)) stems,
CAST(SUM(CAST(IFNULL(i.stems, 1) * s.quantity * IF(ic.grams, ic.grams, i.density * ic.cm3delivery / 1000) / 1000 AS DECIMAL(10,2)) *
IF(sub.weight, sub.weight / vn.invoiceOut_getWeight(?), 1)) AS DECIMAL(10,2)) netKg,
CAST(SUM((s.quantity * s.price * (100 - s.discount) / 100 )) AS DECIMAL(10,2)) subtotal
FROM vn.ticket t
JOIN vn.sale s ON s.ticketFk = t.id
JOIN vn.item i ON i.id = s.itemFk
JOIN vn.itemCost ic ON ic.itemFk = i.id AND ic.warehouseFk = t.warehouseFk
JOIN vn.intrastat ir ON ir.id = i.intrastatFk
LEFT JOIN (
SELECT t2.weight
FROM vn.ticket t2
WHERE refFk = ? AND weight
LIMIT 1
) sub ON TRUE
WHERE t.refFk = ?
AND i.intrastatFk
GROUP BY i.intrastatFk
ORDER BY i.intrastatFk;