109 lines
2.9 KiB
SQL
109 lines
2.9 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`travel_getDetailFromContinent`(
|
|
vContinentFk INT
|
|
)
|
|
BEGIN
|
|
/**
|
|
* Devuelve los detalles de los vuelos que tienen
|
|
* un almacén de salida de un continente.
|
|
*
|
|
* @param vContinentFk Id de continente
|
|
*/
|
|
DECLARE vDateFrom DATE DEFAULT util.VN_CURDATE() - INTERVAL 12 WEEK;
|
|
SELECT IFNULL(CONCAT(" ", entryFk), travelFk) travelAndEntry,
|
|
sub.*
|
|
FROM (
|
|
SELECT tr.id travelFk,
|
|
NULL entryFk,
|
|
TRUE isTravel,
|
|
am.name agency,
|
|
tr.ref,
|
|
tr.shipped,
|
|
wOut.name originBoxes,
|
|
tr.landed,
|
|
wIn.name destination,
|
|
SUM(b.stickers) stickers,
|
|
NULL evaNotes,
|
|
tr.kg,
|
|
CAST(SUM(b.weight * b.stickers) AS INT) loadedkg,
|
|
CAST(
|
|
SUM(vc.aerealVolumetricDensity *
|
|
b.stickers *
|
|
IF(p.volume,
|
|
p.volume,
|
|
p.width * p.depth * p.height
|
|
) / 1000000
|
|
) AS INT
|
|
) volumeKg,
|
|
NULL loadPriority,
|
|
NULL invoiceAmount,
|
|
s.nickname freighter,
|
|
NULL reference
|
|
FROM travel tr
|
|
LEFT JOIN supplier s ON s.id = tr.cargoSupplierFk
|
|
LEFT JOIN entry e ON e.travelFk = tr.id
|
|
LEFT JOIN buy b ON b.entryFk = e.id
|
|
LEFT JOIN packaging p ON p.id = b.packagingFk
|
|
LEFT JOIN item i ON i.id = b.itemFk
|
|
LEFT JOIN itemType it ON it.id = i.typeFk
|
|
JOIN warehouse wIn ON wIn.id = tr.warehouseInFk
|
|
JOIN warehouse wOut ON wOut.id = tr.warehouseOutFk
|
|
JOIN country co ON co.id = wOut.countryFk
|
|
JOIN agencyMode am ON am.id = tr.agencyModeFk
|
|
JOIN volumeConfig vc
|
|
WHERE tr.landed >= vDateFrom
|
|
AND co.continentFk = vContinentFk
|
|
GROUP BY tr.id
|
|
UNION ALL
|
|
SELECT e.travelFk,
|
|
e.id,
|
|
FALSE,
|
|
s.name,
|
|
e.invoiceNumber,
|
|
tr.shipped,
|
|
wOut.name,
|
|
tr.landed,
|
|
wIn.name,
|
|
SUM(b.stickers),
|
|
e.evaNotes,
|
|
NULL,
|
|
CAST(SUM(b.weight * b.stickers) AS INT),
|
|
CAST(
|
|
SUM(vc.aerealVolumetricDensity *
|
|
b.stickers *
|
|
IF(p.volume,
|
|
p.volume,
|
|
p.width * p.depth * p.height
|
|
) / 1000000
|
|
) AS INT
|
|
),
|
|
loadPriority,
|
|
e.invoiceAmount,
|
|
s2.nickname,
|
|
e.reference
|
|
FROM entry e
|
|
JOIN buy b ON b.entryFk = e.id
|
|
JOIN packaging p ON p.id = b.packagingFk
|
|
JOIN item i ON i.id = b.itemFk
|
|
JOIN itemType it ON it.id = i.typeFk
|
|
JOIN supplier s ON s.id = e.supplierFk
|
|
JOIN travel tr ON tr.id = e.travelFk
|
|
LEFT JOIN supplier s2 ON s2.id = tr.cargoSupplierFk
|
|
JOIN warehouse wIn ON wIn.id = tr.warehouseInFk
|
|
JOIN warehouse wOut ON wOut.id = tr.warehouseOutFk
|
|
JOIN country co ON co.id = wOut.countryFk
|
|
JOIN volumeConfig vc
|
|
WHERE tr.landed >= vDateFrom
|
|
AND co.continentFk = vContinentFk
|
|
GROUP BY e.id
|
|
) sub
|
|
ORDER BY landed ASC,
|
|
shipped ASC,
|
|
travelFk,
|
|
isTravel DESC,
|
|
(loadPriority > 0) DESC,
|
|
loadPriority,
|
|
agency,
|
|
evaNotes;
|
|
END$$
|
|
DELIMITER ; |