DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`travel_moveRaids`()
BEGIN
/**
 * Desplaza los travels en el futuro y avisa a los compradores
 *
 */
	DECLARE vDone BOOL DEFAULT FALSE;
	DECLARE vBuyerEmail VARCHAR(40);
	DECLARE vTravelLink TEXT;
	DECLARE vMailBody TEXT DEFAULT '';

	DECLARE vCur CURSOR FOR
		SELECT GROUP_CONCAT(DISTINCT
				CONCAT('https://salix.verdnatura.es/#!/travel/',
					ttm.travelFk,
					'/summary ')
				ORDER BY ttm.travelFk SEPARATOR '\n\r') travelLink,
			CONCAT(u.name, '@verdnatura.es') buyerEmail
			FROM tTravelToMove ttm
				JOIN entry e ON e.travelFk = ttm.travelFk
				JOIN buy b ON b.entryFk = e.id
				JOIN item i ON i.id = b.itemFk
				JOIN itemType it ON it.id = i.typeFk
				JOIN account.user u ON u.id = it.workerFk
			GROUP BY u.name;

	DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;

	DECLARE EXIT HANDLER FOR SQLEXCEPTION
	BEGIN
		ROLLBACK;
		RESIGNAL;
	END;

	CREATE OR REPLACE TEMPORARY TABLE tTravelToMove
		SELECT id travelFk,
				util.VN_CURDATE() + INTERVAL daysInForward  DAY newLanded
			FROM travel
			WHERE isRaid
				AND daysInForward;

	START TRANSACTION;

	UPDATE travel tr
			JOIN tTravelToMove ttm ON ttm.travelFk = tr.id
		SET tr.landed = ttm.newLanded;

	OPEN vCur;

	l: LOOP
		SET vDone = FALSE;
		FETCH vCur INTO vTravelLink, vBuyerEmail;

		IF vDone THEN
			LEAVE l;
		END IF;

		CALL `vn`.`mail_insert`(
			vBuyerEmail,
			'noreply@verdnatura.es',
			'Cambio de fecha en Redadas',
			CONCAT('Se ha movido los siguientes travels: \n\r ', vTravelLink));
	END LOOP;
	CLOSE vCur;
	COMMIT;
	DROP TEMPORARY TABLE tTravelToMove;
END$$
DELIMITER ;
