This commit is contained in:
parent
306eb6a059
commit
e9f1e28ac0
|
@ -0,0 +1,71 @@
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`roadmap_cloneDay`(
|
||||||
|
vDateToCopy DATE,
|
||||||
|
vDateToPaste DATE
|
||||||
|
)
|
||||||
|
BEGIN
|
||||||
|
/**
|
||||||
|
* Clona roadmaps de un día a otro, incluyendo las paradas y sin algunos
|
||||||
|
* campos de la tabla principal, como matrículas, conductores...
|
||||||
|
*
|
||||||
|
* @param vDateToCopy Fecha para copiar
|
||||||
|
* @param vDateToPaste Fecha para pegar
|
||||||
|
*/
|
||||||
|
DECLARE vDaysDiff INT;
|
||||||
|
DECLARE vNextRoadmapId INT;
|
||||||
|
|
||||||
|
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||||
|
BEGIN
|
||||||
|
ROLLBACK;
|
||||||
|
RESIGNAL;
|
||||||
|
END;
|
||||||
|
|
||||||
|
SET vDaysDiff = DATEDIFF(vDateToPaste, vDateToCopy);
|
||||||
|
|
||||||
|
IF vDaysDiff IS NULL OR NOT vDaysDiff THEN
|
||||||
|
CALL util.throw("No valid dates");
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
SELECT AUTO_INCREMENT INTO vNextRoadmapId
|
||||||
|
FROM information_schema.tables
|
||||||
|
WHERE table_name = 'roadmap'
|
||||||
|
AND table_schema = 'vn';
|
||||||
|
|
||||||
|
CREATE OR REPLACE TEMPORARY TABLE tmp.roadmapsToCopy
|
||||||
|
ENGINE = MEMORY
|
||||||
|
SELECT ROW_NUMBER() OVER(ORDER BY id) rowOrder,
|
||||||
|
id,
|
||||||
|
`name`,
|
||||||
|
roadmapAddressFk,
|
||||||
|
etd,
|
||||||
|
eta,
|
||||||
|
observations,
|
||||||
|
price
|
||||||
|
FROM roadmap
|
||||||
|
WHERE etd BETWEEN vDateToCopy AND util.dayEnd(vDateToCopy);
|
||||||
|
|
||||||
|
INSERT INTO roadmap (`name`, roadmapAddressFk, etd, eta, observations, price)
|
||||||
|
SELECT `name`,
|
||||||
|
roadmapAddressFk,
|
||||||
|
etd + INTERVAL vDaysDiff DAY,
|
||||||
|
eta + INTERVAL vDaysDiff DAY,
|
||||||
|
observations,
|
||||||
|
price
|
||||||
|
FROM tmp.roadmapsToCopy;
|
||||||
|
|
||||||
|
INSERT INTO roadmapStop (roadmapFk, roadmapAddressFk, eta, `description`, bufferFk)
|
||||||
|
SELECT (rtc.rowOrder - 1) + vNextRoadmapId,
|
||||||
|
rs.roadmapAddressFk,
|
||||||
|
rs.eta + INTERVAL vDaysDiff DAY,
|
||||||
|
rs.description,
|
||||||
|
rs.bufferFk
|
||||||
|
FROM tmp.roadmapsToCopy rtc
|
||||||
|
JOIN roadmapStop rs ON rs.roadmapFk = rtc.id;
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE tmp.roadmapsToCopy;
|
||||||
|
END$$
|
||||||
|
DELIMITER ;
|
|
@ -14,5 +14,6 @@ BEGIN
|
||||||
IF NEW.trailerPlate IS NOT NULL THEN
|
IF NEW.trailerPlate IS NOT NULL THEN
|
||||||
CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL);
|
CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL);
|
||||||
END IF;
|
END IF;
|
||||||
|
SET NEW.name = UCASE(NEW.name);
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
|
@ -14,5 +14,6 @@ BEGIN
|
||||||
IF NEW.trailerPlate IS NOT NULL THEN
|
IF NEW.trailerPlate IS NOT NULL THEN
|
||||||
CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL);
|
CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL);
|
||||||
END IF;
|
END IF;
|
||||||
|
SET NEW.name = UCASE(NEW.name);
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
|
@ -3,6 +3,7 @@ ALTER TABLE vn.roadmap
|
||||||
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 trailerPlate varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL NULL,
|
||||||
MODIFY COLUMN etd datetime NOT NULL COMMENT 'Tiempo estimado de salida',
|
MODIFY COLUMN etd datetime NOT NULL COMMENT 'Tiempo estimado de salida',
|
||||||
|
MODIFY COLUMN `name` varchar(45) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL,
|
||||||
ADD eta datetime NOT NULL COMMENT 'Tiempo estimado de llegada' AFTER etd,
|
ADD eta datetime NOT NULL COMMENT 'Tiempo estimado de llegada' AFTER etd,
|
||||||
ADD roadmapAddressFk int(11) NOT NULL AFTER `name`;
|
ADD roadmapAddressFk int(11) NOT NULL AFTER `name`;
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
ALTER TABLE vn.roadmapStop
|
ALTER TABLE vn.roadmapStop
|
||||||
CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL,
|
CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL,
|
||||||
CHANGE addressFk roadmapAddressFk int(11) DEFAULT NULL NULL;
|
CHANGE addressFk roadmapAddressFk int(11) DEFAULT NULL NULL,
|
||||||
|
DROP FOREIGN KEY expeditionTruck_FK_2;
|
||||||
|
|
||||||
|
ALTER TABLE vn.roadmapStop ADD CONSTRAINT roadmapStop_roadmap_FK
|
||||||
|
FOREIGN KEY (roadmapFk) REFERENCES vn.roadmap(id) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
|
Loading…
Reference in New Issue