diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql index 1e5ed8ad65..4f71d8b845 100644 --- a/db/dump/fixtures.before.sql +++ b/db/dump/fixtures.before.sql @@ -2785,11 +2785,11 @@ INSERT INTO `vn`.`roadmapAddress` (`addressFk`) (3), (4); -INSERT INTO `vn`.`roadmap` (`id`, `name`, `tractorPlate`, `trailerPlate`, `phone`, `supplierFk`, `etd`, `eta`, `observations`, `editorFk`, `price`, `driverName`) +INSERT INTO `vn`.`roadmap` (`id`, `name`, `tractorPlate`, `trailerPlate`, `phone`, `supplierFk`, `etd`, `observations`, `editorFk`, `price`, `driverName`) VALUES - (1, 'val-algemesi', '1234-BCD', '9876-BCD', '111111111', 1, util.VN_NOW(), DATE_ADD(util.VN_NOW(), INTERVAL 2 DAY), 'this is test observation', 1, 15, 'Batman'), - (2, 'alg-valencia', '2345-CDF', '8765-BCD', '111111111', 1, util.VN_NOW(), DATE_ADD(util.VN_NOW(), INTERVAL 5 DAY), 'test observation', 1, 20, 'Robin'), - (3, 'alz-algemesi', '3456-DFG', '7654-BCD', '222222222', 2, DATE_ADD(util.VN_NOW(), INTERVAL 3 DAY), DATE_ADD(util.VN_NOW(), INTERVAL 6 DAY), 'observations...', 2, 25, 'Driverman'); + (1, 'val-algemesi', '1234-BCD', '9876-BCD', '111111111', 1, util.VN_NOW(), 'this is test observation', 1, 15, 'Batman'), + (2, 'alg-valencia', '2345-CDF', '8765-BCD', '111111111', 1, util.VN_NOW(), 'test observation', 1, 20, 'Robin'), + (3, 'alz-algemesi', '3456-DFG', '7654-BCD', '222222222', 2, DATE_ADD(util.VN_NOW(), INTERVAL 3 DAY), 'observations...', 2, 25, 'Driverman'); INSERT INTO `vn`.`roadmapStop` (`id`, `roadmapFk`, `roadmapAddressFk`, `eta`, `description`, `editorFk`) VALUES diff --git a/db/routines/vn/triggers/roadmapStop_beforeDelete.sql b/db/routines/vn/triggers/roadmapStop_beforeDelete.sql deleted file mode 100644 index f0faeb8bef..0000000000 --- a/db/routines/vn/triggers/roadmapStop_beforeDelete.sql +++ /dev/null @@ -1,26 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeDelete` - BEFORE DELETE ON `roadmapStop` - FOR EACH ROW -BEGIN - DECLARE vMaxEta DATETIME; - DECLARE vRoadmapEta DATETIME; - - IF OLD.roadmapFk IS NOT NULL THEN - SELECT MAX(eta) INTO vMaxEta - FROM roadmapStop - WHERE roadmapFk = OLD.roadmapFk - AND id <> OLD.id; - - SELECT eta INTO vRoadmapEta - FROM roadmap - WHERE id = OLD.roadmapFk; - - IF vMaxEta <> vRoadmapEta OR vMaxEta IS NULL THEN - UPDATE roadmap - SET eta = vMaxEta - WHERE id = OLD.roadmapFk; - END IF; - END IF; -END$$ -DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/roadmapStop_beforeInsert.sql b/db/routines/vn/triggers/roadmapStop_beforeInsert.sql index 012702f3ed..2c2a03d866 100644 --- a/db/routines/vn/triggers/roadmapStop_beforeInsert.sql +++ b/db/routines/vn/triggers/roadmapStop_beforeInsert.sql @@ -3,8 +3,6 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeInser BEFORE INSERT ON `roadmapStop` FOR EACH ROW BEGIN - DECLARE vRoadmapEta DATETIME; - SET NEW.editorFk = account.myUser_getId(); IF NEW.description IS NOT NULL THEN @@ -16,17 +14,5 @@ BEGIN CALL util.throw('Departure time can not be after arrival time'); END IF; END IF; - - IF NEW.roadmapFk IS NOT NULL AND NEW.eta IS NOT NULL THEN - SELECT eta INTO vRoadmapEta - FROM roadmap - WHERE id = NEW.roadmapFk; - - IF vRoadmapEta < NEW.eta OR vRoadmapEta IS NULL THEN - UPDATE roadmap - SET eta = NEW.eta - WHERE id = NEW.roadmapFk; - END IF; - END IF; END$$ DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql index c3142c8acc..9115b972a0 100644 --- a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql +++ b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql @@ -3,40 +3,17 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeUpdat BEFORE UPDATE ON `roadmapStop` FOR EACH ROW BEGIN - DECLARE vMaxEta DATETIME; - DECLARE vCurrentEta DATETIME; - SET NEW.editorFk = account.myUser_getId(); IF NOT (NEW.description <=> OLD.description) THEN SET NEW.description = UCASE(NEW.description); END IF; - IF (NOT (NEW.roadmapFk <=> OLD.roadmapFk) AND NEW.roadmapFk IS NOT NULL) - OR (NOT (NEW.eta <=> OLD.eta)) THEN + IF NOT (NEW.roadmapFk <=> OLD.roadmapFk) OR NOT (NEW.eta <=> OLD.eta) THEN IF NEW.eta < (SELECT etd FROM roadmap WHERE id = NEW.roadmapFk) THEN 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 vMaxEta < NEW.eta OR vMaxEta IS NULL THEN - SET vMaxEta = NEW.eta; - END IF; - - 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; 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 deleted file mode 100644 index 7fcc31d922..0000000000 --- a/db/routines/vn/triggers/roadmap_afterUpdate.sql +++ /dev/null @@ -1,17 +0,0 @@ -DELIMITER $$ -CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_afterUpdate` - 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; - END IF; - 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..ff6957f0c0 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,15 @@ BEGIN FROM worker w WHERE w.id = NEW.driverChangeFk); END IF; + + IF NOT (NEW.etd <=> OLD.etd) THEN + SET vSeconds = TIME_TO_SEC(TIMEDIFF(NEW.etd, OLD.etd)); + + IF vSeconds <> 0 THEN + UPDATE roadmapStop + SET eta = eta + INTERVAL vSeconds SECOND + WHERE roadmapFk = NEW.id; + END IF; + END IF; END$$ DELIMITER ; \ No newline at end of file diff --git a/db/routines/vn/views/roadmapEta.sql b/db/routines/vn/views/roadmapEta.sql new file mode 100644 index 0000000000..dcf2afaf8a --- /dev/null +++ b/db/routines/vn/views/roadmapEta.sql @@ -0,0 +1,8 @@ +CREATE OR REPLACE DEFINER=`vn`@`localhost` + SQL SECURITY DEFINER + VIEW `vn`.`roadmapEta` +AS SELECT `roadmapFk` AS id, + MAX(`eta`) AS `eta` +FROM `vn`.`roadmapStop` +WHERE `roadmapFk` IS NOT NULL +GROUP BY `roadmapFk`; \ 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..56c4f01b09 --- /dev/null +++ b/db/versions/11436-bronzeMonstera/00-firstScript.sql @@ -0,0 +1,3 @@ +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'; \ No newline at end of file diff --git a/db/versions/11436-bronzeMonstera/01-firstScript.sql b/db/versions/11436-bronzeMonstera/01-firstScript.sql new file mode 100644 index 0000000000..d809f75b1c --- /dev/null +++ b/db/versions/11436-bronzeMonstera/01-firstScript.sql @@ -0,0 +1,3 @@ +ALTER TABLE vn.volumeConfig ADD COLUMN id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST; + +GRANT UPDATE (palletM3) ON vn.volumeConfig TO deliveryBoss; diff --git a/db/versions/11436-bronzeMonstera/02-firstScript.sql b/db/versions/11436-bronzeMonstera/02-firstScript.sql new file mode 100644 index 0000000000..ee384ac2ce --- /dev/null +++ b/db/versions/11436-bronzeMonstera/02-firstScript.sql @@ -0,0 +1,3 @@ +ALTER TABLE vn.vehicle + MODIFY COLUMN typeFk enum('car','van','truck','trailer','tug','dolly','trailerLink') + CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT 'van' NOT NULL; diff --git a/db/versions/11436-bronzeMonstera/03-firstScript.sql b/db/versions/11436-bronzeMonstera/03-firstScript.sql new file mode 100644 index 0000000000..efd713c3ad --- /dev/null +++ b/db/versions/11436-bronzeMonstera/03-firstScript.sql @@ -0,0 +1 @@ +ALTER TABLE vn.roadmap DROP COLUMN eta;