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
|
||||
CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL);
|
||||
END IF;
|
||||
SET NEW.name = UCASE(NEW.name);
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -14,5 +14,6 @@ BEGIN
|
|||
IF NEW.trailerPlate IS NOT NULL THEN
|
||||
CALL vehicle_checkNumberPlate(NEW.trailerPlate, NULL);
|
||||
END IF;
|
||||
SET NEW.name = UCASE(NEW.name);
|
||||
END$$
|
||||
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 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 `name` varchar(45) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL,
|
||||
ADD eta datetime NOT NULL COMMENT 'Tiempo estimado de llegada' AFTER etd,
|
||||
ADD roadmapAddressFk int(11) NOT NULL AFTER `name`;
|
||||
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
ALTER TABLE vn.roadmapStop
|
||||
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