salix/services/db/install/changes/1.0.8/ticketGetVisibleAvailable.sql

39 lines
1.2 KiB
MySQL
Raw Normal View History

2018-07-03 09:43:05 +00:00
USE `vn`;
2018-07-04 11:35:45 +00:00
DROP procedure IF EXISTS `ticketGetVisibleAvailable`;
2018-07-03 09:43:05 +00:00
DELIMITER $$
USE `vn`$$
2018-07-04 11:35:45 +00:00
CREATE DEFINER=`root`@`%` PROCEDURE `ticketGetVisibleAvailable`(
2018-07-03 09:43:05 +00:00
vTicket INT)
BEGIN
DECLARE vVisibleCalc INT;
2018-07-04 11:35:45 +00:00
DECLARE vAvailableCalc INT;
DECLARE vShipped DATE;
DECLARE vWarehouse TINYINT;
2018-07-03 09:43:05 +00:00
DECLARE vAlertLevel INT;
2018-07-04 11:35:45 +00:00
2018-07-03 09:43:05 +00:00
SELECT t.warehouseFk, t.shipped, ts.alertLevel INTO vWarehouse, vShipped, vAlertLevel
FROM ticket t
LEFT JOIN ticketState ts ON ts.ticketFk = vTicket
WHERE t.id = vTicket;
2018-07-04 11:35:45 +00:00
IF vAlertLevel IS NULL OR vAlertLevel = 0 THEN
IF vShipped >= CURDATE() THEN
2018-07-03 09:43:05 +00:00
CALL cache.available_refresh(vAvailableCalc, FALSE, vWarehouse, vShipped);
END IF;
IF vShipped = CURDATE() THEN
CALL cache.visible_refresh(vVisibleCalc, FALSE, vWarehouse);
END IF;
END IF;
2018-07-04 11:35:45 +00:00
SELECT s.id, s.itemFk, s.quantity, s.concept, s.price, s.reserved, s.discount, v.visible, av.available
FROM sale s
LEFT JOIN cache.visible v ON v.item_id = s.itemFk AND v.calc_id = vVisibleCalc
LEFT JOIN cache.available av ON av.item_id = s.itemFk AND av.calc_id = vAvailableCalc
2018-07-03 09:43:05 +00:00
WHERE s.ticketFk = vTicket;
2018-07-03 10:01:53 +00:00
2018-07-03 09:43:05 +00:00
END$$
2018-07-03 10:01:53 +00:00
DELIMITER ;