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
|
||||
BEGIN
|
||||
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
|
||||
CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL);
|
||||
END IF;
|
||||
|
|
|
@ -4,6 +4,10 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeUpdate`
|
|||
FOR EACH ROW
|
||||
BEGIN
|
||||
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
|
||||
CALL vehicle_checkNumberPlate(NEW.tractorPlate, NULL);
|
||||
END IF;
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
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 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 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
|
||||
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;
|
||||
ALTER TABLE vn.roadmapStop
|
||||
CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL,
|
||||
CHANGE addressFk roadmapAddressFk int(11) DEFAULT NULL NULL;
|
||||
|
|
|
@ -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