refactor: refs #8227 Requested changes
gitea/salix/pipeline/pr-dev This commit looks good Details

This commit is contained in:
Guillermo Bonet 2025-02-04 08:27:21 +01:00
parent d6bd60f181
commit eb9d3a7b21
1 changed files with 28 additions and 27 deletions

View File

@ -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 ;