CREATE DEFINER=`root`@`localhost` PROCEDURE `SPUpdateHonorario`()
begin
        declare no_more_rows boolean default false;
        declare empresa_honorario_id, empresa_impuesto_id, IDImpuesto int;
        declare total int default 0;
        declare importe_honorario, importe_impuesto, importe_actualizado decimal(20,2) default 0.00;
        declare cursor1 cursor for select person_id, honorario from person_configurations where active = 2 and honorario >0;
        declare cursor2 cursor for
                SELECT idPersonVto,person_id,importe FROM vto_person_impuesto where impuesto_id=39;
        declare continue handler for not found 
        set no_more_rows := true;

        open cursor1;
        LOOP1: loop
                fetch cursor1 INTO empresa_honorario_id, importe_honorario;
                if no_more_rows then
                    close cursor1;
                    leave LOOP1;
                end if;
                open cursor2;
                LOOP2: loop
                        fetch cursor2 INTO IDImpuesto, empresa_impuesto_id, importe_impuesto;
                        if no_more_rows then
                                set no_more_rows := false;
                                close cursor2;
                                leave LOOP2;
                        end if;
                        if empresa_honorario_id = empresa_impuesto_id then
                                if importe_honorario != importe_impuesto then
                                        set total = total +1;
                                        set importe_actualizado := importe_honorario;
                                        Update vto_person_impuesto set importe = importe_actualizado where idPersonVto = IDImpuesto;
                                end if;

                        end if;

                end loop LOOP2;
        end loop LOOP1;
        select total;
end;