DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`comparativa_add`()
BEGIN
    DECLARE lastCOMP INT;  # Se trata de una variable para almacenar el ultimo valor del Periodo
    DECLARE vMaxPeriod INT;
	DECLARE vMaxWeek INT;

	SELECT t.period, t.`week` INTO vMaxPeriod, vMaxWeek
		FROM vn.`time` t 
		WHERE t.dated = util.VN_CURDATE();

    SELECT MAX(Periodo) INTO lastCOMP FROM vn2008.Comparativa;
    -- Fijaremos las ventas con más de un mes de antiguedad en la tabla Comparativa

    IF lastCOMP < vMaxPeriod - 3 AND vMaxWeek > 3 THEN
    
		REPLACE vn2008.Comparativa(Periodo, Id_Article, warehouse_id, Cantidad,price)
			SELECT tm.period as Periodo, m.Id_Article, t.warehouse_id, sum(m.Cantidad), sum(v.importe)
            FROM bs.ventas v
            JOIN vn2008.time tm ON tm.date = v.fecha
            JOIN vn2008.Movimientos m ON m.Id_Movimiento = v.Id_Movimiento
            JOIN vn2008.Tipos tp ON tp.tipo_id = v.tipo_id
            JOIN vn2008.reinos r ON r.id = tp.reino_id
            JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
            WHERE tm.period BETWEEN lastCOMP AND vMaxPeriod - 3
            AND t.Id_Cliente NOT IN(400,200)
            AND t.warehouse_id NOT IN (0,13)		
            GROUP BY m.Id_Article, Periodo, t.warehouse_id;

    END IF;
END$$
DELIMITER ;