diff --git a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql index c3142c8acc..93c44b042b 100644 --- a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql @@ -19,24 +19,31 @@ BEGIN CALL util.throw('Departure time can not be after arrival time'); END IF; - SELECT MAX(eta) INTO vMaxEta - FROM roadmapStop - WHERE roadmapFk = NEW.roadmapFk - AND id <> OLD.id; + IF @roadmapTriggerIsActive IS NULL THEN + SET @roadmapTriggerIsActive = TRUE; - IF vMaxEta < NEW.eta OR vMaxEta IS NULL THEN - SET vMaxEta = NEW.eta; - END IF; + SELECT MAX(eta) INTO vMaxEta + FROM roadmapStop + WHERE roadmapFk = NEW.roadmapFk + AND id <> OLD.id; - SELECT eta INTO vCurrentEta - FROM roadmap - WHERE id = NEW.roadmapFk; + IF vMaxEta < NEW.eta OR vMaxEta IS NULL THEN + SET vMaxEta = NEW.eta; + END IF; - IF (vMaxEta <> vCurrentEta OR vMaxEta IS NULL) OR vMaxEta IS NOT NULL THEN - UPDATE roadmap - SET eta = vMaxEta + SELECT eta INTO vCurrentEta + FROM roadmap WHERE id = NEW.roadmapFk; + + IF (vMaxEta <> vCurrentEta OR vMaxEta IS NULL) OR vMaxEta IS NOT NULL THEN + UPDATE roadmap + SET eta = vMaxEta + WHERE id = NEW.roadmapFk; + END IF; + + SET @roadmapTriggerIsActive = NULL; + END IF; END IF; END$$ -DELIMITER ; +DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/roadmap_afterUpdate.sql b/db/routines/vn/triggers/roadmap_afterUpdate.sql index 7fcc31d922..26f77dd0cc 100644 --- a/db/routines/vn/triggers/roadmap_afterUpdate.sql +++ b/db/routines/vn/triggers/roadmap_afterUpdate.sql @@ -1,17 +1,26 @@ DELIMITER $$ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_afterUpdate` - AFTER UPDATE ON `roadmap` - FOR EACH ROW +AFTER UPDATE ON `roadmap` +FOR EACH ROW BEGIN DECLARE vSeconds INT; - IF NOT (NEW.etd <=> OLD.etd) THEN - SET vSeconds = TIME_TO_SEC(TIMEDIFF(NEW.etd, OLD.etd)); - IF vSeconds IS NOT NULL AND vSeconds <> 0 THEN - UPDATE roadmapStop - SET eta = eta + INTERVAL vSeconds SECOND - WHERE roadmapFk = NEW.id; + IF @roadmapTriggerIsActive IS NULL THEN + SET @roadmapTriggerIsActive = TRUE; + + IF NOT (NEW.etd <=> OLD.etd) THEN + SET vSeconds = TIME_TO_SEC(TIMEDIFF(NEW.etd, OLD.etd)); + + IF vSeconds IS NOT NULL AND vSeconds <> 0 THEN + UPDATE vn.roadmapStop + SET eta = eta + INTERVAL vSeconds SECOND + WHERE roadmapFk = NEW.id; + + SET NEW.eta = NEW.eta + INTERVAL vSeconds SECOND; + END IF; END IF; + + SET @roadmapTriggerIsActive = NULL; 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 4f355915bc..01f1ba7061 100644 --- a/db/routines/vn/triggers/roadmap_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmap_beforeUpdate.sql @@ -3,6 +3,8 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeUpdate` BEFORE UPDATE ON `roadmap` FOR EACH ROW BEGIN + DECLARE vSeconds INT; + SET NEW.editorFk = account.myUser_getId(); IF NOT (NEW.name <=> OLD.name) THEN @@ -37,5 +39,23 @@ BEGIN FROM worker w WHERE w.id = NEW.driverChangeFk); END IF; + + IF @trigger_active IS NULL THEN + SET @trigger_active = TRUE; + + IF NOT (NEW.etd <=> OLD.etd) THEN + SET vSeconds = TIME_TO_SEC(TIMEDIFF(NEW.etd, OLD.etd)); + + IF vSeconds IS NOT NULL AND vSeconds <> 0 THEN + UPDATE vn.roadmapStop + SET eta = eta + INTERVAL vSeconds SECOND + WHERE roadmapFk = NEW.id; + + SET NEW.eta = NEW.eta + INTERVAL vSeconds SECOND; + END IF; + END IF; + + SET @trigger_active = NULL; + END IF; END$$ DELIMITER ; \ No newline at end of file diff --git a/db/versions/11436-bronzeMonstera/00-firstScript.sql b/db/versions/11436-bronzeMonstera/00-firstScript.sql new file mode 100644 index 0000000000..eaf0c48648 --- /dev/null +++ b/db/versions/11436-bronzeMonstera/00-firstScript.sql @@ -0,0 +1,7 @@ +ALTER TABLE vn.roadmap + MODIFY COLUMN dollyPlate varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL NULL COMMENT + 'Vehículo sin motor diseñado para conectarse a una unidad tractora, un camión o un vehículo tractor con fuerte potencia de tracción'; + +GRANT UPDATE (palletM3) ON vn.volumeConfig TO deliveryBoss; + +ALTER TABLE vn.volumeConfig ADD COLUMN id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;