41 lines
1.3 KiB
MySQL
41 lines
1.3 KiB
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`buy_label`(IN entry_id_ INT, IN groupby TINYINT(1))
|
||
|
BEGIN
|
||
|
|
||
|
DECLARE done INT DEFAULT 0;
|
||
|
DECLARE label INT;
|
||
|
DECLARE id INT;
|
||
|
DECLARE recordset CURSOR FOR SELECT Compres.Etiquetas, Compres.Id_Compra FROM Compres INNER JOIN
|
||
|
(SELECT e.Id_entrada FROM Entradas e INNER JOIN (
|
||
|
SELECT Id_Entrada,Inventario,Id_proveedor,travel_id,Id_Agencia FROM Entradas e1 INNER JOIN travel t ON e1.travel_id = t.id WHERE Id_Entrada = entry_id_) y
|
||
|
ON y.Inventario = e.Inventario AND e.travel_id = y.travel_id AND e.Id_proveedor = y.Id_proveedor AND y.Id_Agencia = e.Id_Agencia
|
||
|
WHERE (0 OR e.Id_Entrada = entry_id_)) entry_label
|
||
|
ON Compres.Id_Entrada = entry_label.Id_entrada
|
||
|
INNER JOIN Articles ON Compres.Id_Article = Articles.Id_Article WHERE Articles.Imprimir <> FALSE;
|
||
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
|
||
|
|
||
|
DROP TEMPORARY TABLE IF EXISTS `buy_label_source`;
|
||
|
|
||
|
CREATE TEMPORARY TABLE `buy_label_source`
|
||
|
(
|
||
|
`buy_id` INT(11) NOT NULL
|
||
|
)
|
||
|
|
||
|
ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||
|
OPEN recordset;
|
||
|
|
||
|
REPEAT
|
||
|
|
||
|
FETCH recordset INTO label, id;
|
||
|
WHILE label > 0 DO
|
||
|
|
||
|
SET label = label - 1;
|
||
|
INSERT INTO buy_label_source (buy_id) VALUES (id);
|
||
|
|
||
|
END WHILE;
|
||
|
|
||
|
UNTIL done END REPEAT;
|
||
|
|
||
|
END$$
|
||
|
DELIMITER ;
|