DELIMITER $$ CREATE OR REPLACE DEFINER=`vn`@`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 ;