feat: refs #7681 Optimization and refactor #2707

Merged
guillermo merged 7 commits from 7681-routeUpdateM3 into dev 2024-07-19 11:12:22 +00:00
1 changed files with 30 additions and 9 deletions
Showing only changes of commit 2078bf58ff - Show all commits

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
guillermo marked this conversation as resolved Outdated

No es necesario generar un tabla, solo es una variable

No es necesario generar un tabla, solo es una variable
BEGIN
ROLLBACK;
RESIGNAL;
END;
UPDATE vn.route r
LEFT JOIN (
SELECT routeFk, SUM(volume) AS m3
FROM saleVolume
WHERE routeFk = vRoute
) v ON v.routeFk = r.id
SET r.m3 = IFNULL(v.m3,0)
WHERE r.id =vRoute;
CREATE OR REPLACE TEMPORARY TABLE tRouteVolume
ENGINE = MEMORY
SELECT IFNULL(SUM(volume), 0) volume
FROM saleVolume
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 ;