DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticketStateToday_setState`(vTicketFk INT, vStateCode VARCHAR(45))
BEGIN

	/* Modifica el estado de un ticket de hoy
	 *
	 * @param vTicketFk el id del ticket
	 * @param vStateCode estado a modificar del ticket
	 *
	 */

	DECLARE vAlertLevel INT;
	DECLARE vAlertLevelPacked INT;

	SELECT s.alertLevel, al.id
			INTO vAlertLevel, vAlertLevelPacked
		FROM state s
			JOIN ticketStateToday tst ON tst.state = s.id
			JOIN alertLevel al ON al.code = 'PACKED'
		WHERE tst.ticketFk = vTicketFk
		LIMIT 1;

	IF vAlertLevel < vAlertLevelPacked THEN

		CALL vn.ticket_setState(vTicketFk, vStateCode);

	END IF;

END$$
DELIMITER ;
