This commit is contained in:
parent
d6bd60f181
commit
eb9d3a7b21
|
@ -12,8 +12,15 @@ BEGIN
|
|||
* @param vDateToPaste Fecha para pegar
|
||||
*/
|
||||
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
|
||||
BEGIN
|
||||
ROLLBACK;
|
||||
|
@ -28,23 +35,14 @@ BEGIN
|
|||
|
||||
START TRANSACTION;
|
||||
|
||||
SELECT AUTO_INCREMENT INTO vNextRoadmapId
|
||||
FROM information_schema.tables
|
||||
WHERE table_name = 'roadmap'
|
||||
AND table_schema = 'vn';
|
||||
OPEN vRoadmaps;
|
||||
l: LOOP
|
||||
SET vDone = FALSE;
|
||||
FETCH vRoadmaps INTO vRoadmapFk;
|
||||
|
||||
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);
|
||||
IF vDone THEN
|
||||
LEAVE l;
|
||||
END IF;
|
||||
|
||||
INSERT INTO roadmap (`name`, roadmapAddressFk, etd, eta, observations, price)
|
||||
SELECT `name`,
|
||||
|
@ -53,19 +51,22 @@ BEGIN
|
|||
eta + INTERVAL vDaysDiff DAY,
|
||||
observations,
|
||||
price
|
||||
FROM tmp.roadmapsToCopy;
|
||||
FROM roadmap
|
||||
WHERE id = vRoadmapFk;
|
||||
|
||||
SET vNewRoadmapFk = LAST_INSERT_ID();
|
||||
|
||||
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;
|
||||
SELECT vNewRoadmapFk,
|
||||
roadmapAddressFk,
|
||||
eta + INTERVAL vDaysDiff DAY,
|
||||
`description`,
|
||||
bufferFk
|
||||
FROM roadmapStop
|
||||
WHERE roadmapFk = vRoadmapFk;
|
||||
END LOOP;
|
||||
CLOSE vRoadmaps;
|
||||
|
||||
COMMIT;
|
||||
|
||||
DROP TEMPORARY TABLE tmp.roadmapsToCopy;
|
||||
END$$
|
||||
DELIMITER ;
|
||||
|
|
Loading…
Reference in New Issue