refactor: refs #7686 remove unused stored procedures for item shelving and ticket delay
gitea/salix/pipeline/pr-dev There was a failure building this commit
Details
gitea/salix/pipeline/pr-dev There was a failure building this commit
Details
This commit is contained in:
parent
886383b82d
commit
ba2333f180
|
@ -1,207 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`itemShelvingRadar`(
|
|
||||||
vSectorFk INT
|
|
||||||
)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Calcula la información detallada respecto un sector.
|
|
||||||
*
|
|
||||||
* @param vSectorFk Id de sector
|
|
||||||
*/
|
|
||||||
DECLARE vCalcVisibleFk INT;
|
|
||||||
DECLARE vCalcAvailableFk INT;
|
|
||||||
DECLARE hasFatherSector BOOLEAN;
|
|
||||||
DECLARE vBuyerFk INT DEFAULT 0;
|
|
||||||
DECLARE vWarehouseFk INT DEFAULT 0;
|
|
||||||
DECLARE vSonSectorFk INT;
|
|
||||||
DECLARE vWorkerFk INT;
|
|
||||||
|
|
||||||
SELECT s.workerFk INTO vWorkerFk
|
|
||||||
FROM sector s
|
|
||||||
WHERE s.id = vSectorFk;
|
|
||||||
|
|
||||||
SELECT COUNT(*) INTO hasFatherSector
|
|
||||||
FROM sector
|
|
||||||
WHERE sonFk = vSectorFk;
|
|
||||||
|
|
||||||
SELECT warehouseFk, sonFk INTO vWarehouseFk, vSonSectorFk
|
|
||||||
FROM sector
|
|
||||||
WHERE id = vSectorFk;
|
|
||||||
|
|
||||||
CALL cache.visible_refresh(vCalcVisibleFk, TRUE, vWarehouseFk);
|
|
||||||
CALL cache.available_refresh(vCalcAvailableFk, FALSE, vWarehouseFk, util.VN_CURDATE());
|
|
||||||
|
|
||||||
IF hasFatherSector THEN
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tItemShelvingRadar
|
|
||||||
(PRIMARY KEY (itemFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT *
|
|
||||||
FROM (
|
|
||||||
SELECT iss.itemFk,
|
|
||||||
i.longName,
|
|
||||||
i.size,
|
|
||||||
i.subName producer,
|
|
||||||
IFNULL(a.available, 0) available,
|
|
||||||
SUM(IF(s.sonFk = vSectorFk, IFNULL(iss.visible, 0), 0)) upstairs,
|
|
||||||
SUM(IF(iss.sectorFk = vSectorFk, IFNULL(iss.visible, 0), 0)) downstairs,
|
|
||||||
IF(it.isPackaging, NULL, IFNULL(v.visible, 0)) visible,
|
|
||||||
vSectorFk sectorFk,
|
|
||||||
ish.isChecked,
|
|
||||||
sub.isAllChecked
|
|
||||||
FROM itemShelvingStock iss
|
|
||||||
JOIN itemShelving ish ON ish.id = iss.itemShelvingFk
|
|
||||||
LEFT JOIN (
|
|
||||||
SELECT itemFk,
|
|
||||||
IF(
|
|
||||||
COUNT(*) = SUM(IF(isChecked >= 0, 1, 0)),
|
|
||||||
TRUE,
|
|
||||||
FALSE
|
|
||||||
) isAllChecked
|
|
||||||
FROM itemShelving is2
|
|
||||||
GROUP BY itemFk
|
|
||||||
) sub ON sub.itemFk = ish.itemFk
|
|
||||||
JOIN sector s ON s.id = iss.sectorFk
|
|
||||||
JOIN item i ON i.id = iss.itemFk
|
|
||||||
JOIN itemType it ON it.id = i.typeFk
|
|
||||||
LEFT JOIN cache.available a ON a.item_id = iss.itemFk
|
|
||||||
AND a.calc_id = vCalcAvailableFk
|
|
||||||
LEFT JOIN cache.visible v ON v.item_id = iss.itemFk
|
|
||||||
AND v.calc_id = vCalcVisibleFk
|
|
||||||
WHERE vSectorFk IN (iss.sectorFk, s.sonFk)
|
|
||||||
GROUP BY iss.itemFk
|
|
||||||
UNION ALL
|
|
||||||
SELECT v.item_id,
|
|
||||||
i.longName,
|
|
||||||
i.size,
|
|
||||||
i.subName,
|
|
||||||
IFNULL(a.available, 0),
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
IF(it.isPackaging, NULL, v.visible),
|
|
||||||
vSectorFk,
|
|
||||||
NULL,
|
|
||||||
NULL
|
|
||||||
FROM cache.visible v
|
|
||||||
JOIN item i ON i.id = v.item_id
|
|
||||||
JOIN itemType it ON it.id = i.typeFk
|
|
||||||
LEFT JOIN itemShelvingStock iss ON iss.itemFk = v.item_id
|
|
||||||
AND iss.warehouseFk = vWarehouseFk
|
|
||||||
LEFT JOIN cache.available a ON a.item_id = v.item_id
|
|
||||||
AND a.calc_id = vCalcAvailableFk
|
|
||||||
WHERE v.calc_id = vCalcVisibleFk
|
|
||||||
AND iss.itemFk IS NULL
|
|
||||||
AND it.isInventory
|
|
||||||
) sub
|
|
||||||
GROUP BY itemFk;
|
|
||||||
|
|
||||||
SELECT ishr.*,
|
|
||||||
CAST(visible - upstairs - downstairs AS DECIMAL(10, 0)) nicho,
|
|
||||||
CAST(downstairs - IFNULL(notPickedYed, 0) AS DECIMAL(10, 0)) pendiente
|
|
||||||
FROM tItemShelvingRadar ishr
|
|
||||||
JOIN item i ON i.id = ishr.itemFk
|
|
||||||
LEFT JOIN (
|
|
||||||
SELECT s.itemFk, SUM(s.quantity) notPickedYed
|
|
||||||
FROM ticket t
|
|
||||||
JOIN ticketStateToday tst ON tst.ticketFk = t.id
|
|
||||||
JOIN alertLevel al ON al.id = tst.alertLevel
|
|
||||||
JOIN sale s ON s.ticketFk = t.id
|
|
||||||
WHERE t.warehouseFk = vWarehouseFk
|
|
||||||
AND al.code IN ('FREE', 'APPROVED')
|
|
||||||
GROUP BY s.itemFk
|
|
||||||
) sub ON sub.itemFk = ishr.itemFk
|
|
||||||
ORDER BY i.typeFk, i.longName;
|
|
||||||
ELSE
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tItemShelvingRadar
|
|
||||||
(PRIMARY KEY (itemFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT iss.itemFk,
|
|
||||||
0 `hour`,
|
|
||||||
0 `minute`,
|
|
||||||
'--' itemPlacementCode,
|
|
||||||
i.longName,
|
|
||||||
i.size,
|
|
||||||
i.subName producer,
|
|
||||||
i.upToDown,
|
|
||||||
IFNULL(a.available, 0) available,
|
|
||||||
IFNULL(v.visible - iss.visible, 0) dayEndVisible,
|
|
||||||
IFNULL(v.visible - iss.visible, 0) firstNegative,
|
|
||||||
IFNULL(v.visible - iss.visible, 0) itemPlacementVisible,
|
|
||||||
IFNULL(i.minimum * b.packing, 0) itemPlacementSize,
|
|
||||||
ips.onTheWay,
|
|
||||||
iss.visible itemShelvingStock,
|
|
||||||
IFNULL(v.visible, 0) visible,
|
|
||||||
b.isPickedOff,
|
|
||||||
iss.sectorFk
|
|
||||||
FROM itemShelvingStock iss
|
|
||||||
JOIN item i ON i.id = iss.itemFk
|
|
||||||
LEFT JOIN cache.last_buy lb ON lb.item_id = iss.itemFk
|
|
||||||
AND lb.warehouse_id = vWarehouseFk
|
|
||||||
LEFT JOIN buy b ON b.id = lb.buy_id
|
|
||||||
LEFT JOIN cache.available a ON a.item_id = iss.itemFk
|
|
||||||
AND a.calc_id = vCalcAvailableFk
|
|
||||||
LEFT JOIN cache.visible v ON v.item_id = iss.itemFk
|
|
||||||
AND v.calc_id = vCalcVisibleFk
|
|
||||||
LEFT JOIN (
|
|
||||||
SELECT itemFk, SUM(saldo) onTheWay
|
|
||||||
FROM itemPlacementSupplyList
|
|
||||||
WHERE saldo > 0
|
|
||||||
GROUP BY itemFk
|
|
||||||
) ips ON ips.itemFk = i.id
|
|
||||||
WHERE iss.sectorFk = vSectorFk
|
|
||||||
OR iss.sectorFk IS NULL;
|
|
||||||
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.itemOutTime
|
|
||||||
SELECT *, SUM(amount) quantity
|
|
||||||
FROM (
|
|
||||||
SELECT io.itemFk,
|
|
||||||
io.quantity amount,
|
|
||||||
IF(HOUR(t.shipped), HOUR(t.shipped), HOUR(z.`hour`)) `hours`,
|
|
||||||
IF(MINUTE(t.shipped), MINUTE(t.shipped), MINUTE(z.`hour`)) `minutes`
|
|
||||||
FROM itemTicketOut `io`
|
|
||||||
JOIN tItemShelvingRadar isr ON isr.itemFk = io.itemFk
|
|
||||||
JOIN ticket t ON t.id= io.ticketFk
|
|
||||||
JOIN ticketState ts ON ts.ticketFk = io.ticketFk
|
|
||||||
JOIN `state` s ON s.id = ts.stateFk
|
|
||||||
LEFT JOIN `zone` z ON z.id = t.zoneFk
|
|
||||||
LEFT JOIN (
|
|
||||||
SELECT DISTINCT saleFk
|
|
||||||
FROM saleTracking st
|
|
||||||
WHERE st.created > util.VN_CURDATE()
|
|
||||||
AND st.isChecked
|
|
||||||
) stPrevious ON stPrevious.saleFk = io.saleFk
|
|
||||||
WHERE t.warehouseFk = vWarehouseFk
|
|
||||||
AND NOT s.isPicked
|
|
||||||
AND NOT io.reserved
|
|
||||||
AND stPrevious.saleFk IS NULL
|
|
||||||
AND io.shipped >= util.VN_CURDATE()
|
|
||||||
AND io.shipped < util.VN_CURDATE() + INTERVAL 1 DAY
|
|
||||||
) sub
|
|
||||||
GROUP BY itemFk, `hours`, `minutes`;
|
|
||||||
|
|
||||||
INSERT INTO tItemShelvingRadar (itemFk)
|
|
||||||
SELECT itemFk FROM tmp.itemOutTime
|
|
||||||
ON DUPLICATE KEY UPDATE dayEndVisible = dayEndVisible + quantity,
|
|
||||||
firstNegative = IF(firstNegative < 0, firstNegative, firstNegative + quantity),
|
|
||||||
`hour` = IFNULL(IF(firstNegative > 0 , `hour`, `hours`), 0),
|
|
||||||
`minute` = IFNULL(IF(firstNegative > 0, `minute`, `minutes`), 0);
|
|
||||||
|
|
||||||
UPDATE tItemShelvingRadar isr
|
|
||||||
JOIN (
|
|
||||||
SELECT s.itemFk, SUM(s.quantity) amount
|
|
||||||
FROM sale s
|
|
||||||
JOIN ticket t ON t.id = s.ticketFk
|
|
||||||
JOIN ticketState ts ON ts.ticketFk = t.id
|
|
||||||
WHERE t.shipped BETWEEN util.VN_CURDATE() AND util.dayend(util.VN_CURDATE())
|
|
||||||
AND ts.code = 'COOLER_PREPARATION'
|
|
||||||
GROUP BY s.itemFk
|
|
||||||
) sub ON sub.itemFk = isr.itemFk
|
|
||||||
SET isr.dayEndVisible = dayEndVisible + sub.amount,
|
|
||||||
firstNegative = firstNegative + sub.amount;
|
|
||||||
|
|
||||||
SELECT * FROM tItemShelvingRadar;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tItemShelvingRadar;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,36 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_DelayTruck`(vWarehouserFk INT, vHour INT, vMinute INT)
|
|
||||||
BEGIN
|
|
||||||
DECLARE done INT DEFAULT FALSE;
|
|
||||||
DECLARE vTicketFk INT;
|
|
||||||
DECLARE cur1 CURSOR FOR SELECT ticketFk FROM tTicket;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
|
|
||||||
|
|
||||||
CALL vn.productionControl(vWarehouserFk,0) ;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tTicket;
|
|
||||||
CREATE TEMPORARY TABLE tTicket
|
|
||||||
SELECT ticketFk
|
|
||||||
FROM tmp.productionBuffer
|
|
||||||
JOIN alertLevel al ON al.code IN ('FREE', 'APPROVED')
|
|
||||||
WHERE shipped = util.VN_CURDATE()
|
|
||||||
AND problem LIKE '%I:%'
|
|
||||||
AND (HH <= vHour OR HH = vHour AND mm < vMinute)
|
|
||||||
AND alertLevel = al.id;
|
|
||||||
|
|
||||||
OPEN cur1;
|
|
||||||
|
|
||||||
read_loop: LOOP
|
|
||||||
FETCH cur1 INTO vTicketFk;
|
|
||||||
IF done THEN
|
|
||||||
LEAVE read_loop;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL vn.ticket_DelayTruckSplit(vTicketFk);
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
CLOSE cur1;
|
|
||||||
DROP TEMPORARY TABLE tTicket, tmp.productionBuffer;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,59 +0,0 @@
|
||||||
DELIMITER $$
|
|
||||||
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_DelayTruckSplit`(
|
|
||||||
vTicketFk INT
|
|
||||||
)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Splita las lineas de ticket que no estan ubicadas
|
|
||||||
*
|
|
||||||
* @param vTicketFk Id ticket
|
|
||||||
*/
|
|
||||||
DECLARE vNewTicketFk INT;
|
|
||||||
DECLARE vTotalLines INT;
|
|
||||||
DECLARE vLinesToSplit INT;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.SalesToSplit;
|
|
||||||
|
|
||||||
SELECT COUNT(*) INTO vTotalLines
|
|
||||||
FROM sale
|
|
||||||
WHERE ticketFk = vTicketFk;
|
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp.SalesToSplit
|
|
||||||
SELECT s.id saleFk
|
|
||||||
FROM ticket t
|
|
||||||
JOIN sale s ON t.id = s.ticketFk
|
|
||||||
LEFT JOIN (
|
|
||||||
SELECT ish.itemFk itemFk,
|
|
||||||
SUM(ish.visible) visible,
|
|
||||||
s.warehouseFk warehouseFk
|
|
||||||
FROM itemShelving ish
|
|
||||||
JOIN shelving sh ON sh.id = ish.shelvingFk
|
|
||||||
JOIN parking p ON p.id = sh.parkingFk
|
|
||||||
JOIN sector s ON s.id = p.sectorFk
|
|
||||||
GROUP BY ish.itemFk,
|
|
||||||
s.warehouseFk
|
|
||||||
) issw ON issw.itemFk = s.itemFk
|
|
||||||
AND issw.warehouseFk = t.warehouseFk
|
|
||||||
WHERE s.quantity > IFNULL(issw.visible, 0)
|
|
||||||
AND s.quantity > 0
|
|
||||||
AND NOT s.isPicked
|
|
||||||
AND NOT s.reserved
|
|
||||||
AND t.id = vTicketFk;
|
|
||||||
|
|
||||||
SELECT COUNT(*) INTO vLinesToSplit
|
|
||||||
FROM tmp.SalesToSplit;
|
|
||||||
|
|
||||||
IF vLinesToSplit = vTotalLines AND vLinesToSplit > 0 THEN
|
|
||||||
SET vNewTicketFk = vTicketFk;
|
|
||||||
ELSE
|
|
||||||
CALL ticket_Clone(vTicketFk, vNewTicketFk);
|
|
||||||
UPDATE sale s
|
|
||||||
JOIN tmp.SalesToSplit sts ON sts.saleFk = s.id
|
|
||||||
SET s.ticketFk = vNewTicketFk;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL ticket_setState(vNewTicketFk, 'FIXING');
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.SalesToSplit;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
Loading…
Reference in New Issue