Index: 0.3-modules/ente_planificador_sector/ente_planificador_sector.module
===================================================================
--- 0.3-modules/ente_planificador_sector/ente_planificador_sector.module	(revision 3b8331b5f0f6790574fe6a3ab5c38cfc1253930d)
+++ 0.3-modules/ente_planificador_sector/ente_planificador_sector.module	(revision 92f109be009fa827b410a41bd6a52790848c75a0)
@@ -475,11 +475,11 @@
     }
     //recorer todos los ambitos
-		$tid = variable_get('ente_planificador_sector_Ambitos', 0);
-  	$terms = taxonomy_get_tree($tid);
+    $tid = variable_get('ente_planificador_sector_Ambitos', 0);
+    $terms = taxonomy_get_tree($tid);
     foreach ($terms as $term) {           
       $row = array();
       if ($term->depth == 0) { //si el termino es padre (AMBITO)
-   	  	$fechas[0] = variable_get('ente_planificador_' . $type_node . '_all_from_' . $term->tid, $now);
-    		$fechas[1] = variable_get('ente_planificador_' . $type_node . '_all_until_' . $term->tid, $now);
+        $fechas[0] = variable_get('ente_planificador_' . $type_node . '_all_from_' . $term->tid, $now);
+    	$fechas[1] = variable_get('ente_planificador_' . $type_node . '_all_until_' . $term->tid, $now);
         $FIPM = $fechas[0];
         $FFPM = $fechas[1];
@@ -502,8 +502,8 @@
       $fechas_display = FALSE;
     }
-		$aux = "";
+    $aux = "";
     if (module_exists('proyectos_operativos_mail')) {
       $aux = l(t("Enviar Correo ElectrÃ³nico a los entes planificadores por Ambito Social."), 'fechas_planificacion/notificacion/envia_email/ambito/' . $type_node);
-		}
+    }
     if (user_access('admin planificador')) {
       $FIPMA = variable_get('ente_planificador_' . $type_node . '_admin_from', $now);
@@ -919,8 +919,8 @@
     //anadiendo el campo nivel de planificacion
     $nivel_planificacion = ente_planificador_sector_nivel_planificacion();
-  	//SOLO DEJE A UN ENTE SER ENTE PLANIFICADOR MACRO
-  	if (db_result(db_query("SELECT nid FROM {ente_planificador} where tipo = '1'")) > 0) {
-    	unset($nivel_planificacion[1]);
-  	}
+    //SOLO DEJE A UN ENTE SER ENTE PLANIFICADOR MACRO
+    if (db_result(db_query("SELECT nid FROM {ente_planificador} where tipo = '1'")) > 0) {
+      unset($nivel_planificacion[1]);
+    }
     $default = array(0);
     if ($form['#node']->nid) {
@@ -930,10 +930,10 @@
       $default = $entes->tipo;
     }
-		$form['nivel'] = array(
+    $form['nivel'] = array(
       '#type' => 'fieldset',
-			'#prefix' => '<div id="ente-planificador-sector-wrapper">',
-			'#suffix' => '</div>',
+      '#prefix' => '<div id="ente-planificador-sector-wrapper">',
+      '#suffix' => '</div>',
     );		
-		$form['tipo'] = array(
+    $form['tipo'] = array(
       '#type' => 'select',
       '#title' => t('Nivel de PlanificaciÃ³n'),
@@ -943,5 +943,5 @@
       '#required' => TRUE,
       '#weight' => -1,
-			'#ahah' => array(
+      '#ahah' => array(
         'event' => 'change',
        	'path' => 'ente_planificador_sector_util',
@@ -949,11 +949,11 @@
         'method' => 'replace',
         'progress' => array('type' => 'bar', 'message' => t('Please wait...')),
-			),
-			'#prefix' => '<div id="nivel">',
-			'#suffix' => '</div>',
+      ),
+      '#prefix' => '<div id="nivel">',
+      '#suffix' => '</div>',
     );
 	
-		//anadiendo el campo sector
-		$options = array();
+    //anadiendo el campo sector
+    $options = array();
     if ($form['#node']->nid) {
       $nid = $form['#node']->nid;
@@ -970,4 +970,11 @@
       }
     }
+    $parent = 0;
+    $parent = taxonomy_get_parents($default);
+
+    $form['nivel']['ambito'] = array(
+      '#type' => 'hidden',
+      '#value' => key($parent),
+    );
     $form['nivel']['sector'] = array(
       '#type' => 'select',
@@ -976,20 +983,20 @@
       '#required' => TRUE,
       '#options' => $options,
-			'#prefix' => '<div id="sector_ente_planificador">',
-			'#suffix' => '</div>',
+      '#prefix' => '<div id="sector_ente_planificador">',
+      '#suffix' => '</div>',
     );
-		//anadiendo el campo organismos_publicos
-		$options = array();
+    //anadiendo el campo organismos_publicos
+    $options = array();
     $options[0] = "seleccione";
     $tid = variable_get('ente_planificador_sector_organismos', 0);
     $terms = taxonomy_get_tree($tid);
-		$default = 0;
+    $default = 0;
     if ($form['#node']->nid) {
-			$default = db_result(db_query("SELECT organismo FROM {ente_planificador} WHERE nid = %d", $form['#node']->nid));
-		}
+      $default = db_result(db_query("SELECT organismo FROM {ente_planificador} WHERE nid = %d", $form['#node']->nid));
+    }
     foreach ($terms as $term) {
       $options[$term->tid] = $term->name;
     }
-		$form['nivel']['ente_adscrito'] = array(
+    $form['nivel']['ente_adscrito'] = array(
       '#type' => 'select',
       '#title' => t('Organismo Publico al que se esta adscrito'),
@@ -997,19 +1004,19 @@
       '#required' => TRUE,
       '#options' => $options,
-			'#prefix' => '<div id="organismo">',
-			'#suffix' => '</div>',
+      '#prefix' => '<div id="organismo">',
+      '#suffix' => '</div>',
     );
-		//anadiendo el campo sub-ente
-	  $options = array();
-		$options['0']= "seleccione";
-		$result = db_query("SELECT n.nid, n.title FROM {node} AS n INNER JOIN {ente_planificador} AS e ON n.nid = e.nid WHERE e.ente_adscrito != 0");
-		while ($rows = db_fetch_object($result)) {
-			$options[$rows->nid] = $rows->title;
-		}
-		$default = 0;
+    //anadiendo el campo sub-ente
+    $options = array();
+    $options['0']= "seleccione";
+    $result = db_query("SELECT n.nid, n.title FROM {node} AS n INNER JOIN {ente_planificador} AS e ON n.nid = e.nid WHERE e.ente_adscrito != 0");
+    while ($rows = db_fetch_object($result)) {
+      $options[$rows->nid] = $rows->title;
+    }
+    $default = 0;
     if ($form['#node']->nid) {
-			$default = db_result(db_query("SELECT sub_ente FROM {ente_planificador} WHERE nid = %d", $form['#node']->nid));
-		}
-		$form['nivel']['sub_ente'] = array(
+      $default = db_result(db_query("SELECT sub_ente FROM {ente_planificador} WHERE nid = %d", $form['#node']->nid));
+    }
+    $form['nivel']['sub_ente'] = array(
       '#type' => 'select',
       '#title' => t('Ente al cual se esta adscrito'),
@@ -1017,60 +1024,9 @@
       '#required' => TRUE,
       '#options' => $options,
-			'#prefix' => '<div id="sub_ente">',
-			'#suffix' => '</div>',
+      '#prefix' => '<div id="sub_ente">',
+      '#suffix' => '</div>',
     );  
-  } 
-  /*if ($form_id == 'ente_planificador_datos_basicos_forma') {
-		//anadiendo el campo sector
-		$options = array();
-    $tid = variable_get('ente_planificador_sector_Ambitos', 0);
-    $terms = taxonomy_get_tree($tid);
-    $options['0']= "seleccione";
-    foreach ($terms as $term) {
-      if ($term->depth == 1) { //si el termino es padre
-        $options[$term->tid] .= $term->name;
-      }
-    }
-    $ente_planificador = NULL;
-    $nid = $form['ente_planificador_nid']['#default_value'];
-    if (is_numeric($nid)) { 
-      $ente_planificador = ente_planificador_leer_ente_planificadores($nid);
-    }
-    if ($ente_planificador && $ente_planificador->tipo == 2) {
-      $form['nivel'] = array(
-        '#type' => 'fieldset',
-			  '#prefix' => '<div id="ente-planificador-sector-wrapper">',
-			  '#suffix' => '</div>',
-      );
-      $form['nivel']['sector'] = array(
-        '#type' => 'select',
-        '#title' => t('Sector Social'),
-        '#default_value' => $ente_planificador->sector,
-        '#required' => TRUE,
-        '#options' => $options,
-		  	'#prefix' => '<div id="sector_ente_planificador">',
-		  	'#suffix' => '</div>',
-      );
-      $form['#submit'][] = 'ente_planificador_sector_datos_basicos_forma_submit'; 
-    }
-  }*/
-}
-
-/**
- *
- *
-function ente_planificador_sector_datos_basicos_forma_submit($form, &$form_state) {
-  $terms = taxonomy_get_parents($form_state['values']['sector']);
-  foreach ($terms as $tid => $term) {
-		$tid = $term->tid;
-	}
-	$node_load = node_load($form_state['values']['ente_planificador_nid']);
-	if ($tid) {
-	  $node_load->ambito = $tid;
-	  $node_load->sector = $form_state['values']['sector'];
-	  $node_load->revision = 1;
-	  node_save($node_load);
-	}
-}*/
+  }
+}
 
 /*
@@ -1418,4 +1374,10 @@
         }
       }
+      else {
+        if (isset($node->sector)) {
+          $parent = taxonomy_get_parents($node->sector);
+          $node->ambito = key($parent);
+        }
+      }
     }
     if ($op == 'view') {
@@ -1427,6 +1389,6 @@
           '#suffix'=>'</p>',      
         );
-			}
-      if ($node->sector) {
+      }
+      if ($node->tipo > 1 && $node->sector && $node->ambito) {
         $tid = check_plain($node->sector);
         $term = taxonomy_get_term($tid);
@@ -1437,11 +1399,8 @@
           '#suffix'=>'</p>',      
         );
-        $terms = taxonomy_get_parents($tid);
-        foreach ($terms as $tid => $term) {
-					$name = $term->name;
-				}
+        $term = taxonomy_get_term($node->ambito);
         $node->content['ambito']  = array( 
           '#prefix'=>'<p align="left">',
-          '#value' => "<b>" . t('Ambito:') . "</b> " . $name . "<br>",
+          '#value' => "<b>" . t('Ambito:') . "</b> " . $term->name . "<br>",
           '#weight' => 1,
           '#suffix'=>'</p>',      
@@ -1627,5 +1586,5 @@
  */
 function ente_planificador_sector_js_util() {
-	$tipo = 'nivel';
+  $tipo = 'nivel';
   $form_state = array('submitted' => FALSE);
   $form_build_id = $_POST['form_build_id'];
@@ -1634,12 +1593,12 @@
   // process it. We retreive the cached form, add the element, and resave.
   $form = form_get_cache($form_build_id, $form_state);
-	if ($_POST['tipo'] != 1) {	
-		$new_form['nivel'] = array(	
-	    '#type' => 'fieldset',	
-  	);
-	}		
+  if ($_POST['tipo'] != 1) {	
+    $new_form['nivel'] = array(	
+      '#type' => 'fieldset',	
+    );
+  }	
   if ($_POST['tipo'] == 2) {
-		$options = array();
-		$tid = variable_get('ente_planificador_sector_Ambitos', 0);
+    $options = array();
+    $tid = variable_get('ente_planificador_sector_Ambitos', 0);
     $terms = taxonomy_get_tree($tid);
     $options['0']= "seleccione";
@@ -1649,17 +1608,17 @@
       }
     }
