DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`analisis_ventas_update`()
BEGIN
	DECLARE vLastMonth DATE;

	SET vLastMonth = util.firstDayOfMonth(TIMESTAMPADD(MONTH, -1, util.VN_CURDATE()));

	DELETE FROM analisis_ventas
		WHERE Año > YEAR(vLastMonth)
			OR (Año = YEAR(vLastMonth) AND Mes >= MONTH(vLastMonth));

	INSERT INTO analisis_ventas (
			Familia,
			Reino,
			salesDepartmentFk,
			Comercial,
			Comprador,
			Provincia,
			almacen,
			Año,
			Mes,
			Semana,
			Vista,
			Importe
		)
		SELECT 
			it.name,
			ic.name,
			c.salesDepartmentFk,
			w.code,
			w2.code,
			p.name,
			wa.name,
			tm.year,
			tm.month,
			tm.week,
			dm.description,
			bt.importe
		FROM bs.ventas bt
			LEFT JOIN vn.itemType it ON it.id = bt.tipo_id
			LEFT JOIN vn.itemCategory ic ON ic.id = it.categoryFk
			LEFT JOIN vn.client c on c.id = bt.Id_Cliente
			LEFT JOIN vn.worker w ON w.id = c.salesPersonFk
			LEFT JOIN vn.worker w2 ON w2.id = it.workerFk
			JOIN vn.time tm ON tm.dated = bt.fecha
			JOIN vn.sale s ON s.id = bt.Id_Movimiento
			LEFT JOIN vn.ticket t ON t.id = s.ticketFk
			JOIN vn.agencyMode am ON am.id = t.agencyModeFk
			LEFT JOIN vn.deliveryMethod dm ON dm.id = am.deliveryMethodFk
			LEFT JOIN vn.address a ON a.id = t.addressFk
			LEFT JOIN vn.province p ON p.id = a.provinceFk
			LEFT JOIN vn.warehouse wa ON wa.id = t.warehouseFk
		WHERE bt.fecha >= vLastMonth AND ic.merchandise;
END$$
DELIMITER ;
