DELIMITER $$
CREATE PROCEDURE `FixPartes`(idPro INT, orden INT)
BEGIN
	DECLARE i INT DEFAULT 0;
    DECLARE cantAnt FLOAT DEFAULT 0;
    DECLARE cantTotal FLOAT DEFAULT 0;
    SELECT count(idInforme) INTO @cantInformes FROM informe
		WHERE idProyecto = idPro AND idEstado = 2;
	SELECT nCantidad INTO @cantTotal FROM columnagrillaproyecto
		INNER JOIN grillaproyecto USING (idGrillaProyecto)
		WHERE idProyecto = idPro AND nOrden = orden LIMIT 1;
	WHILE i < @cantInformes DO
		SELECT idFilaGrillaInforme, sValor, nCantidad INTO @idFila, @valor, @cantidad FROM filagrillainforme
			INNER JOIN columnagrillainforme USING (idColumnaGrillaInforme)
			INNER JOIN grillainforme ON grillainforme.idGrillaInforme = columnagrillainforme.idGrillaInforme
			INNER JOIN informe ON grillainforme.idInforme = informe.idInforme
			WHERE idProyecto = idPro AND columnagrillainforme.nOrden = orden
            order by idFilagrillainforme ASC LIMIT 1 OFFSET i;
		/*Select nCantidad no es 0*/
        IF @cantidad = 0 THEN 
		   SET @cantidad = ROUND(cantAnt + (@valor * @cantTotal / 100), 2);
		ELSE
			SET @cantidad = @cantidad + cantAnt;
		END IF;
		SET @valor = ROUND(@cantidad * 100 / @cantTotal, 2);
		UPDATE filagrillainforme SET sValor = @valor, nCantidad = @cantidad WHERE idFilaGrillaInforme = @idFila;
        SET i = i + 1;
        SET cantAnt = @cantidad;
	END WHILE;
END$$
DELIMITER ;