47 lines
1.2 KiB
SQL
47 lines
1.2 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`vn`@`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 ;
|