-		$new_form['nivel']['sector'] = array(
+    $new_form['nivel']['sector'] = array(
       '#title' => t('Sector Social'),
-    	'#type' => 'select',
+      '#type' => 'select',
       '#required' => TRUE,
       '#options' => $options,
-			'#prefix' => '<div id="sector_ente_planificador">',
-			'#suffix' => '</div>',
+      '#prefix' => '<div id="sector_ente_planificador">',
+      '#suffix' => '</div>',
     );
-		$form[$tipo]['sector'] = $new_form['sector'];
-	}
-	if ($_POST['tipo'] == 3) {
-	  $options = array();
-		$options[0] = "seleccione";
+    $form[$tipo]['sector'] = $new_form['sector'];
+  }
+  if ($_POST['tipo'] == 3) {
+    $options = array();
+    $options[0] = "seleccione";
     $tid = variable_get('ente_planificador_sector_organismos', 0);
     $terms = taxonomy_get_tree($tid);
@@ -1667,31 +1626,31 @@
       $options[$term->tid] = $term->name;
     }
-		$new_form['nivel']['ente_adscrito'] = array(
-  	  '#type' => 'select',
-  	  '#title' => t('Organismo Publico al que se esta adscrito'),
-  	  '#required' => TRUE,
-   	  '#options' => $options,
-			'#prefix' => '<div id="organismo">',
-	 	  '#suffix' => '</div>',
- 	  );
-		$form[$tipo]['ente_adscrito'] = $new_form['ente_adscrito'];
-	}
-	if ($_POST['tipo'] == 4) {
-	  $options = array();
-		$options['0']= "seleccione";
-		$result = db_query("SELECT n.nid, n.title FROM {node} AS n INNER JOIN {ente_planificador} AS e ON n.nid = e.nid WHERE e.ente_adscrito != 0");
-		while ($rows = db_fetch_object($result)) {
-			$options[$rows->nid] = $rows->title;
-		}
-		$new_form['nivel']['sub_ente'] = array(
-  	  '#type' => 'select',
-   	  '#title' => t('Ente al cual se esta adscrito'),
-   	  '#required' => TRUE,
-   	  '#options' => $options,
-			'#prefix' => '<div id="sub_ente">',
-	  	'#suffix' => '</div>',
-		);
-		$form[$tipo]['sub_ente'] = $new_form['sub_ente'];
-	}
+    $new_form['nivel']['ente_adscrito'] = array(
+      '#type' => 'select',
+      '#title' => t('Organismo Publico al que se esta adscrito'),
+      '#required' => TRUE,
+      '#options' => $options,
+      '#prefix' => '<div id="organismo">',
+      '#suffix' => '</div>',
+    );
+    $form[$tipo]['ente_adscrito'] = $new_form['ente_adscrito'];
+  }
+  if ($_POST['tipo'] == 4) {
+    $options = array();
+    $options['0']= "seleccione";
+    $result = db_query("SELECT n.nid, n.title FROM {node} AS n INNER JOIN {ente_planificador} AS e ON n.nid = e.nid WHERE e.ente_adscrito != 0");
+    while ($rows = db_fetch_object($result)) {
+      $options[$rows->nid] = $rows->title;
+    }
+    $new_form['nivel']['sub_ente'] = array(
+      '#type' => 'select',
+      '#title' => t('Ente al cual se esta adscrito'),
+      '#required' => TRUE,
+      '#options' => $options,
+      '#prefix' => '<div id="sub_ente">',
+      '#suffix' => '</div>',
+    );
+    $form[$tipo]['sub_ente'] = $new_form['sub_ente'];
+  }
   $form[$tipo] = $new_form;
   form_set_cache($form_build_id, $form, $form_state);
