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