fix: refs #7611 & ticket195937 incoterms #2613
|
@ -9,7 +9,7 @@ module.exports = {
|
||||||
this.checkMainEntity(this.invoice);
|
this.checkMainEntity(this.invoice);
|
||||||
this.client = await this.findOneFromDef('client', [this.reference]);
|
this.client = await this.findOneFromDef('client', [this.reference]);
|
||||||
this.incoterms =
|
this.incoterms =
|
||||||
await this.findOneFromDef('incoterms', [this.reference, this.reference, this.reference, this.reference]);
|
await this.findOneFromDef('incoterms', [this.reference]);
|
||||||
if (!this.incoterms)
|
if (!this.incoterms)
|
||||||
throw new UserError(`The address of the customer must have information about Incoterms and Customs Agent`);
|
throw new UserError(`The address of the customer must have information about Incoterms and Customs Agent`);
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,52 +1,31 @@
|
||||||
SELECT pack.packages,
|
WITH tickets AS(
|
||||||
a.incotermsFk,
|
SELECT id, packages, addressFk, weight
|
||||||
ic.name incotermsName,
|
FROM ticket
|
||||||
t.weight,
|
WHERE refFk= ?
|
||||||
ca.fiscalName customsAgentName,
|
), volume AS(
|
||||||
ca.street customsAgentStreet,
|
SELECT SUM(volume) volume
|
||||||
ca.nif customsAgentNif,
|
FROM tickets t
|
||||||
ca.phone customsAgentPhone,
|
JOIN vn.saleVolume sv ON sv.ticketFk = t.id
|
||||||
ca.email customsAgentEmail,
|
), intrastat AS(
|
||||||
CAST(vol.volume AS DECIMAL (10,2)) volume,
|
SELECT GROUP_CONCAT(DISTINCT ir.description ORDER BY ir.description SEPARATOR '. ' ) intrastat
|
||||||
intr.intrastat
|
FROM tickets t
|
||||||
FROM vn.invoiceOut io
|
JOIN vn.sale s ON t.id = s.ticketFk
|
||||||
JOIN vn.supplier su ON su.id = io.companyFk
|
JOIN vn.item i ON i.id = s.itemFk
|
||||||
JOIN vn.client c ON c.id = io.clientFk
|
JOIN vn.intrastat ir ON ir.id = i.intrastatFk
|
||||||
LEFT JOIN vn.province p ON p.id = c.provinceFk
|
)SELECT SUM(t.packages),
|
||||||
JOIN vn.ticket t ON t.refFk = io.ref
|
a.incotermsFk,
|
||||||
JOIN vn.address a ON a.id = t.addressFk
|
ic.name incotermsName,
|
||||||
JOIN vn.incoterms ic ON ic.code = a.incotermsFk
|
MAX(t.weight) weight,
|
||||||
LEFT JOIN vn.customsAgent ca ON ca.id = a.customsAgentFk
|
ca.fiscalName customsAgentName,
|
||||||
JOIN vn.sale s ON s.ticketFk = t.id
|
ca.street customsAgentStreet,
|
||||||
JOIN (
|
ca.nif customsAgentNif,
|
||||||
SELECT SUM(volume) volume, COUNT(*) packages
|
ca.phone customsAgentPhone,
|
||||||
FROM vn.invoiceOut io
|
ca.email customsAgentEmail,
|
||||||
JOIN vn.ticket t ON t.refFk = io.ref
|
CAST(v.volume AS DECIMAL (10,2)) volume,
|
||||||
JOIN vn.saleVolume sv ON sv.ticketFk = t.id
|
i.intrastat
|
||||||
WHERE t.refFk = ?
|
FROM tickets t
|
||||||
) vol
|
JOIN vn.address a ON a.id = t.addressFk
|
||||||
JOIN vn.itemTaxCountry itc ON itc.countryFk = su.countryFk
|
JOIN vn.incoterms ic ON ic.code = a.incotermsFk
|
||||||
AND itc.itemFk = s.itemFk
|
LEFT JOIN vn.customsAgent ca ON ca.id = a.customsAgentFk
|
||||||
JOIN vn.taxClass tc ON tc.id = itc.taxClassFk
|
JOIN volume v
|
||||||
JOIN vn.invoiceOutSerial ios ON ios.code = io.serial
|
JOIN intrastat i
|
||||||
AND ios.taxAreaFk = 'WORLD'
|
|
||||||
JOIN vn.country cty ON cty.id = c.countryFk
|
|
||||||
JOIN vn.payMethod pm ON pm.id = c .payMethodFk
|
|
||||||
JOIN vn.company co ON co.id=io.companyFk
|
|
||||||
JOIN vn.supplierAccount sa ON sa.id=co.supplierAccountFk
|
|
||||||
JOIN (
|
|
||||||
SELECT GROUP_CONCAT(DISTINCT ir.description ORDER BY ir.description SEPARATOR '. ' ) intrastat
|
|
||||||
FROM vn.ticket t
|
|
||||||
JOIN vn.invoiceOut io ON io.ref = t.refFk
|
|
||||||
JOIN vn.sale s ON t.id = s.ticketFk
|
|
||||||
JOIN vn.item i ON i.id = s.itemFk
|
|
||||||
JOIN vn.intrastat ir ON ir.id = i.intrastatFk
|
|
||||||
WHERE t.refFk = ?
|
|
||||||
) intr
|
|
||||||
JOIN (
|
|
||||||
SELECT SUM(packages) packages
|
|
||||||
FROM ticket
|
|
||||||
WHERE refFk = ?
|
|
||||||
) pack
|
|
||||||
WHERE t.refFk = ?
|
|
||||||
LIMIT 1
|
|
||||||
|
|
Loading…
Reference in New Issue