DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`clean`(IN `v_full` TINYINT(1))
proc: BEGIN
	DECLARE vDate DATETIME;
	DECLARE vDate18 DATETIME;
	DECLARE vDate26 DATETIME;
	DECLARE vDate8 DATE;
	DECLARE vDate6 DATE;
	DECLARE vDate3 DATE;
	DECLARE vDate2000 DATE;
	DECLARE vRangeDeleteTicket INT;
	DECLARE vStrtable VARCHAR(15) DEFAULT NULL;

	SET vDate = util.VN_CURDATE() - INTERVAL 2 MONTH;
	SET vDate18 = util.VN_CURDATE() - INTERVAL 18 MONTH;
	SET vDate26 = util.VN_CURDATE() - INTERVAL 26 MONTH;
	SET vDate3 = util.VN_CURDATE() - INTERVAL 3 MONTH;
	SET vDate8 = util.VN_CURDATE() - INTERVAL 8 DAY;
	SET vDate6 = util.VN_CURDATE() - INTERVAL 6 DAY;
	SET vDate2000 = util.VN_CURDATE() + INTERVAL (2000 - YEAR(util.VN_CURDATE())) YEAR;
	SET vRangeDeleteTicket = 60;

	DELETE FROM Rutas_monitor WHERE fecha < vDate;
	DELETE FROM cdr WHERE calldate < vDate18;
	DELETE FROM Monitoring WHERE ODBC_TIME < vDate;
	DELETE FROM Conteo WHERE Fecha < vDate;
	DELETE FROM XDiario WHERE FECHA < vDate3 OR FECHA IS NULL;
	DELETE FROM mail WHERE DATE_ODBC < vDate;
	DELETE FROM expeditions_deleted WHERE odbc_date < vDate26;
	DELETE FROM sms WHERE DATE_ODBC < vDate18;
	DELETE FROM Movimientos_mark WHERE odbc_date < vDate;
	DELETE FROM Splits WHERE Fecha < vDate18;

	DELETE ts
		FROM Tickets_stack ts
	JOIN Tickets t ON ts.Id_Ticket = t.Id_Ticket
		WHERE t.Fecha < vDate;

	DELETE tobs
		FROM ticket_observation tobs
	JOIN Tickets t ON tobs.Id_Ticket = t.Id_Ticket
		WHERE t.Fecha < vDate;

	DELETE tobs
		FROM movement_label tobs
			JOIN Movimientos m ON tobs.Id_Movimiento = m.Id_Movimiento
		JOIN Tickets t ON m.Id_Ticket = t.Id_Ticket WHERE t.Fecha < vDate;

	DELETE FROM Remesas WHERE `Fecha Remesa` < vDate18;
	DELETE FROM sharingcart where datEND < vDate;
	DELETE FROM sharingclient where datEND < vDate;

	DELETE tt.*
		FROM Tickets_turno tt
			LEFT JOIN Movimientos m USING(Id_Ticket)
		WHERE m.Id_Article IS NULL;

	DELETE FROM cl_main WHERE Fecha < vDate18;
	DELETE FROM hedera.`order` WHERE date_send < vDate18;
	DELETE FROM vn.message WHERE sendDate < vDate;
	DELETE FROM travel_reserve WHERE odbc_date < vDate;

	DELETE FROM cache.departure_limit WHERE Fecha < util.VN_CURDATE() - INTERVAL 1 MONTH;

	DELETE cm
		FROM Compres_mark cm
			JOIN Compres c ON c.Id_Compra = cm.Id_Compra
			JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
			JOIN travel t ON t.id = e.travel_id
		WHERE t.landing <= vDate;

	DELETE co
		FROM Compres_ok co JOIN Compres c ON c.Id_Compra = co.Id_Compra
			JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada
			JOIN travel t ON t.id = e.travel_id
		WHERE t.landing <= vDate;
	DELETE FROM scan WHERE odbc_date < vDate6 AND id <> 1;

	IF v_full THEN
		DELETE t
			FROM Tickets t
				LEFT JOIN Tickets_turno tt ON tt.Id_Ticket = t.Id_Ticket
			WHERE Fecha NOT IN ('2000-01-01','2000-01-02')
				AND YEAR(Fecha) = 2000
				AND ABS(DATEDIFF(Fecha,vDate2000)) > vRangeDeleteTicket
				AND tt.Id_Ticket IS NULL;
	END IF;

	-- Tickets Nulos PAK 11/10/2016
	UPDATE Tickets
		SET empresa_id = 965
		WHERE Id_Cliente = 31
			AND empresa_id != 965;
END$$
DELIMITER ;