DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`itemShelving_inventory`(vParkingFromFk VARCHAR(8), vParkingToFk VARCHAR(8)) BEGIN /** * Devuelve un listado de ubicaciones a revisar * * @param vParkingFromFk Parking de partida, identificador de parking * @param vParkingToFk Parking de llegada, identificador de parking */ DECLARE vSectorFk INT; DECLARE vPickingOrderFrom INT; DECLARE vPickingOrderTo INT; SELECT p.sectorFk, p.pickingOrder INTO vSectorFk, vPickingOrderFrom FROM vn.parking p WHERE p.code = vParkingFromFk COLLATE 'utf8mb3_general_ci'; SELECT p.pickingOrder INTO vPickingOrderTo FROM vn.parking p WHERE p.code = vParkingToFk COLLATE 'utf8mb3_general_ci'; CALL vn.visible_getMisfit(vSectorFk); SELECT ish.id, p.pickingOrder, p.code parking, ish.shelvingFk, ish.itemFk, i.longName, ish.visible, p.sectorFk, it.workerFk buyer, CONCAT('http:',ic.url, '/catalog/1600x900/',i.image) urlImage, ish.isChecked, CASE WHEN s.notPrepared > sm.parked THEN 0 WHEN sm.visible > sm.parked THEN 1 ELSE 2 END priority FROM vn.itemShelving ish JOIN vn.item i ON i.id = ish.itemFk JOIN vn.itemType it ON it.id = i.typeFk JOIN tmp.stockMisfit sm ON sm.itemFk = ish.itemFk JOIN vn.shelving sh ON sh.code = ish.shelvingFk JOIN vn.parking p ON p.id = sh.parkingFk JOIN (SELECT s.itemFk, sum(s.quantity) notPrepared FROM vn.sale s JOIN vn.ticket t ON t.id = s.ticketFk JOIN vn.warehouse w ON w.id = t.warehouseFk JOIN vn.config c ON c.mainWarehouseFk = w.id WHERE t.shipped BETWEEN util.VN_CURDATE() AND util.VN_CURDATE() + INTERVAL 23 HOUR AND s.isPicked = FALSE GROUP BY s.itemFk) s ON s.itemFk = i.id JOIN hedera.imageConfig ic WHERE p.pickingOrder BETWEEN vPickingOrderFrom AND vPickingOrderTo AND p.sectorFk = vSectorFk ORDER BY p.pickingOrder; END$$ DELIMITER ;