47 lines
1.2 KiB
MySQL
47 lines
1.2 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`visible_getMisfit`(vSectorFk INT)
|
||
|
BEGIN
|
||
|
|
||
|
/* Devuelve una tabla temporal con los descuadres entre el visible teórico y lo ubicado en la práctica
|
||
|
*
|
||
|
* @param vSectorFk Identificador de vn.sector
|
||
|
*
|
||
|
* @return tmp.stockMisfit(itemFk, visible, parked)
|
||
|
*/
|
||
|
|
||
|
DECLARE vCalcVisibleFk INT;
|
||
|
DECLARE vWarehouseFk INT;
|
||
|
|
||
|
SELECT warehouseFk INTO vWarehouseFk
|
||
|
FROM vn.sector s
|
||
|
WHERE s.id = vSectorFk;
|
||
|
|
||
|
CALL cache.visible_refresh(vCalcVisibleFk, FALSE, vWarehouseFk);
|
||
|
|
||
|
DROP TEMPORARY TABLE IF EXISTS tmp.stockMisfit;
|
||
|
|
||
|
CREATE TEMPORARY TABLE tmp.stockMisfit(
|
||
|
itemFk INT PRIMARY KEY,
|
||
|
visible INT NOT NULL DEFAULT 0,
|
||
|
parked INT NOT NULL DEFAULT 0)
|
||
|
ENGINE = MEMORY;
|
||
|
|
||
|
INSERT INTO tmp.stockMisfit(itemFk, parked)
|
||
|
SELECT iss.itemFk , sum(iss.visible )
|
||
|
FROM vn.itemShelvingStock iss
|
||
|
JOIN vn.sector s ON s.id = iss.sectorFk
|
||
|
WHERE vSectorFk IN (s.id, s.sonFk)
|
||
|
GROUP BY iss.itemFk;
|
||
|
|
||
|
INSERT INTO tmp.stockMisfit(itemFk, visible)
|
||
|
SELECT v.item_id , v.visible
|
||
|
FROM cache.visible v
|
||
|
WHERE v.calc_id = vCalcVisibleFk
|
||
|
ON DUPLICATE KEY UPDATE visible = v.visible;
|
||
|
|
||
|
DELETE FROM tmp.stockMisfit
|
||
|
WHERE visible = parked;
|
||
|
|
||
|
END$$
|
||
|
DELIMITER ;
|