53 lines
1.9 KiB
SQL
53 lines
1.9 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`itemShelvingRadar_Entry`(vEntryFk INT)
|
|
BEGIN
|
|
|
|
DECLARE vWarehouseFk INT DEFAULT 1;
|
|
DECLARE vCalcVisibleFk INT;
|
|
DECLARE vCalcAvailableFk INT;
|
|
DECLARE vTodayDayEnd DATETIME DEFAULT util.dayEnd(util.VN_CURDATE());
|
|
|
|
CALL cache.visible_refresh(vCalcVisibleFk, FALSE, 1);
|
|
CALL cache.available_refresh(vCalcAvailableFk, FALSE, vWarehouseFk, util.VN_CURDATE());
|
|
|
|
DROP TEMPORARY TABLE IF EXISTS tmp.item;
|
|
CREATE TEMPORARY TABLE tmp.item
|
|
ENGINE = MEMORY
|
|
SELECT DISTINCT itemFk
|
|
FROM vn.buy
|
|
WHERE entryFk = vEntryFk;
|
|
|
|
DROP TEMPORARY TABLE IF EXISTS tmp.item2;
|
|
CREATE TEMPORARY TABLE tmp.item2
|
|
ENGINE = MEMORY
|
|
SELECT *
|
|
FROM tmp.item;
|
|
|
|
SELECT i.id as itemFk,
|
|
i.minimum,
|
|
CAST(IFNULL(v.visible,0) - IFNULL(iss.visible,0) AS DECIMAL(10,0)) as enNicho,
|
|
CAST(IFNULL(a.available,0) AS DECIMAL(10,0)) as disponible,
|
|
CAST(IFNULL(v.visible,0) - IFNULL(iss.visible,0) - ts.todaySold AS DECIMAL(10,0)) as finalDia
|
|
FROM vn.item i
|
|
JOIN tmp.item ti ON ti.itemFk = i.id
|
|
LEFT JOIN cache.visible v ON v.calc_id = vCalcVisibleFk AND v.item_id = i.id
|
|
LEFT JOIN cache.available a ON i.id = a.item_id AND a.calc_id = vCalcAvailableFk
|
|
LEFT JOIN vn.itemShelvingStock iss ON iss.itemFk = i.id
|
|
LEFT JOIN ( SELECT s.itemFk, sum(s.quantity) as todaySold
|
|
FROM vn.sale s
|
|
JOIN tmp.item2 ti ON ti.itemFk = s.itemFk
|
|
JOIN vn.ticket t ON t.id = s.ticketFk
|
|
LEFT JOIN vn.ticketState tst ON tst.ticketFk = t.id
|
|
WHERE t.shipped BETWEEN util.VN_CURDATE() AND vTodayDayEnd
|
|
AND t.warehouseFk = vWarehouseFk
|
|
AND IFNULL(tst.productionOrder,0) < 5
|
|
GROUP BY s.itemFK
|
|
) ts ON ts.itemFk = i.id;
|
|
|
|
|
|
DROP TEMPORARY TABLE tmp.item;
|
|
DROP TEMPORARY TABLE tmp.item2;
|
|
|
|
END$$
|
|
DELIMITER ;
|