This commit is contained in:
parent
d6bd60f181
commit
eb9d3a7b21
|
@ -12,8 +12,15 @@ BEGIN
|
||||||
* @param vDateToPaste Fecha para pegar
|
* @param vDateToPaste Fecha para pegar
|
||||||
*/
|
*/
|
||||||
DECLARE vDaysDiff INT;
|
DECLARE vDaysDiff INT;
|
||||||
DECLARE vNextRoadmapId INT;
|
DECLARE vRoadmapFk INT;
|
||||||
|
DECLARE vNewRoadmapFk INT;
|
||||||
|
DECLARE vDone BOOL DEFAULT FALSE;
|
||||||
|
DECLARE vRoadmaps CURSOR FOR
|
||||||
|
SELECT id
|
||||||
|
FROM roadmap
|
||||||
|
WHERE etd BETWEEN vDateToCopy AND util.dayEnd(vDateToCopy);
|
||||||
|
|
||||||
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||||
BEGIN
|
BEGIN
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
@ -28,23 +35,14 @@ BEGIN
|
||||||
|
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
|
|
||||||
SELECT AUTO_INCREMENT INTO vNextRoadmapId
|
OPEN vRoadmaps;
|
||||||
FROM information_schema.tables
|
l: LOOP
|
||||||
WHERE table_name = 'roadmap'
|
SET vDone = FALSE;
|
||||||
AND table_schema = 'vn';
|
FETCH vRoadmaps INTO vRoadmapFk;
|
||||||
|
|
||||||
CREATE OR REPLACE TEMPORARY TABLE tmp.roadmapsToCopy
|
IF vDone THEN
|
||||||
ENGINE = MEMORY
|
LEAVE l;
|
||||||
SELECT ROW_NUMBER() OVER(ORDER BY id) rowOrder,
|
END IF;
|
||||||
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)
|
INSERT INTO roadmap (`name`, roadmapAddressFk, etd, eta, observations, price)
|
||||||
SELECT `name`,
|
SELECT `name`,
|
||||||
|
@ -53,19 +51,22 @@ BEGIN
|
||||||
eta + INTERVAL vDaysDiff DAY,
|
eta + INTERVAL vDaysDiff DAY,
|
||||||
observations,
|
observations,
|
||||||
price
|
price
|
||||||
FROM tmp.roadmapsToCopy;
|
FROM roadmap
|
||||||
|
WHERE id = vRoadmapFk;
|
||||||
|
|
||||||
|
SET vNewRoadmapFk = LAST_INSERT_ID();
|
||||||
|
|
||||||
INSERT INTO roadmapStop (roadmapFk, roadmapAddressFk, eta, `description`, bufferFk)
|
INSERT INTO roadmapStop (roadmapFk, roadmapAddressFk, eta, `description`, bufferFk)
|
||||||
SELECT (rtc.rowOrder - 1) + vNextRoadmapId,
|
SELECT vNewRoadmapFk,
|
||||||
rs.roadmapAddressFk,
|
roadmapAddressFk,
|
||||||
rs.eta + INTERVAL vDaysDiff DAY,
|
eta + INTERVAL vDaysDiff DAY,
|
||||||
rs.description,
|
`description`,
|
||||||
rs.bufferFk
|
bufferFk
|
||||||
FROM tmp.roadmapsToCopy rtc
|
FROM roadmapStop
|
||||||
JOIN roadmapStop rs ON rs.roadmapFk = rtc.id;
|
WHERE roadmapFk = vRoadmapFk;
|
||||||
|
END LOOP;
|
||||||
|
CLOSE vRoadmaps;
|
||||||
|
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.roadmapsToCopy;
|
|
||||||
END$$
|
END$$
|
||||||
DELIMITER ;
|
DELIMITER ;
|
||||||
|
|
Loading…
Reference in New Issue