feat: refs #7681 Optimization and refactor
gitea/salix/pipeline/pr-dev There was a failure building this commit Details

This commit is contained in:
Guillermo Bonet 2024-07-09 10:09:00 +02:00
parent 40461fb89e
commit 2078bf58ff
1 changed files with 30 additions and 9 deletions

View File

@ -1,14 +1,35 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`route_updateM3`(vRoute INT)
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`route_updateM3`(
vSelf INT
)
BEGIN
/**
* Actualiza el volumen de la ruta.
*
* @param vSelf Id ruta
*/
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
RESIGNAL;
END;
UPDATE vn.route r
LEFT JOIN (
SELECT routeFk, SUM(volume) AS m3
CREATE OR REPLACE TEMPORARY TABLE tRouteVolume
ENGINE = MEMORY
SELECT IFNULL(SUM(volume), 0) volume
FROM saleVolume
WHERE routeFk = vRoute
) v ON v.routeFk = r.id
SET r.m3 = IFNULL(v.m3,0)
WHERE r.id =vRoute;
WHERE routeFk = vSelf;
START TRANSACTION;
SELECT id FROM `route` WHERE id = vSelf FOR UPDATE;
UPDATE `route`
SET m3 = (SELECT volume FROM tRouteVolume)
WHERE id = vSelf;
COMMIT;
DROP TEMPORARY TABLE tRouteVolume;
END$$
DELIMITER ;