refs #7486 Declare exit handler fix collection_assign error
This commit is contained in:
parent
8e7cfb6391
commit
08c9d43b17
|
@ -1,6 +1,9 @@
|
||||||
DELIMITER $$
|
DELIMITER $$
|
||||||
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_splitItemPackingType`(vTicketFk INT, vOriginalItemPackingTypeFk VARCHAR(1))
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_splitItemPackingType`(
|
||||||
proc:BEGIN
|
vTicketFk INT,
|
||||||
|
vOriginalItemPackingTypeFk VARCHAR(1)
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
/**
|
/**
|
||||||
* Clona y reparte las ventas de un ticket en funcion del tipo de empaquetado.
|
* Clona y reparte las ventas de un ticket en funcion del tipo de empaquetado.
|
||||||
* Respeta el id inicial para el tipo propuesto.
|
* Respeta el id inicial para el tipo propuesto.
|
||||||
|
@ -22,22 +25,28 @@ proc:BEGIN
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
||||||
|
|
||||||
|
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||||
|
BEGIN
|
||||||
|
RESIGNAL;
|
||||||
|
END;
|
||||||
|
|
||||||
DELETE FROM vn.sale
|
DELETE FROM vn.sale
|
||||||
WHERE quantity = 0
|
WHERE quantity = 0
|
||||||
AND ticketFk = vTicketFk;
|
AND ticketFk = vTicketFk;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.sale;
|
CREATE OR REPLACE TEMPORARY TABLE tmp.sale
|
||||||
CREATE TEMPORARY TABLE tmp.sale
|
|
||||||
(PRIMARY KEY (id))
|
(PRIMARY KEY (id))
|
||||||
|
ENGINE = MEMORY
|
||||||
SELECT s.id, i.itemPackingTypeFk , IFNULL(sv.litros, 0) litros
|
SELECT s.id, i.itemPackingTypeFk , IFNULL(sv.litros, 0) litros
|
||||||
FROM vn.sale s
|
FROM vn.sale s
|
||||||
JOIN vn.item i ON i.id = s.itemFk
|
JOIN vn.item i ON i.id = s.itemFk
|
||||||
LEFT JOIN vn.saleVolume sv ON sv.saleFk = s.id
|
LEFT JOIN vn.saleVolume sv ON sv.saleFk = s.id
|
||||||
WHERE s.ticketFk = vTicketFk;
|
WHERE s.ticketFk = vTicketFk;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.saleGroup;
|
CREATE OR REPLACE TEMPORARY TABLE tmp.saleGroup
|
||||||
CREATE TEMPORARY TABLE tmp.saleGroup
|
(PRIMARY KEY (itemPackingTypeFk))
|
||||||
SELECT itemPackingTypeFk , sum(litros) AS totalLitros
|
ENGINE = MEMORY
|
||||||
|
SELECT itemPackingTypeFk, SUM(litros) totalLitros
|
||||||
FROM tmp.sale
|
FROM tmp.sale
|
||||||
GROUP BY itemPackingTypeFk;
|
GROUP BY itemPackingTypeFk;
|
||||||
|
|
||||||
|
@ -45,10 +54,11 @@ proc:BEGIN
|
||||||
FROM tmp.saleGroup
|
FROM tmp.saleGroup
|
||||||
WHERE itemPackingTypeFk IS NOT NULL;
|
WHERE itemPackingTypeFk IS NOT NULL;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.ticketIPT;
|
CREATE OR REPLACE TEMPORARY TABLE tmp.ticketIPT (
|
||||||
CREATE TEMPORARY TABLE tmp.ticketIPT
|
ticketFk INT,
|
||||||
(ticketFk INT,
|
itemPackingTypeFk VARCHAR(1),
|
||||||
itemPackingTypeFk VARCHAR(1));
|
PRIMARY KEY (ticketFk)
|
||||||
|
) ENGINE = MEMORY;
|
||||||
|
|
||||||
CASE vPackingTypesToSplit
|
CASE vPackingTypesToSplit
|
||||||
WHEN 0 THEN
|
WHEN 0 THEN
|
||||||
|
@ -89,7 +99,7 @@ proc:BEGIN
|
||||||
|
|
||||||
SELECT itemPackingTypeFk INTO vItemPackingTypeFk
|
SELECT itemPackingTypeFk INTO vItemPackingTypeFk
|
||||||
FROM tmp.saleGroup sg
|
FROM tmp.saleGroup sg
|
||||||
WHERE NOT ISNULL(sg.itemPackingTypeFk)
|
WHERE sg.itemPackingTypeFk IS NOT NULL
|
||||||
ORDER BY sg.itemPackingTypeFk
|
ORDER BY sg.itemPackingTypeFk
|
||||||
LIMIT 1;
|
LIMIT 1;
|
||||||
|
|
||||||
|
@ -100,7 +110,8 @@ proc:BEGIN
|
||||||
WHERE ts.itemPackingTypeFk IS NULL;
|
WHERE ts.itemPackingTypeFk IS NULL;
|
||||||
END CASE;
|
END CASE;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.sale;
|
DROP TEMPORARY TABLE
|
||||||
DROP TEMPORARY TABLE tmp.saleGroup;
|
tmp.sale,
|
||||||
|
tmp.saleGroup;
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
Loading…
Reference in New Issue