feat: refs #8227 Update roadmap triggers to manage eta adjustments and prevent recursive calls
gitea/salix/pipeline/pr-test There was a failure building this commit Details

This commit is contained in:
Guillermo Bonet 2025-02-10 13:04:23 +01:00
parent a002168f61
commit e19e50de14
4 changed files with 65 additions and 22 deletions

View File

@ -19,6 +19,9 @@ BEGIN
CALL util.throw('Departure time can not be after arrival time');
END IF;
IF @roadmapTriggerIsActive IS NULL THEN
SET @roadmapTriggerIsActive = TRUE;
SELECT MAX(eta) INTO vMaxEta
FROM roadmapStop
WHERE roadmapFk = NEW.roadmapFk
@ -37,6 +40,10 @@ BEGIN
SET eta = vMaxEta
WHERE id = NEW.roadmapFk;
END IF;
SET @roadmapTriggerIsActive = NULL;
END IF;
END IF;
END$$
DELIMITER ;

View File

@ -5,13 +5,22 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_afterUpdate`
BEGIN
DECLARE vSeconds INT;
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 roadmapStop
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 ;

View File

@ -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 ;

View File

@ -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;