feat: refs #8227 Roadmap major changes
This commit is contained in:
parent
052630d268
commit
162cd4d69e
|
@ -0,0 +1,35 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `vn`.`getTimeBetweenRoadmapAddresses`(
|
||||||
|
vRoadmapAddressFrom INT,
|
||||||
|
vRoadmapAddressTo INT
|
||||||
|
)
|
||||||
|
RETURNS int(11)
|
||||||
|
DETERMINISTIC
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Retorna el tiempo en segundos que se suele tardar en ir
|
||||||
|
* de un punto de distribución a otro en una ruta troncal.
|
||||||
|
*
|
||||||
|
* @param vRoadmapAddressFrom Punto de distribución de origen
|
||||||
|
* @param vRoadmapAddressTo Punto de distribución de destino
|
||||||
|
* @return Tiempo en segundos
|
||||||
|
*/
|
||||||
|
DECLARE vSeconds INT;
|
||||||
|
|
||||||
|
WITH wRoadmap AS (
|
||||||
|
SELECT ROW_NUMBER() OVER(PARTITION BY roadmapFk ORDER BY eta) `sequence`,
|
||||||
|
roadmapFk,
|
||||||
|
roadmapAddressFk,
|
||||||
|
eta
|
||||||
|
FROM vn.roadmapStop
|
||||||
|
)
|
||||||
|
SELECT AVG(TIME_TO_SEC(TIMEDIFF(rTo.eta, rFrom.eta))) INTO vSeconds
|
||||||
|
FROM wRoadmap rFrom
|
||||||
|
JOIN wRoadmap rTo ON rTo.roadmapFk = rFrom.roadmapFk
|
||||||
|
WHERE rFrom.roadmapAddressFk = vRoadmapAddressFrom
|
||||||
|
AND rTo.roadmapAddressFk = vRoadmapAddressTo
|
||||||
|
AND rFrom.`sequence` + 1 = rTo.`sequence`;
|
||||||
|
|
||||||
|
RETURN vSeconds;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -4,6 +4,10 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeInsert`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
SET NEW.editorFk = account.myUser_getId();
|
SET NEW.editorFk = account.myUser_getId();
|
||||||
|
IF NEW.etd > NEW.eta THEN
|
||||||
|
CALL util.throw('Departure time can not be after arrival time');
|
||||||
|
END IF;
|
||||||
|
|
||||||
IF NEW.tractorPlate IS NOT NULL THEN
|
IF NEW.tractorPlate IS NOT NULL THEN
|
||||||
CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL);
|
CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL);
|
||||||
END IF;
|
END IF;
|
||||||
|
|
|
@ -4,6 +4,10 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeUpdate`
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
BEGIN
|
BEGIN
|
||||||
SET NEW.editorFk = account.myUser_getId();
|
SET NEW.editorFk = account.myUser_getId();
|
||||||
|
IF NEW.etd > NEW.eta THEN
|
||||||
|
CALL util.throw('Departure time can not be after arrival time');
|
||||||
|
END IF;
|
||||||
|
|
||||||
IF NEW.tractorPlate IS NOT NULL THEN
|
IF NEW.tractorPlate IS NOT NULL THEN
|
||||||
CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL);
|
CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL);
|
||||||
END IF;
|
END IF;
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
ALTER TABLE vn.roadmap
|
ALTER TABLE vn.roadmap
|
||||||
|
COMMENT='Rutas troncales (trailers)',
|
||||||
MODIFY COLUMN m3 int(10) unsigned DEFAULT NULL NULL COMMENT 'Capacidad máxima del remolque',
|
MODIFY COLUMN m3 int(10) unsigned DEFAULT NULL NULL COMMENT 'Capacidad máxima del remolque',
|
||||||
|
MODIFY COLUMN trailerPlate varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL NULL,
|
||||||
|
MODIFY COLUMN etd datetime NOT NULL COMMENT 'Tiempo estimado de salida',
|
||||||
CHANGE driver1Fk driverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Conductor principal' AFTER driverName,
|
CHANGE driver1Fk driverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Conductor principal' AFTER driverName,
|
||||||
CHANGE driver2Fk codriverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Copiloto' AFTER driverFk,
|
CHANGE driver2Fk codriverFk int(10) unsigned DEFAULT NULL NULL COMMENT 'Copiloto' AFTER driverFk,
|
||||||
CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER m3;
|
CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER m3,
|
||||||
|
ADD eta datetime NOT NULL AFTER etd COMMENT 'Tiempo estimado de llegada',
|
||||||
|
ADD roadmapAddressFk int(11) NOT NULL AFTER `name`;
|
||||||
|
|
|
@ -1 +1,7 @@
|
||||||
ALTER TABLE vn.roadmapStop CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL;
|
UPDATE vn.roadmap
|
||||||
|
SET roadmapAddressFk = (SELECT MIN(addressFk) FROM vn.roadmapAddress),
|
||||||
|
eta = etd + INTERVAL 1 DAY;
|
||||||
|
|
||||||
|
ALTER TABLE vn.roadmap
|
||||||
|
ADD CONSTRAINT roadmap_roadmapAddress_FK FOREIGN KEY (roadmapAddressFk)
|
||||||
|
REFERENCES vn.roadmapAddress(addressFk) ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
ALTER TABLE vn.route
|
ALTER TABLE vn.roadmapStop
|
||||||
ADD roadmapStopFk int(11) NULL,
|
CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL,
|
||||||
ADD CONSTRAINT route_roadmapStop_FK FOREIGN KEY (roadmapStopFk) REFERENCES vn.roadmapStop(id) ON DELETE RESTRICT ON UPDATE CASCADE,
|
CHANGE addressFk roadmapAddressFk int(11) DEFAULT NULL NULL;
|
||||||
CHANGE editorFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER roadmapStopFk;
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
ALTER TABLE vn.route
|
||||||
|
ADD roadmapStopFk int(11) NULL,
|
||||||
|
ADD CONSTRAINT route_roadmapStop_FK FOREIGN KEY (roadmapStopFk) REFERENCES vn.roadmapStop(id) ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||||
|
CHANGE editorFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER roadmapStopFk;
|
|
@ -0,0 +1,2 @@
|
||||||
|
ALTER TABLE vn.roadmapAddress
|
||||||
|
COMMENT='Direcciones de los troncales o también llamados puntos de distribución';
|
Loading…
Reference in New Issue