2024-08-22 15:02:59 +00:00
|
|
|
DELIMITER $$
|
2024-10-01 06:51:03 +00:00
|
|
|
CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeUpdate`
|
2024-08-22 15:02:59 +00:00
|
|
|
BEFORE UPDATE ON `roadmap`
|
|
|
|
FOR EACH ROW
|
|
|
|
BEGIN
|
2025-01-21 13:03:50 +00:00
|
|
|
SET NEW.editorFk = account.myUser_getId();
|
2025-01-29 13:15:22 +00:00
|
|
|
|
|
|
|
IF NOT (NEW.name <=> OLD.name) THEN
|
|
|
|
SET NEW.name = UCASE(NEW.name);
|
|
|
|
END IF;
|
|
|
|
|
|
|
|
IF NEW.etd > NEW.eta AND NEW.etd IS NOT NULL AND NEW.eta IS NOT NULL THEN
|
2025-01-23 13:54:59 +00:00
|
|
|
CALL util.throw('Departure time can not be after arrival time');
|
|
|
|
END IF;
|
2025-01-29 13:15:22 +00:00
|
|
|
|
|
|
|
IF NOT (NEW.trailerPlate <=> OLD.trailerPlate) THEN
|
2025-01-27 10:04:34 +00:00
|
|
|
SET NEW.m3 = (SELECT m3 FROM vehicle WHERE numberPlate = NEW.trailerPlate);
|
|
|
|
END IF;
|
2025-01-29 13:15:22 +00:00
|
|
|
|
|
|
|
IF NOT (NEW.tugPlate <=> OLD.tugPlate) THEN
|
|
|
|
SET NEW.m3 = NEW.m3 + (SELECT m3 FROM vehicle WHERE numberPlate = NEW.tugPlate);
|
|
|
|
END IF;
|
|
|
|
|
|
|
|
IF NOT (NEW.driverName <=> OLD.driverName) THEN
|
|
|
|
SET NEW.driver1Fk = NULL;
|
|
|
|
END IF;
|
|
|
|
|
|
|
|
IF NOT (NEW.driver1Fk <=> OLD.driver1Fk) AND NEW.driver1Fk IS NOT NULL THEN
|
|
|
|
SET NEW.driverName = (SELECT CONCAT(w.firstName, ' ', w.lastName)
|
|
|
|
FROM worker w
|
|
|
|
WHERE w.id = NEW.driver1Fk);
|
|
|
|
|
|
|
|
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.driver1Fk);
|
|
|
|
END IF;
|
|
|
|
|
|
|
|
IF NOT (NEW.driverChangeName <=> OLD.driverChangeName) THEN
|
|
|
|
SET NEW.driverChangeFk = NULL;
|
|
|
|
END IF;
|
|
|
|
|
|
|
|
IF NOT (NEW.driverChangeFk <=> OLD.driverChangeFk) AND NEW.driverChangeFk IS NOT NULL THEN
|
|
|
|
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;
|
2024-08-22 15:02:59 +00:00
|
|
|
END$$
|
|
|
|
DELIMITER ;
|