@@ -1705,5 +1664,4 @@
   $new_form = $form[$tipo];
   unset($new_form['#prefix'], $new_form['#suffix']); // Prevent duplicate wrappers.
-
 
   // Rebuild the form.
@@ -1742,4 +1700,9 @@
         }
       }
+      elseif(isset($user->ambito_user)  && $ente_planificador->tipo == 1 && !(in_array($rol_macro, array_keys($user->roles)))) {
+        $term = taxonomy_get_term($user->ambito_user);
+        $FIPMI = variable_get('ente_planificador_' . $type_proceso . '_all_from_' . $term->tid, $now);
+        $FIPMF = variable_get('ente_planificador_' . $type_proceso . '_all_until_' . $term->tid, $now);
+      }
     }
     if (is_numeric($ente_planificador) || user_access('admin all planificador')) { //si es el administrador se aplica la fecha especial
@@ -1775,15 +1738,32 @@
   if ($type_proceso) {
     if (is_object($ente_planificador)) {
-      $sector = taxonomy_get_term($ente_planificador->sector);
-      $ambito = taxonomy_get_term($ente_planificador->ambito);
-      $mi_fecha = array(
-        variable_get('ente_planificador_' . $type_proceso . '_all_from_' . $ambito->tid, $now),
-        variable_get('ente_planificador_' . $type_proceso . '_all_until_' . $ambito->tid, $now),
-      );
-      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])));
-      }
-      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 ($ente_planificador->ambito) {
+        $sector = taxonomy_get_term($ente_planificador->sector);
+        $ambito = taxonomy_get_term($ente_planificador->ambito);
+        $mi_fecha = array(
+          variable_get('ente_planificador_' . $type_proceso . '_all_from_' . $ambito->tid, $now),
+          variable_get('ente_planificador_' . $type_proceso . '_all_until_' . $ambito->tid, $now),
+        );
+        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])));
+        }
+        else {
+  	  $new_mensaje = t("Se podra 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])));
+        }
+      }
+      elseif(isset($user->ambito_user)  && $ente_planificador->tipo == 1 && !(in_array($rol_macro, array_keys($user->roles)))) {
+        if (empty($user->ambito_user)) {
+          drupal_set_message(t('Especifique el ambito del usuario supervisor.'), 'warning');          
+        }
+        $ambito = taxonomy_get_term($user->ambito_user);
+        $FIPMI = variable_get('ente_planificador_' . $type_proceso . '_all_from_' . $ambito->tid, $now);
+        $FIPMF = variable_get('ente_planificador_' . $type_proceso . '_all_until_' . $ambito->tid, $now);
+
+        if ($expire) {
+          $new_mensaje = t("Registrar y/o modificar los Proyectos Operativos para el Ambito %ambito no se encuentra disponible, se podra realizar desde el %fechaI hasta %fechaF", array('%ambito' => strtoupper($ambito->name), '%fechaI' => format_date($FIPMI), '%fechaF' => format_date($FIPMF)));
+        }
+        else {
+	  $new_mensaje = t("Se podra registrar y/o modificar los Proyectos Operativos para el Ambito %ambito desde el %fechaI hasta %fechaF", array('%ambito' => strtoupper($ambito->name), '%fechaI' => format_date($FIPMI), '%fechaF' => format_date($FIPMF)));
+        }
       }
     }
