public String codigoPlanDisponible (int id_padre, String codigo_plan_padre){
        
        String codigo_hijo = codigo_plan_padre;
        
        Vector<Cuenta> Hijos = getHijos(id_padre);
        
        String nuevo_codigo="";
        boolean termine = false;
        int i = 1;
        
        while ((i <= Hijos.size()+1)&&(!termine)){
            //caso Titulo Raiz, Activo, etc
            if ((codigo_plan_padre.length()==1) && (codigo_plan_padre.equals("0"))){
                nuevo_codigo="";
            }
            else{
                //caso hijo de Activo, etc
                if (codigo_plan_padre.length()==1){
                    nuevo_codigo=codigo_plan_padre+".";
                }
                else{
                    //caso de hijo en que ya son .01, .02. etc
                    if ((codigo_plan_padre.length()>1)&&(i<=9)){
                        nuevo_codigo=codigo_plan_padre+".0";
                    }
                    else{
                        //caso de hijo en que ya son .11, .12. etc
                        nuevo_codigo=codigo_plan_padre+".";
                    }
                }
            }
            
            nuevo_codigo = nuevo_codigo+Integer.toString(i);
            
            if (i <= Hijos.size()){
                Cuenta hijo = (Cuenta) Hijos.get(i-1);
                if (!hijo.getCodigo_PC().equals(nuevo_codigo)){
                    termine = true;
                }
            }
            else{
                //llegue al maximo, quiere decir que el nuevo codigo toma k
                termine=true;
            }           
            i++;          
        
        }        
        return nuevo_codigo;       
    }