Index: 0.3-modules/ente_planificador_sector/ente_planificador_sector.module
===================================================================
--- 0.3-modules/ente_planificador_sector/ente_planificador_sector.module	(revision 303fae2a76df6c94a837b5a1db128c463f40e3ea)
+++ 0.3-modules/ente_planificador_sector/ente_planificador_sector.module	(revision 475eb06f93baf18cab77c1c3026f7d52da01996b)
@@ -1393,4 +1393,15 @@
   if ($node->type == 'ente_planificador') {
     //agregando el sector a la vista del nodo
+    if ($op == 'presave') {
+      if (($node->tipo) > 2) {
+        if (!$node->ambito) {
+          $level_lower = $node->tipo - 1;
+          $father = $node->{'ente_planificador_hierarchical_father_' . $level_lower};
+          $node_father = node_load($father);
+          $node->ambito = $node_father->ambito;
+          $node->sector = $node_father->sector;
+        }
+      }
+    }
     if ($op == 'view') {
 			if ($node->content['title1']) {
@@ -1457,32 +1468,25 @@
     //anadiendo el sector al que pertence el ente planificador
     if ($op == 'insert' || $op == 'update') {
-      if ($node->nid && ($node->tipo == 2) && isset($node->sector)) {
-     	  $terms = taxonomy_get_parents($node->sector);
-      	foreach ($terms as $tid => $term) {
-		  		$tid = $term->tid;
-			  }
-        db_query("UPDATE {ente_planificador} set sector = %d WHERE nid = %d",$node->sector, $node->nid);
-        db_query("UPDATE {ente_planificador} set ambito = %d WHERE nid = %d", $tid, $node->nid);
-      }
+      db_query("UPDATE {ente_planificador} set ambito = %d, sector = %d WHERE nid = %d", $node->ambito, $node->sector, $node->nid);
       if ($node->tipo == 1) { //Organismo pÃºblico.
-        db_query("UPDATE {ente_planificador} set sector = %d, ambito = %d, organismo = %d, ente_adscrito = %d, sub_ente = %d WHERE nid = %d", 0, 0, 0, 0, 0, $node->nid);
+        db_query("UPDATE {ente_planificador} set organismo = %d, ente_adscrito = %d, sub_ente = %d WHERE nid = %d", 0, 0, 0, $node->nid);
       }
       if ($node->tipo == 2) { //Organismo pÃºblico.
-				$vocabulary = taxonomy_vocabulary_load(variable_get('ente_planificador_sector_organismos', 0));
-				if ($op == 'update') {
-					$organismo = db_result(db_query("SELECT organismo FROM {ente_planificador} WHERE nid = %d", $node->nid));
-					$term = array(
-    				'vid' => $vocabulary->vid, // Voacabulary ID
-   					'name' => $node->title, // Term Name
-						'tid' => $organismo,
-  				);
-				}
-				if ($op == 'insert') {
-					$term = array(
-    				'vid' => $vocabulary->vid, // Voacabulary ID
-   					'name' => $node->title, // Term Name
-  				);
-				}
-  			taxonomy_save_term($term);
+        $vocabulary = taxonomy_vocabulary_load(variable_get('ente_planificador_sector_organismos', 0));
+	if ($op == 'update') {
+	  $organismo = db_result(db_query("SELECT organismo FROM {ente_planificador} WHERE nid = %d", $node->nid));
+	  $term = array(
+    	    'vid' => $vocabulary->vid, // Voacabulary ID
+   	    'name' => $node->title, // Term Name
+	    'tid' => $organismo,
+     	  );
+	}
+	if ($op == 'insert') {
+	  $term = array(
+    	    'vid' => $vocabulary->vid, // Voacabulary ID
+            'name' => $node->title, // Term Name
+          );
+        }
+  	taxonomy_save_term($term);
         $organismo = $term['tid'];		
         db_query("UPDATE {ente_planificador} set organismo = %d, ente_adscrito = %d, sub_ente = %d WHERE nid = %d", $organismo, 0, 0, $node->nid);
@@ -1490,16 +1494,12 @@
       if ($node->ente_adscrito && $node->tipo == 3) {  //Ente adscrito a un organismo pÃºblico.
         $ente_adscrito = $node->ente_adscrito;
-        $result = db_query("SELECT sector, ambito FROM {ente_planificador} WHERE organismo = %d", $ente_adscrito);
+        db_query("UPDATE {ente_planificador} set ente_adscrito = %d, sub_ente = %d, organismo = %d WHERE nid = %d", $ente_adscrito, 0, $ente_adscrito, $node->nid);
+      }
+      if ($node->sub_ente && $node->tipo == 4) {  //Ente adscrito a otro ente adscrito (sub-ente adscrito).
+        $sub_ente = $node->sub_ente;
+	$result = db_query("SELECT organismo FROM {ente_planificador} WHERE nid = %d", $node->sub_ente);
         $row = db_fetch_object($result);
         if ($row) {
-          db_query("UPDATE {ente_planificador} set ente_adscrito = %d, sector = %d, ambito = %d, sub_ente = %d, organismo = %d WHERE nid = %d", $ente_adscrito, $row->sector, $row->ambito, 0, $ente_adscrito, $node->nid);
-        }
-      }
-      if ($node->sub_ente && $node->tipo == 4) {  //Ente adscrito a otro ente adscrito (sub-ente adscrito).
-        $sub_ente = $node->sub_ente;
-	$result = db_query("SELECT sector, ambito, organismo FROM {ente_planificador} WHERE nid = %d", $node->sub_ente);
-        $row = db_fetch_object($result);
-        if ($row) {
-          db_query("UPDATE {ente_planificador} set sub_ente = %d, sector = %d, ambito = %d, ente_adscrito = %d, organismo = %d WHERE nid = %d", $sub_ente, $row->sector, $row->ambito, $sub_ente, $row->organismo, $node->nid);
+          db_query("UPDATE {ente_planificador} set sub_ente = %d, ente_adscrito = %d, organismo = %d WHERE nid = %d", $sub_ente, $sub_ente, $row->organismo, $node->nid);
         }
       }
@@ -1590,6 +1590,6 @@
 
 function ente_planificador_menu_alter(&$items) {
-  $items['administrar/entes_planificadores']['page callback'] = 'ente_planificador_sector_lista_entes_redirect';
-  $items['administrar_usuarios']['page callback'] = 'ente_planificador_sector_lista_usuarios_redirect';
+ // $items['administrar/entes_planificadores']['page callback'] = 'ente_planificador_sector_lista_entes_redirect';
+ // $items['administrar_usuarios']['page callback'] = 'ente_planificador_sector_lista_usuarios_redirect';
 }
 
@@ -1714,7 +1714,7 @@
   $options = variable_get('ente_planificador_sector_optiones_fecha', 'ambito');
   if ($type_proceso) {
-    if ((is_object($ente_planificador))) {
+    if ((is_object($ente_planificador)) || is_numeric($ente_planificador)) {
       if ($ente_planificador->ambito) {
-        if ($options == 'social') {
+        if ($options == 'sector') {
           $term = taxonomy_get_term($ente_planificador->sector);
           $FIPMI = variable_get('ente_planificador_' . $type_proceso . '_from_' . $term->tid, $now);
@@ -1728,5 +1728,5 @@
       }
     }
-    if (is_numeric($ente_planificador) || user_access('admin all planificador')) { //si es el administrador se aplica la fecha especial
+    if (user_access('admin all planificador')) { //si es el administrador se aplica la fecha especial
       $FIPMI = variable_get('ente_planificador_' . $type_proceso . '_admin_from', $now);
       $FIPMF = variable_get('ente_planificador_' . $type_proceso . '_admin_until', $now);
@@ -1750,4 +1750,5 @@
 function ente_planificador_sector_ente_planificador_muestra_mensaje_alter(&$new_mensaje, $conf) {
   $type_proceso = $conf['plan_tipo'];
+  $procesos = ente_planificador_procesos();
   $ente_planificador = $conf['ente_planificador'];
   $ambito_text = "Ambito Especial de AdministraciÃ³n";
@@ -1758,5 +1759,5 @@
   $expire = $conf['expire'];
   if ($type_proceso) {
-    if (is_object($ente_planificador) && !(in_array($rol_macro, $user->roles))) {
+    if ((is_object($ente_planificador)) || is_numeric($ente_planificador)) {
       $sector = taxonomy_get_term($ente_planificador->sector);
       $ambito = taxonomy_get_term($ente_planificador->ambito);
@@ -1766,11 +1767,11 @@
       );
       if ($expire) {
-        $new_mensaje = t("Registrar y/o modificar los Proyectos Operativos para el Ambito %ambito en el Sector %sector no se encuentra disponible, se podra realizar desde el %fechaI hasta %fechaF", array('%ambito' => strtoupper($ambito->name), '%sector' => strtoupper($sector->name), '%fechaI' => format_date($mi_fecha[0]), '%fechaF' => format_date($mi_fecha[1])));
+        $new_mensaje = t("Registrar y/o modificar los %proceso  para el Ambito %ambito en el Sector %sector no se encuentra disponible, se podra realizar desde el %fechaI hasta %fechaF", array('%proceso' => $procesos[$type_proceso]['title'], '%ambito' => strtoupper($ambito->name), '%sector' => strtoupper($sector->name), '%fechaI' => format_date($mi_fecha[0]), '%fechaF' => format_date($mi_fecha[1])));
       }
       else {
-        $new_mensaje = t("Se podrÃ¡ registrar y/o modificar los Proyectos Operativos para el Ambito %ambito en el Sector %sector desde el %fechaI hasta %fechaF", array('%ambito' => strtoupper($ambito->name), '%sector' => strtoupper($sector->name), '%fechaI' => format_date($mi_fecha[0]), '%fechaF' => format_date($mi_fecha[1])));
-      }
-    }
-    if (is_numeric($ente_planificador) || user_access('admin all planificador')) { //si es el administrador se aplica la fecha especial
+        $new_mensaje = t("Se podrÃ¡ registrar y/o modificar los%procesos para el Ambito %ambito en el Sector %sector desde el %fechaI hasta %fechaF", array('' => $procesos[$type_proceso]['title'],'%ambito' => strtoupper($ambito->name), '%sector' => strtoupper($sector->name), '%fechaI' => format_date($mi_fecha[0]), '%fechaF' => format_date($mi_fecha[1])));
+      }
+    }
+    if (user_access('admin all planificador')) { //si es el administrador se aplica la fecha especial
       $mi_fecha = array(
         variable_get('ente_planificador_' . $type_proceso . '_admin_from', $now),
