From 123f28055e265645c70b2ef65210a113d0295834 Mon Sep 17 00:00:00 2001 From: guillermo Date: Thu, 30 Jan 2025 09:28:44 +0100 Subject: [PATCH] feat: refs #8227 Roadmap changes --- db/routines/vn/triggers/roadmap_beforeInsert.sql | 14 ++++++++------ db/routines/vn/triggers/roadmap_beforeUpdate.sql | 13 ++----------- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/db/routines/vn/triggers/roadmap_beforeInsert.sql b/db/routines/vn/triggers/roadmap_beforeInsert.sql index a9b837e6b..bfbb4f879 100644 --- a/db/routines/vn/triggers/roadmap_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmap_beforeInsert.sql @@ -13,12 +13,8 @@ BEGIN CALL util.throw('Departure time can not be after arrival time'); END IF; - IF NEW.trailerPlate IS NOT NULL THEN - SET NEW.m3 = (SELECT m3 FROM vehicle WHERE numberPlate = NEW.trailerPlate); - END IF; - - IF NEW.tugPlate IS NOT NULL THEN - SET NEW.m3 = NEW.m3 + (SELECT m3 FROM vehicle WHERE numberPlate = NEW.tugPlate); + IF NEW.trailerPlate IS NOT NULL OR NEW.tugPlate IS NOT NULL THEN + SET NEW.m3 = (SELECT SUM(m3) FROM vehicle WHERE numberPlate IN (NEW.trailerPlate, NEW.tugPlate)); END IF; IF NEW.driver1Fk IS NOT NULL THEN @@ -31,5 +27,11 @@ BEGIN LEFT JOIN client c ON c.id = w.id WHERE w.id = NEW.driver1Fk); END IF; + + IF NEW.driverChangeFk IS NOT NULL THEN + SET NEW.driverChangeName = (SELECT CONCAT(w.firstName, ' ', w.lastName) + FROM worker w + WHERE w.id = NEW.driverChangeFk); + END IF; END$$ DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/roadmap_beforeUpdate.sql b/db/routines/vn/triggers/roadmap_beforeUpdate.sql index 46065129d..f888d3a6f 100644 --- a/db/routines/vn/triggers/roadmap_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmap_beforeUpdate.sql @@ -13,12 +13,8 @@ BEGIN CALL util.throw('Departure time can not be after arrival time'); END IF; - IF NOT (NEW.trailerPlate <=> OLD.trailerPlate) THEN - SET NEW.m3 = (SELECT m3 FROM vehicle WHERE numberPlate = NEW.trailerPlate); - END IF; - - IF NOT (NEW.tugPlate <=> OLD.tugPlate) THEN - SET NEW.m3 = NEW.m3 + (SELECT m3 FROM vehicle WHERE numberPlate = NEW.tugPlate); + IF NOT (NEW.trailerPlate <=> OLD.trailerPlate) OR NOT (NEW.tugPlate <=> OLD.tugPlate) THEN + SET NEW.m3 = (SELECT SUM(m3) FROM vehicle WHERE numberPlate IN (NEW.trailerPlate, NEW.tugPlate)); END IF; IF NOT (NEW.driverName <=> OLD.driverName) THEN @@ -44,11 +40,6 @@ BEGIN SET NEW.driverChangeName = (SELECT CONCAT(w.firstName, ' ', w.lastName) FROM worker w WHERE w.id = NEW.driverChangeFk); - - SET NEW.phone = (SELECT COALESCE(w.phone, c.mobile, c.phone, c.mobile) - FROM worker w - LEFT JOIN client c ON c.id = w.id - WHERE w.id = NEW.driverChangeFk); END IF; END$$ DELIMITER ; \ No newline at end of file