40 lines
1.2 KiB
MySQL
40 lines
1.2 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`expedition_getFromRoute`(vRouteFk INT)
|
||
|
BEGIN
|
||
|
/**
|
||
|
* Obtiene las expediciones a partir de una ruta
|
||
|
* @param vRouteFk Id de la ruta
|
||
|
*/
|
||
|
SELECT e.id,
|
||
|
e.ticketFk,
|
||
|
t.routeFk,
|
||
|
ts.alertLevel,
|
||
|
a.street,
|
||
|
a.city,
|
||
|
a.postalCode,
|
||
|
t.addressFk,
|
||
|
a.nickname,
|
||
|
sub2.itemPackingTypeConcat,
|
||
|
est.code
|
||
|
FROM expedition e
|
||
|
JOIN ticket t ON t.id = e.ticketFk
|
||
|
JOIN ticketState ts ON ts.ticketFk = e.ticketFk
|
||
|
JOIN address a ON t.addressFk = a.id
|
||
|
JOIN route r ON r.id = t.routeFk
|
||
|
LEFT JOIN warehouse w ON t.warehouseFk = w.id
|
||
|
LEFT JOIN (SELECT sub.ticketFk,
|
||
|
CONCAT('(', GROUP_CONCAT(DISTINCT sub.itemPackingTypeFk ORDER BY sub.items DESC SEPARATOR ','), ') ') itemPackingTypeConcat
|
||
|
FROM (SELECT s.ticketFk , i.itemPackingTypeFk, COUNT(*) items
|
||
|
FROM ticket t
|
||
|
JOIN sale s ON s.ticketFk = t.id
|
||
|
JOIN item i ON i.id = s.itemFk
|
||
|
WHERE t.routeFk = vRouteFk
|
||
|
GROUP BY t.id,i.itemPackingTypeFk)sub
|
||
|
GROUP BY sub.ticketFk
|
||
|
) sub2 ON sub2.ticketFk = t.id
|
||
|
LEFT JOIN expeditionStateType est ON est.id = e.stateTypeFk
|
||
|
WHERE t.routeFk = vRouteFk AND e.freightItemFk <> FALSE
|
||
|
ORDER BY r.created, t.priority DESC;
|
||
|
END$$
|
||
|
DELIMITER ;
|