50 lines
1.7 KiB
SQL
50 lines
1.7 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticketMissed_List`(vTicketFk INT)
|
|
BEGIN
|
|
|
|
DECLARE vParkingFk INT;
|
|
DECLARE vParked DATETIME;
|
|
DECLARE vLevel INT;
|
|
DECLARE vCollectionFk INT;
|
|
|
|
SELECT IFNULL(`level`,0), IFNULL(collectionFk,0)
|
|
INTO vLevel, vCollectionFk
|
|
FROM vn.ticketCollection
|
|
WHERE ticketFk = vTicketFk
|
|
LIMIT 1;
|
|
|
|
SELECT created, parkingFk
|
|
INTO vParked, vParkingFk
|
|
FROM vn.ticketParking
|
|
WHERE ticketFk = vTicketFk;
|
|
|
|
SELECT tp.ticketFk, CONCAT(tc.collectionFk, ' - ', tc.level) coleccion, tp.created, p.code, am.name as Agencia
|
|
FROM vn.ticketParking tp
|
|
JOIN vn.parking p ON p.id = tp.parkingFk
|
|
JOIN vn.sector sc ON sc.id = p.sectorFk
|
|
LEFT JOIN vn.ticketCollection tc ON tc.ticketFk = tp.ticketFk
|
|
JOIN vn.ticketStateToday tst ON tst.ticketFk = tp.ticketFk
|
|
JOIN vn.ticket t ON t.id = tp.ticketFk
|
|
JOIN vn.zone z ON z.id = t.zoneFk
|
|
JOIN vn.agencyMode am ON am.id = z.agencyModeFk
|
|
JOIN vn.state s ON s.id = tst.state
|
|
WHERE (s.alertLevel < 2
|
|
AND tp.parkingFk = vParkingFk
|
|
AND sc.isPackagingArea
|
|
AND (
|
|
(
|
|
( IFNULL(tc.collectionFk,-1) != IFNULL(@vCollectionFk,0) AND tp.created < vParked )
|
|
OR
|
|
( tc.collectionFk = vCollectionFk AND LEFT(tc.level,1) < LEFT(vLevel,1) )
|
|
)
|
|
)) -- Etiquetas que no se han escaneado y ya estamos con una posterior
|
|
OR
|
|
(s.alertLevel > 1
|
|
AND tp.parkingFk = vParkingFk
|
|
AND sc.isPackagingArea
|
|
AND tp.created < vParked
|
|
AND t.packages <=> 0);
|
|
|
|
END$$
|
|
DELIMITER ;
|