예제 #1
0
 /**
  *
  * @param array $o -- Options array
  * Opciones psibles son:
  *      string model => nombre del modelo
  *      string field => nombre del campo que quiero buscar
  *      string friendlyName => es el nombre que aparecerá en la pàgina de resultados de la búsqueda. Por ejemplo "Nombre de la Institución"
  *      boolean forceText => hace que el valor buscado sea un texto si o si. Aunque venga un número como filtro de bñusqueda.
  *      boolean asociarPlan => para realizar busquedas avanzadas en el sector del titulo por ejemplo
  *
  */
 private function __aplicarCriterio($o = null)
 {
     if (empty($o)) {
         return -1;
     }
     // no hay nada que buscar
     // inicializo variables del array de opciones
     $model = empty($o['model']) ? $this->controller->modelClass : $o['model'];
     $field = $o['field'];
     $friendlyName = empty($o['friendlyName']) ? $field : $o['friendlyName'];
     $forceText = empty($o['forceText']) ? false : true;
     $valor = null;
     // es el valor DATO del campo que voy a buscar
     $asociarPlan = empty($o['asociarPlan']) ? false : true;
     $modelField = $model . '.' . $field;
     // lista de modelos que se van a consultar en la query
     $this->controller->paginate['modelosInvolucrados'] = array();
     // paso al vector del paginador para unificar la busqueda
     if (!empty($this->controller->data[$model][$field])) {
         $valor = $this->controller->data[$model][$field];
     }
     if (!empty($this->controller->passedArgs[$modelField])) {
         $valor = $this->controller->passedArgs[$modelField];
     }
     $this->controller->passedArgs[$modelField] = $valor;
     if (!empty($valor)) {
         if ($asociarPlan) {
             $this->controller->Instit->asociarPlan = true;
         }
         $this->controller->paginate['modelosInvolucrados'][] = $model;
         $friendlyName = empty($friendlyName) ? $field : $friendlyName;
         $this->controller->paginate['viewConditions'][$friendlyName] = $valor;
         if (!is_numeric($valor) && !is_array($valor) && is_string($valor) || $forceText === true) {
             // es texto
             $this->controller->paginate[$this->controller->modelClass]['conditions']['to_ascii(lower(' . $modelField . ')) SIMILAR TO ?'] = convertir_para_busqueda_avanzada($valor);
             $array_condiciones[$modelField] = $valor;
             $url_conditions[$field] = $valor;
         } else {
             if (substr($field, -3) == '_id') {
                 // es FK, por lo tanto me traigo el nombre
                 // para mostrar en el resutado de busquedas (para mostrar en la vista el camp "name" del Modelo
                 $miniModel = substr($field, 0, strlen($field) - 3);
                 $model = Inflector::camelize($miniModel);
                 $rModel =& ClassRegistry::init($model);
                 $rModel->id = $valor;
                 $this->controller->paginate['viewConditions'][$friendlyName] = $rModel->field('name');
             }
             // es un numero, como por ejemplo una FK
             $this->controller->paginate[$this->controller->modelClass]['conditions'][$modelField] = $valor;
         }
     }
 }
 function search_instits($q = null)
 {
     $this->autoRender = false;
     if ($this->RequestHandler->isAjax()) {
         Configure::write('debug', 0);
     }
     $response = '';
     if (empty($q)) {
         if (!empty($this->params['url']['q'])) {
             $q = utf8_decode(strtolower($this->params['url']['q']));
         } else {
             return utf8_encode("parámetro vacio");
         }
     }
     if (is_numeric($q)) {
         $items = $this->FondoTemporal->Instit->find("all", array('contain' => array('Tipoinstit', 'Jurisdiccion', 'HistorialCue'), 'conditions' => array("to_char(cue*100+anexo, 'FM999999999FM') SIMILAR TO ?" => "%" . $q . "%")));
         /*$cues_h = $this->FondoTemporal->Instit->HistorialCue->find("all", array(
               'conditions'=> array(
                   "OR"=>array(
                   "cue = ?" => $q,
                   "(cue * 100 + anexo) = ?" => $q )
               )
           ));*/
     } else {
         $items = $this->FondoTemporal->Instit->find("all", array('contain' => array('Tipoinstit', 'Jurisdiccion', 'HistorialCue'), 'conditions' => array("(lower(Tipoinstit.name) || lower(Instit.nombre)) SIMILAR TO ?" => convertir_para_busqueda_avanzada($q))));
     }
     $result = array();
     foreach ($items as $item) {
         $cuecompleto = $item['Instit']['cue'] * 100 + $item['Instit']['anexo'];
         array_push($result, array("id" => $item['Instit']['id'], "cue" => $item['Instit']['cue'] * 100 + $item['Instit']['anexo'], "nombre" => utf8_encode($item['Instit']['nombre']), "gestion" => utf8_encode($item['Gestion']['name']), "nroinstit" => utf8_encode($item['Instit']['nroinstit']), "anio_creacion" => utf8_encode($item['Instit']['anio_creacion']), "direccion" => utf8_encode($item['Instit']['direccion']), "depto" => utf8_encode($item['Instit']['depto']), "localidad" => utf8_encode($item['Instit']['localidad']), "cp" => utf8_encode($item['Instit']['cp']), "tipo" => utf8_encode($item['Tipoinstit']['name']), "jurisdiccion" => utf8_encode($item['Jurisdiccion']['name']), "jurisdiccion_id" => utf8_encode($item['Jurisdiccion']['id']), "cue_anterior" => utf8_encode($item['HistorialCue'][0]['cue'])));
     }
     echo json_encode($result);
     //echo $response;
 }
예제 #3
0
파일: instit.php 프로젝트: acerato/cntcetp
 /**
  * busca similares por Tipo instit + Nro Instit en la misma Jurisdiccion
  * utiliza $this->data
  * @return array del tipo find('all')
  */
 private function __buscarSimilaresPorTipoYNumeroEnJurisiccion()
 {
     $similars = array();
     if (!empty($this->data['Instit']['localidad_id']) && !empty($this->data['Instit']['nroinstit']) && !empty($this->data['Instit']['tipoinstit_id'])) {
         $conditions = array("Instit.localidad_id" => $this->data['Instit']['localidad_id'], "lower(nroinstit)  SIMILAR TO ?" => convertir_para_busqueda_avanzada($this->data['Instit']['nroinstit']), "tipoinstit_id" => $this->data['Instit']['tipoinstit_id']);
         if (!empty($this->data['Instit']['id'])) {
             $conditions['Instit.id <>'] = $this->data['Instit']['id'];
         }
         $similars = $this->find('all', array('conditions' => $conditions));
         if (count($similars) > 0) {
             $this->validationErrors += array('nroinstit' => 'Hay una institución en la misma localidad, con el mismo tipo y número');
             $this->validationErrors += array('localidad_id' => '');
             $this->validationErrors += array('tipoinstit_id' => '');
         }
     }
     return $similars;
 }
예제 #4
0
 function ajax_search($q = null)
 {
     $this->autoRender = false;
     $result = array();
     $jur = 0;
     if (!empty($this->params['url']['oferta_id'])) {
         $oferta_id = utf8_decode(strtolower($this->params['url']['oferta_id']));
     }
     if (!empty($this->params['url']['sector_id'])) {
         $sector_id = utf8_decode(strtolower($this->params['url']['sector_id']));
     }
     if (!empty($this->params['url']['subsector_id'])) {
         $subsector_id = utf8_decode(strtolower($this->params['url']['subsector_id']));
     }
     if (empty($q)) {
         if (!empty($this->params['url']['q'])) {
             $q = utf8_decode(strtolower($this->params['url']['q']));
         } else {
             return utf8_encode("parámetro vacio");
         }
     }
     if ($this->RequestHandler->isAjax()) {
         Configure::write('debug', 0);
     }
     $response = '';
     $conditions = array();
     $subconditions = array();
     $conditions["lower(Titulo.name) SIMILAR TO ?"] = convertir_para_busqueda_avanzada($q);
     $subconditions = array('Titulo.id = SectoresTitulos.titulo_id');
     if (@$oferta_id > 0) {
         $conditions["Titulo.oferta_id"] = $oferta_id;
     }
     if (@$sector_id > 0) {
         $subconditions["SectoresTitulos.sector_id ="] = $sector_id;
     }
     if (@$subsector_id > 0) {
         $subconditions["SectoresTitulos.subsector_id ="] = $subsector_id;
     }
     $this->Titulo->recursive = -1;
     $titulos = $this->Titulo->find("all", array('fields' => array('DISTINCT Titulo.id', 'Titulo.name'), 'conditions' => $conditions, 'order' => array('Titulo.name'), 'joins' => array(array('table' => 'sectores_titulos', 'alias' => 'SectoresTitulos', 'type' => 'INNER', 'conditions' => $subconditions))));
     foreach ($titulos as $item) {
         array_push($result, array("id" => $item['Titulo']['id'], "type" => "Titulo", "name" => utf8_encode($item['Titulo']['name'])));
     }
     if (sizeof($result) == 0) {
         array_push($result, array("id" => '', "type" => "Vacio", "name" => 'No se encontraron resultados'));
     }
     echo json_encode($result);
 }
 function ajax_search_localidades_y_departamentos($q = null)
 {
     $this->autoRender = false;
     $result = array();
     $jur = 0;
     if (!empty($this->params['url']['jur'])) {
         $jur = utf8_decode(strtolower($this->params['url']['jur']));
     }
     if (empty($q)) {
         if (!empty($this->params['url']['q'])) {
             $q = utf8_decode(strtolower($this->params['url']['q']));
         } else {
             return utf8_encode("parámetro vacio");
         }
     }
     if ($this->RequestHandler->isAjax()) {
         Configure::write('debug', 0);
     }
     $response = '';
     if ($jur != 0) {
         $conditions = array("lower(Departamento.name) SIMILAR TO ?" => convertir_para_busqueda_avanzada($q), "Jurisdiccion.id" => $jur);
     } else {
         $conditions = array("lower(Departamento.name) SIMILAR TO ?" => convertir_para_busqueda_avanzada($q));
     }
     $deptos = $this->Localidad->Departamento->find("all", array('contain' => array('Jurisdiccion'), 'conditions' => $conditions, 'order' => array('Jurisdiccion.id')));
     foreach ($deptos as $item) {
         array_push($result, array("id" => $item['Departamento']['id'], "type" => "Departamento", "localidad_id" => '0', "localidad" => '', "departamento" => utf8_encode($item['Departamento']['name']), "departamento_id" => $item['Departamento']['id'], "jurisdiccion" => utf8_encode($item['Jurisdiccion']['name'])));
     }
     $localidades = $this->Localidad->find("all", array('contain' => array('Departamento' => array('Jurisdiccion')), 'conditions' => array("OR" => array("to_ascii(lower(Localidad.name)) SIMILAR TO ?" => convertir_para_busqueda_avanzada($q), "to_ascii(lower(Departamento.name)) SIMILAR TO ?" => convertir_para_busqueda_avanzada($q))), 'order' => array('Departamento.id')));
     foreach ($localidades as $item) {
         if ($jur == 0 || $item['Departamento']['jurisdiccion_id'] == $jur) {
             array_push($result, array("id" => $item['Localidad']['id'], "type" => "Localidad", "localidad" => utf8_encode($item['Localidad']['name']), "localidad_id" => $item['Localidad']['id'], "departamento" => utf8_encode($item['Departamento']['name']), "departamento_id" => $item['Departamento']['id'], "jurisdiccion" => utf8_encode($item['Departamento']['Jurisdiccion']['name'])));
         }
     }
     if (sizeof($result) == 0) {
         array_push($result, array("id" => '', "type" => "Vacio", "localidad" => 'No se encontraron resultados'));
     }
     echo json_encode($result);
 }
예제 #6
0
 function prueba()
 {
     $this->autoRender = false;
     // para uqe no muestre la vista
     die(convertir_para_busqueda_avanzada("pepino"));
 }
예제 #7
0
 /**
  * Esta accion es el procesamiento del formulario de busqueda
  * maneja las condiciones de la busqueda y el paginador
  *
  */
 function filtros_search_results($oferta_id = 0)
 {
     Configure::write('debug', 0);
     $array_condiciones = array();
     $array_condiciones_ubicacion = array();
     $url_conditions = array();
     $filtros = array();
     // si se realizó una búsqueda se limpia la session
     foreach ($this->sesNames as $sesName) {
         if ($sesName != $this->sesNames['page']) {
             $this->Session->write($sesName, '');
         }
     }
     if (!empty($this->data)) {
         if (!empty($this->data['Titulo']['busquedanueva']) && !$this->data['Titulo']['bysession']) {
             $this->Session->write($this->sesNames['page'], '');
         }
         if (!empty($this->data['Titulo']['tituloName'])) {
             $this->passedArgs['tituloName'] = $this->data['Titulo']['tituloName'];
             $this->Session->write($this->sesNames['nombre'], $this->data['Titulo']['tituloName']);
         }
         if (!empty($this->data['Titulo']['oferta_id'])) {
             $this->passedArgs['ofertaId'] = $this->data['Titulo']['oferta_id'];
             $this->Session->write($this->sesNames['oferta'], $this->data['Titulo']['oferta_id']);
         }
         if (!empty($this->data['Titulo']['sector_id'])) {
             $this->passedArgs['sectorId'] = $this->data['Titulo']['sector_id'];
             $this->Session->write($this->sesNames['sector'], $this->data['Titulo']['sector_id']);
         }
         if (!empty($this->data['Titulo']['subsector_id'])) {
             $this->passedArgs['subsectorId'] = $this->data['Titulo']['subsector_id'];
             $this->Session->write($this->sesNames['subsector'], $this->data['Titulo']['subsector_id']);
         }
         if (!empty($this->data['Instit']['jurisdiccion_id'])) {
             $this->passedArgs['jurisdiccionId'] = $this->data['Instit']['jurisdiccion_id'];
             $this->Session->write($this->sesNames['jurisdiccion'], $this->data['Instit']['jurisdiccion_id']);
         }
         if (!empty($this->data['Instit']['departamento_id'])) {
             $this->passedArgs['departamentoId'] = $this->data['Instit']['departamento_id'];
             $this->Session->write($this->sesNames['departamento'], $this->data['Instit']['departamento_id']);
             $this->Session->write($this->sesNames['tituloJurDepLoc'], $this->data['Instit']['jur_dep_loc']);
         }
         if (!empty($this->data['Instit']['localidad_id'])) {
             $this->passedArgs['localidadId'] = $this->data['Instit']['localidad_id'];
             $this->Session->write($this->sesNames['localidad'], $this->data['Instit']['localidad_id']);
             $this->Session->write($this->sesNames['tituloJurDepLoc'], $this->data['Instit']['jur_dep_loc']);
         }
         if (!empty($this->data['Instit']['gestion_id'])) {
             $this->passedArgs['gestionId'] = $this->data['Instit']['gestion_id'];
             $this->Session->write($this->sesNames['gestion'], $this->data['Instit']['gestion_id']);
         }
         if (!empty($this->data['Instit']['nombre'])) {
             $this->passedArgs['institName'] = utf8_decode($this->data['Instit']['nombre']);
             $this->Session->write($this->sesNames['institName'], utf8_decode($this->data['Instit']['nombre']));
         }
     }
     if (!empty($this->passedArgs['tituloName'])) {
         $q = utf8_decode(strtolower($this->passedArgs['tituloName']));
         $array_condiciones['conditions']['lower(Titulo.name) SIMILAR TO ?'] = convertir_texto_plano($q);
     }
     if (!empty($this->passedArgs['ofertaId'])) {
         $q = $this->passedArgs['ofertaId'];
         $array_condiciones['conditions']['Titulo.oferta_id'] = $q;
     }
     if (!empty($this->passedArgs['sectorId']) || !empty($this->passedArgs['subsectorId'])) {
         if (!empty($this->passedArgs['sectorId'])) {
             $q = $this->passedArgs['sectorId'];
             $array_condiciones['conditions']['SectoresTitulo.sector_id'] = $q;
         }
         if (!empty($this->passedArgs['subsectorId'])) {
             $q = $this->passedArgs['subsectorId'];
             $array_condiciones['conditions']['SectoresTitulo.subsector_id'] = $q;
         }
     }
     if (!empty($this->passedArgs['jurisdiccionId'])) {
         $q = $this->passedArgs['jurisdiccionId'];
         $array_condiciones['conditions']['Instit.jurisdiccion_id'] = $q;
         $array_condiciones_ubicacion['Instit.jurisdiccion_id'] = $q;
     }
     if (!empty($this->passedArgs['departamentoId'])) {
         $q = $this->passedArgs['departamentoId'];
         $array_condiciones['conditions']['Instit.departamento_id'] = $q;
         $array_condiciones_ubicacion['Instit.departamento_id'] = $q;
     }
     if (!empty($this->passedArgs['localidadId'])) {
         $q = $this->passedArgs['localidadId'];
         $array_condiciones['conditions']['Instit.localidad_id'] = $q;
         $array_condiciones_ubicacion['Instit.localidad_id'] = $q;
     }
     if (!empty($this->passedArgs['gestionId'])) {
         $q = $this->passedArgs['gestionId'];
         $array_condiciones['conditions']['Instit.gestion_id'] = $q;
         $array_condiciones_ubicacion['Instit.gestion_id'] = $q;
     }
     if (!empty($this->passedArgs['institName'])) {
         $q = $this->passedArgs['institName'];
         $array_condiciones['conditions']["lower(Instit.nombre) SIMILAR TO ?"] = convertir_para_busqueda_avanzada($q);
         $array_condiciones_ubicacion['conditions']["lower(Instit.nombre) SIMILAR TO ?"] = convertir_para_busqueda_avanzada($q);
     }
     if (!empty($this->passedArgs['page'])) {
         //$this->paginate['page'] = $this->passedArgs['page'];
         $this->Session->write($this->sesNames['page'], $this->passedArgs['page']);
     } elseif ($this->Session->read($this->sesNames['page'])) {
         $array_condiciones['page'] = $this->Session->read($this->sesNames['page']);
     }
     $array_condiciones['fields'] = array('Titulo.id', 'Titulo.name', 'Titulo.marco_ref', 'Titulo.oferta_id', 'Titulo.es_bb', 'Oferta.abrev');
     $array_condiciones['group'] = $array_condiciones['fields'];
     $array_condiciones['order'] = array('Titulo.name ASC, Titulo.oferta_id ASC');
     $array_condiciones['recursive'] = 3;
     // find completo
     $this->paginate = $array_condiciones;
     $titulos = $this->paginate();
     // si contiene carreras prioritarias
     $contieneBb = $this->Titulo->contieneBb($titulos);
     //FILTROS
     $array_condiciones['recursive'] = -1;
     $array_condiciones['contain'] = null;
     $array_condiciones['order'] = null;
     $array_condiciones['joins'] = array(array('table' => 'planes', 'type' => 'LEFT', 'alias' => 'Plan', 'conditions' => array('Titulo.id = Plan.titulo_id')), array('table' => 'instits', 'type' => 'LEFT', 'alias' => 'Instit', 'conditions' => array('Instit.id = Plan.instit_id')), array('table' => 'gestiones', 'type' => 'LEFT', 'alias' => 'Gestion', 'conditions' => array('Gestion.id = Instit.gestion_id')), array('table' => 'jurisdicciones', 'type' => 'LEFT', 'alias' => 'Jurisdiccion', 'conditions' => array('Jurisdiccion.id = Instit.jurisdiccion_id')), array('table' => 'departamentos', 'type' => 'LEFT', 'alias' => 'Departamento', 'conditions' => array('Departamento.id = Instit.departamento_id')), array('table' => 'localidades', 'type' => 'LEFT', 'alias' => 'Localidad', 'conditions' => array('Localidad.id = Instit.localidad_id')), array('table' => 'sectores_titulos', 'type' => 'LEFT', 'alias' => 'SectoresTitulo', 'conditions' => array('SectoresTitulo.titulo_id = Titulo.id')), array('table' => 'sectores', 'type' => 'LEFT', 'alias' => 'Sector', 'conditions' => array('SectoresTitulo.sector_id = Sector.id')), array('table' => 'subsectores', 'type' => 'LEFT', 'alias' => 'Subsector', 'conditions' => array('SectoresTitulo.subsector_id = Subsector.id')), array('table' => 'ofertas', 'type' => 'LEFT', 'alias' => 'Oferta', 'conditions' => array('Titulo.oferta_id = Oferta.id')));
     $array_condiciones['fields'] = array('Oferta.id', 'Oferta.name');
     $array_condiciones['group'] = array('Oferta.id', 'Oferta.name');
     $array_condiciones['order'] = array('Oferta.name');
     $filtros['Oferta'] = $this->Titulo->find('all', $array_condiciones);
     $array_condiciones['fields'] = array('Sector.id', 'Sector.name');
     $array_condiciones['group'] = array('Sector.id', 'Sector.name');
     $array_condiciones['order'] = array('Sector.name');
     $filtros['Sector'] = $this->Titulo->find('all', $array_condiciones);
     $array_condiciones['fields'] = array('Jurisdiccion.id', 'Jurisdiccion.name');
     $array_condiciones['group'] = array('Jurisdiccion.id', 'Jurisdiccion.name');
     $array_condiciones['order'] = array('Jurisdiccion.name');
     $filtros['Jurisdiccion'] = $this->Titulo->find('all', $array_condiciones);
     $array_condiciones['fields'] = array('Departamento.id', 'Departamento.name');
     $array_condiciones['group'] = array('Departamento.id', 'Departamento.name');
     $array_condiciones['order'] = array('Departamento.name');
     $filtros['Departamento'] = $this->Titulo->find('all', $array_condiciones);
     $array_condiciones['fields'] = array('Localidad.id', 'Localidad.name');
     $array_condiciones['group'] = array('Localidad.id', 'Localidad.name');
     $array_condiciones['order'] = array('Localidad.name');
     $filtros['Localidad'] = $this->Titulo->find('all', $array_condiciones);
     $array_condiciones['fields'] = array('Gestion.id', 'Gestion.name');
     $array_condiciones['group'] = array('Gestion.id', 'Gestion.name');
     $array_condiciones['order'] = array('Gestion.name');
     $filtros['Gestion'] = $this->Titulo->find('all', $array_condiciones);
     if (empty($this->passedArgs['jurisdiccionId']) && count($filtros['Jurisdiccion']) > 1) {
         $filtros['Departamento'] = null;
     }
     if (empty($this->passedArgs['departamentoId']) && (count($filtros['Departamento']) > 1 || count($filtros['Jurisdiccion']) > 1)) {
         $filtros['Localidad'] = null;
     }
     $filtros['TituloName'] = empty($this->passedArgs['tituloName']) ? '' : $this->passedArgs['tituloName'];
     $filtros['InstitName'] = empty($this->passedArgs['institName']) ? '' : $this->passedArgs['institName'];
     $this->set('titulos', $titulos);
     $this->set('filtros', $filtros);
     $this->set('contieneBb', $contieneBb);
 }
예제 #8
0
 function search_results()
 {
     if ($this->RequestHandler->isAjax()) {
         Configure::write('debug', 0);
     }
     //para mostrar en vista los patrones de busqueda seleccionados
     $this->paginate['viewConditions'] = array();
     // primero seteo si vino formulario o fue el paginador quien llego a este action"
     $vino_formulario = !empty($this->data) ? true : false;
     /*******************************************************************
      *    INICIALIZACION DE FILTROS
      *
      *   Los filtros pueden provenir del formulario o de las variables de paginacion.
      *
      *      Para el primer caso se esta leyendo informacion de $this->data
      *      en el segundo caso de this->passedArgs
      *
      *
      */
     /*
      *          BUSQUEDA LIBRE
      */
     if (!empty($this->data['Instit']['busqueda_libre'])) {
         $this->passedArgs = array('busqueda_libre' => $this->data['Instit']['busqueda_libre']);
     }
     if (!empty($this->passedArgs['busqueda_libre'])) {
         $q = utf8_decode(strtolower($this->passedArgs['busqueda_libre']));
         if (is_numeric($q)) {
             $q = (int) $q;
             $this->paginate['Instit']['conditions'] = array("to_char(cue*100+anexo, 'FM999999999FM') SIMILAR TO ?" => "%" . $q . "%");
         } else {
             //debug(convertir_para_busqueda_avanzada($q)); die();
             $this->paginate['Instit']['conditions'] = array("(to_ascii(lower(Tipoinstit.name)) || ' n ' || to_ascii(lower(Instit.nroinstit)) || ' ' || lower(Instit.nombre)) SIMILAR TO ?" => convertir_para_busqueda_avanzada($q));
         }
         $this->paginate['viewConditions']['CUE o Nombre '] = utf8_decode($this->passedArgs['busqueda_libre']);
         $this->Session->write($this->sesNames['busqueda_libre'], $this->data['Instit']['busqueda_libre']);
     }
     /*
      *          CUE
      */
     if (!empty($this->data['Instit']['cue'])) {
         $is_cue_valido = $this->Instit->isCUEValid($this->data['Instit']['cue']);
         if ($is_cue_valido < 1) {
             switch ($is_cue_valido) {
                 case -1:
                     $mensaje = "<H1>El CUE: '" . $this->data['Instit']['cue'] . "' no es válido.</H1> Ingrese un valor <b>numúrico</b> de al menos <b>3 dígitos</b>.";
                     $this->Session->setFlash($mensaje, 'default', array('class' => 'flash-warning'));
                     break;
             }
         }
         // con esto hago que no se busque con un cero adelante
         $this->data['Instit']['cue'] = (int) $this->data['Instit']['cue'];
         $this->passedArgs = array('cue' => $this->data['Instit']['cue']);
     }
     if (!empty($this->passedArgs['cue'])) {
         // set the conditions
         $arr_cond1 = array('CAST(((Instit.cue*100)+Instit.anexo) as character(60)) SIMILAR TO ?' => '%' . $this->passedArgs['cue'] . '%');
         $this->paginate['Instit']['conditions'] = $arr_cond1;
         // set the Search data, so the form remembers the option
         $this->paginate['viewConditions']['CUE'] = $this->passedArgs['cue'];
     }
     /**
      *          ACTIVO
      */
     if (isset($this->data['Instit']['activo'])) {
         switch ((int) $this->data['Instit']['activo']) {
             case -1:
                 break;
                 // es el valor vacio. O sea, buscar por todos
             // es el valor vacio. O sea, buscar por todos
             case 0:
                 // inactivas
             // inactivas
             case 1:
                 //buscar activas
                 $this->passedArgs['activo'] = $this->data['Instit']['activo'];
         }
     }
     if (isset($this->passedArgs['activo'])) {
         switch ((int) $this->passedArgs['activo']) {
             case -1:
                 $basura = 1;
                 break;
                 // es el valor empty. O sea, buscar por todos
             // es el valor empty. O sea, buscar por todos
             case 0:
                 //inactivas
             //inactivas
             case 1:
                 //activas
                 $this->paginate['Instit']['conditions']['Instit.activo'] = $this->passedArgs['activo'];
                 $aux = $this->passedArgs['activo'] ? 'Si' : 'No';
                 $this->paginate['viewConditions']['Ingresada al RFIETP'] = $aux;
                 break;
         }
     }
     /**
      *      NOMBRE COMPLETO
      */
     if (!empty($this->data['Instit']['nombre_completo'])) {
         $this->passedArgs['nombre_completo'] = utf8_encode($this->data['Instit']['nombre_completo']);
     }
     if (!empty($this->passedArgs['nombre_completo'])) {
         $this->paginate['Instit']['conditions']["to_ascii(lower(Tipoinstit.name))||' n '||" . "to_ascii(lower(Instit.nroinstit))||' '||" . "to_ascii(lower(Instit.nombre)) SIMILAR TO ?"] = array(convertir_para_busqueda_avanzada(utf8_decode($this->passedArgs['nombre_completo'])));
         $this->paginate['viewConditions']['Tipo, Número o Nombre '] = utf8_decode($this->passedArgs['nombre_completo']);
     }
     if (!empty($this->data['Titulo']['que'])) {
         $this->paginate['Instit']['conditions']['(lower(Tipoinstit.name) || lower(Titulo.name) || lower(Plan.name) || lower(Sector.name) || lower(Subsector.name)) SIMILAR TO ?'] = convertir_para_busqueda_avanzada(utf8_decode($this->data['Titulo']['que']));
     }
     if (!empty($this->data['Titulo']['donde'])) {
         $this->paginate['Instit']['conditions']['(lower(Jurisdiccion.name) || lower(Departamento.name) || lower(Localidad.name) || lower(Instit.name)) SIMILAR TO ?'] = convertir_para_busqueda_avanzada(utf8_decode($this->data['Titulo']['donde']));
     }
     /*
     para el campo de departamento/localidad
     */
     if (!empty($this->data['Instit']['jur_dep_loc'])) {
         if (!empty($this->data['Instit']['departamento_id'])) {
             $dto = $this->Instit->Departamento->findById($this->data['Instit']['departamento_id']);
             $this->data['Instit']['jur_dep_loc'] = utf8_decode($this->data['Instit']['jur_dep_loc']);
             $nombre = $dto["Departamento"]["name"] . " (" . $dto["Jurisdiccion"]["name"] . ")";
             if ($nombre != $this->data['Instit']['jur_dep_loc']) {
                 unset($this->data['Instit']['departamento_id']);
                 $q = $this->data['Instit']['jur_dep_loc'];
                 $this->paginate['Instit']['conditions']["to_ascii(lower(Localidad.name) || lower(Departamento.name) || lower(Jurisdiccion.name)) SIMILAR TO ?"] = convertir_para_busqueda_avanzada($q);
             }
             $this->Session->write($this->sesNames['departamento'], $this->data['Instit']['departamento_id']);
         } elseif (!empty($this->data['Instit']['localidad_id'])) {
             $loc = $this->Instit->Localidad->find("first", array("conditions" => array("Localidad.id" => $this->data['Instit']['localidad_id']), "contain" => array("Departamento" => array("Jurisdiccion"))));
             $nombre = $loc["Localidad"]["name"] . ", " . $loc["Departamento"]["name"] . " (" . $loc["Departamento"]["Jurisdiccion"]["name"] . ")";
             $this->data['Instit']['jur_dep_loc'] = utf8_decode($this->data['Instit']['jur_dep_loc']);
             if ($nombre != $this->data['Instit']['jur_dep_loc']) {
                 unset($this->data['Instit']['localidad_id']);
                 $q = $this->data['Instit']['jur_dep_loc'];
                 $this->paginate['conditions']["to_ascii(lower(Localidad.name) || lower(Departamento.name) || lower(Jurisdiccion.name)) SIMILAR TO ?"] = convertir_para_busqueda_avanzada($q);
             }
             $this->Session->write($this->sesNames['localidad'], $this->data['Instit']['localidad_id']);
         }
         $q = $this->data['Instit']['jur_dep_loc'];
         $this->paginate['conditions']["to_ascii(lower(Localidad.name) || lower(Departamento.name) || lower(Jurisdiccion.name)) SIMILAR TO ?"] = convertir_para_busqueda_avanzada($q);
         $this->Session->write($this->sesNames['jurDepLoc'], $this->data['Instit']['jur_dep_loc']);
     }
     if (!empty($this->data['Instit']['jurisdiccion_id'])) {
         $this->Session->write($this->sesNames['jurisdiccion'], $this->data['Instit']['jurisdiccion_id']);
     }
     if (!empty($this->data['Instit']['direccion'])) {
         $this->Session->write($this->sesNames['direccion'], $this->data['Instit']['direccion']);
     }
     if (!empty($this->passedArgs['page'])) {
         //$this->paginate['page'] = $this->passedArgs['page'];
         $this->Session->write($this->sesNames['page'], $this->passedArgs['page']);
     } elseif ($this->Session->read($this->sesNames['page'])) {
         $this->paginate['page'] = $this->Session->read($this->sesNames['page']);
     }
     //////////////// Automagiccccs filter
     //     Nro Institucion
     $ops[] = array('model' => 'Instit', 'field' => 'nroinstit', 'friendlyName' => 'Nº de Institución', 'forceText' => true);
     //     Jurisdiccion
     $ops[] = array('field' => 'jurisdiccion_id', 'friendlyName' => 'Jurisdicción');
     //      Departamento
     $ops[] = array('field' => 'departamento_id', 'friendlyName' => 'Departamento');
     //      Localidad
     $ops[] = array('field' => 'localidad_id', 'friendlyName' => 'Localidad');
     //      TIPO INSTIT
     $ops[] = array('field' => 'tipoinstit_id', 'friendlyName' => 'Tipo Institución');
     //      Nombre
     $ops[] = array('field' => 'nombre', 'friendlyName' => 'Nombre');
     //      Direccion
     $ops[] = array('field' => 'direccion', 'friendlyName' => 'Domicilio');
     //      GESTION
     $ops[] = array('field' => 'gestion_id', 'friendlyName' => 'Ámbito de Gestión');
     //      DEPENDENCIA
     $ops[] = array('field' => 'dependencia_id', 'friendlyName' => 'Dependencia');
     //      OFERTA
     $ops[] = array('model' => 'Plan', 'field' => 'oferta_id', 'friendlyName' => 'Con Oferta', 'asociarPlan' => true);
     //      SECTOR
     $ops[] = array('model' => 'SectoresTitulo', 'field' => 'sector_id', 'friendlyName' => 'Sector', 'asociarPlan' => true);
     //      Subsector
     $ops[] = array('model' => 'SectoresTitulo', 'field' => 'subsector_id', 'friendlyName' => 'Subsector', 'asociarPlan' => true);
     //      TITULOS REFERENCIALES
     $ops[] = array('model' => 'Plan', 'field' => 'titulo_id', 'friendlyName' => 'Título o Certificado', 'asociarPlan' => true);
     //      ORIENTACION
     $ops[] = array('field' => 'orientacion_id', 'friendlyName' => 'Orientación');
     //      NORMA
     $ops[] = array('model' => 'Plan', 'field' => 'norma', 'friendlyName' => 'Norma', 'asociarPlan' => true);
     //      Tipo Instit
     $ops[] = array('field' => 'claseinstit_id', 'friendlyName' => 'Tipo de Institución de ETP');
     //      Tipo Instit
     $ops[] = array('model' => 'Instit', 'field' => 'etp_estado_id', 'friendlyName' => 'Relación con ETP');
     $this->Buscable->aplicarCriteriosDeBusqueda($ops);
     /*********************************************************************/
     /*          FIN -*-CONDITIONS-*- de busqueda                         */
     /*********************************************************************/
     $this->Instit->recursive = 1;
     //para alivianar la carga del server
     $pagin = $this->paginate('Instit');
     $this->set('instits', $pagin);
     $this->set('url_conditions', $this->passedArgs);
     $this->set('conditions', $this->paginate['viewConditions']);
     if (!empty($this->passedArgs['Plan.titulo_id'])) {
         $this->set('referer', $this->passedArgs['Plan.titulo_id']);
     }
     if (!$this->RequestHandler->isAjax()) {
         // si se encontro solo 1 institucion, ir directamente a la vista de esa institucion
         // si el resultado me trajo 1, y eestoy buscando por CUE, entonces ir directamente a la vista d esas institucion
         if (sizeof($pagin) == 1 && $vino_formulario) {
             if (!empty($this->data['Instit']['cue'])) {
                 if ($pagin[0]['Instit']['cue'] == $this->data['Instit']['cue'] || $pagin[0]['Instit']['cue'] * 100 + $pagin[0]['Instit']['anexo'] == $this->data['Instit']['cue']) {
                     $this->redirect('view/' . $pagin[0]['Instit']['id']);
                 }
             }
         }
     }
 }
예제 #9
0
 function view_fp($instit_id, $oferta_id, $ciclo = 0)
 {
     Controller::disableCache();
     $es_una_busqueda = false;
     $sesNames = array('instit' => 'Instit.id', 'plan' => 'Plan.nombre' . $instit_id . $oferta_id . $ciclo, 'sector' => 'Sector.id' . $instit_id . $oferta_id, 'page' => 'page' . $instit_id . $oferta_id . $ciclo);
     if (!empty($this->data['Plan']['nombre'])) {
         $this->data['Plan']['nombre'] = utf8_decode($this->data['Plan']['nombre']);
     }
     if (!empty($this->data)) {
         $es_una_busqueda = true;
         $this->Session->write($sesNames['instit'], $instit_id);
         $this->Session->write($sesNames['plan'], $this->data['Plan']['nombre']);
         $this->Session->write($sesNames['sector'], $this->data['Sector']['id']);
         $this->Session->write('page', '');
     } else {
         // busqueda en Session
         if ($this->Session->read($sesNames['instit']) == $instit_id) {
             if ($this->Session->read($sesNames['plan'])) {
                 $this->data['Plan']['nombre'] = $this->Session->read($sesNames['plan']);
             }
             if ($this->Session->read($sesNames['sector'])) {
                 $this->data['Sector']['id'] = $this->Session->read($sesNames['sector']);
             }
             $es_una_busqueda = true;
         }
     }
     $url_conditions = $this->passedArgs;
     if (!empty($this->passedArgs['page'])) {
         $this->Session->write($sesNames['page'], $this->passedArgs['page']);
     } elseif ($this->Session->read($sesNames['page'])) {
         $this->paginate['page'] = $this->Session->read($sesNames['page']);
     }
     $planNombre = null;
     if (!empty($this->data['Plan']['nombre'])) {
         $planNombre = $this->data['Plan']['nombre'];
     }
     if (!empty($this->passedArgs['Plan.nombre'])) {
         $planNombre = utf8_decode($this->passedArgs['Plan.nombre']);
     }
     if (!empty($planNombre)) {
         $this->paginate['conditions']['lower(Plan.nombre) SIMILAR TO ?'] = array(convertir_para_busqueda_avanzada($planNombre));
         $url_conditions['Plan.nombre'] = $planNombre;
     }
     $sectorId = null;
     if (!empty($this->data['Sector']['id'])) {
         $sectorId = $this->data['Sector']['id'];
     }
     if (!empty($this->passedArgs['Sector.id'])) {
         $sectorId = $this->passedArgs['Sector.id'];
     }
     if (!empty($sectorId)) {
         $this->paginate['conditions']['SectoresTitulo.sector_id'] = $sectorId;
         $url_conditions['Sector.id'] = $sectorId;
     }
     if (!empty($ciclo)) {
         $this->paginate['conditions']['Anio.ciclo_id'] = $ciclo;
     }
     $this->paginate['asociarAnio'] = true;
     $this->paginate['conditions']['Plan.oferta_id'] = $oferta_id;
     $this->paginate['conditions']['Instit.id'] = $instit_id;
     $this->paginate['order'] = array("Plan.nombre");
     $this->paginate['recursive'] = 3;
     // find completo
     $planes = $this->paginate();
     $newVecPlanes = array();
     $i = 0;
     foreach ($planes as &$plan) {
         if ($ciclo == 0) {
             $ultimo_ciclo = $this->Plan->getUltimoCiclo($plan['Plan']['id']);
             $plan['Plan']['matricula'] = $this->Plan->dameMatriculaDeCiclo($plan['Plan']['id'], $ultimo_ciclo);
         } else {
             $plan['Plan']['matricula'] = $this->Plan->dameMatriculaDeCiclo($plan['Plan']['id'], $ciclo);
         }
     }
     $sectores = $this->Plan->Instit->listSectoresConOferta($instit_id, $oferta_id);
     $ciclos_anios = $this->Plan->Instit->getCiclosLectivosXOferta($instit_id, $agregar_anio_actual = false);
     $ciclos_anios = $ciclos_anios[FP_ID]['ciclo'];
     $this->set('es_una_busqueda', $es_una_busqueda);
     $this->set('sectores', $sectores);
     $this->set('planes', $planes);
     $this->set('instit_id', $instit_id);
     $this->set('oferta_id', $oferta_id);
     $this->set('ciclo', $ciclo);
     $this->set('ciclos_anios', $ciclos_anios);
     $this->set('url_conditions', $url_conditions);
 }
예제 #10
0
 function corrector_de_planes()
 {
     //// dejo un log de ingreso
     $username = $this->Auth->user('nombre') . ' ' . $this->Auth->user('apellido') . ' (' . $this->Auth->user('username') . ')';
     $grupo = $this->Session->read('User.group_alias');
     $this->Instit->logDepuradores($username, $grupo, "corrector_de_planes");
     /********************** GUARDADO DE LOS PLANES SELECCIONADOS *******/
     if (!empty($this->data['Plan'])) {
         $planesGuardar = array();
         foreach ($this->data['Plan']['planes'] as $checkbox) {
             //$this->redirect(array('corrector_de_planes', @$this->data['Plan']['url_conditions']));
             if ($checkbox['selected'] == 1) {
                 $planesGuardar[] = $checkbox['id'];
             }
         }
         if (empty($planesGuardar)) {
             $this->Session->setFlash(__('Debe seleccionar uno o más Planes'));
         }
         if (empty($this->data['Plan']['titulo_id'])) {
             $this->Session->setFlash(__('Debe seleccionar un Título'));
         }
         if (!empty($planesGuardar) && $this->data['Plan']['titulo_id'] > 0) {
             $this->Titulo->Plan->recursive = -1;
             $PlanesData = $this->Titulo->Plan->find('all', array('fields' => array('Plan.id', 'Plan.oferta_id'), 'conditions' => array('Plan.id' => $planesGuardar)));
             $this->Titulo->recursive = -1;
             $tituloData = $this->Titulo->find('first', array('fields' => array('Titulo.id', 'Titulo.oferta_id'), 'conditions' => array('Titulo.id' => $this->data['Plan']['titulo_id'])));
             // comprobar que no se va a asignar un titulo de una determinada oferta a un
             // plan que pertenece a una oferta distinta
             $correctos = $incorrectos = 0;
             $planesGuardarDefinitivo = array();
             foreach ($PlanesData as $plan) {
                 if ($plan['Plan']['oferta_id'] == $tituloData['Titulo']['oferta_id']) {
                     $planesGuardarDefinitivo[] = $plan['Plan']['id'];
                     $correctos++;
                 } else {
                     $incorrectos++;
                 }
             }
             if (!empty($planesGuardarDefinitivo)) {
                 $this->Titulo->Plan->updateAll(array('Plan.titulo_id' => $this->data['Plan']['titulo_id']), array('Plan.id' => $planesGuardarDefinitivo));
             }
             if ($incorrectos == 0) {
                 $this->Session->setFlash(__('Se ha asignado el Título ' . $this->data['Plan']['tituloName'] . ' a ' . $correctos . ' Planes', true));
             } else {
                 $this->Session->setFlash(__('Se ha asignado el Título ' . $this->data['Plan']['tituloName'] . ' a ' . $correctos . ' Planes. No se ha asignado a ' . $incorrectos . ' Planes por pertenecer a una oferta distinta a la del Título de Referencia.', true));
             }
         }
         $this->redirect(array('corrector_de_planes', @$this->data['Plan']['url_conditions']));
         $url_conditions['Plan.titulo_id'] = $this->data['Plan']['titulo_id'];
     }
     /***************************** FIN GUARDADO DE LOS PLANES ***************/
     /********************** BUSCADOR DE PLANES *******/
     // para el paginator que pueda armar la url
     $url_conditions = array();
     /**
      *     OFERTA
      */
     $oferta_id = '';
     if (!empty($this->data['FPlan']['oferta_id'])) {
         $oferta_id = $this->data['FPlan']['oferta_id'];
     } elseif (!empty($this->passedArgs['Plan.oferta_id'])) {
         $oferta_id = $this->passedArgs['Plan.oferta_id'];
         $this->data['FPlan']['oferta_id'] = $oferta_id;
     }
     if (!empty($oferta_id)) {
         $this->paginate['conditions']['Plan.oferta_id'] = $oferta_id;
         $url_conditions['Plan.oferta_id'] = $oferta_id;
     }
     /**
      *     SECTOR
      */
     $sector_id = '';
     if (!empty($this->data['FPlan']['sector_id'])) {
         $sector_id = $this->data['FPlan']['sector_id'];
     } elseif (!empty($this->passedArgs['Titulo.sector_id'])) {
         $sector_id = $this->passedArgs['Titulo.sector_id'];
         $this->data['FPlan']['sector_id'] = $sector_id;
     }
     if (!empty($sector_id)) {
         $this->paginate['conditions']['SectoresTitulo.sector_id'] = $sector_id;
         $url_conditions['Titulo.sector_id'] = $sector_id;
     }
     /**
      *     SUBSECTOR
      */
     if (isset($this->data['FPlan']['subsector_id']) && $this->data['FPlan']['subsector_id'] !== "") {
         $subsector_id = $this->data['FPlan']['subsector_id'];
     } elseif (isset($this->passedArgs['Titulo.subsector_id'])) {
         $subsector_id = $this->passedArgs['Titulo.subsector_id'];
         $this->data['FPlan']['subsector_id'] = $subsector_id;
     }
     if (isset($subsector_id)) {
         $this->paginate['conditions']['SectoresTitulo.subsector_id'] = $subsector_id;
         $url_conditions['Titulo.subsector_id'] = $subsector_id;
     } else {
         $subsector_id = '';
     }
     /**
      *     JURISDICCION
      */
     $jurisdiccion_id = '';
     if (!empty($this->data['FPlan']['jurisdiccion_id'])) {
         $jurisdiccion_id = $this->data['FPlan']['jurisdiccion_id'];
     } elseif (!empty($this->passedArgs['Instit.jurisdiccion_id'])) {
         $jurisdiccion_id = $this->passedArgs['Instit.jurisdiccion_id'];
         $this->data['FPlan']['jurisdiccion_id'] = $subsector_id;
     }
     if (!empty($jurisdiccion_id)) {
         $this->paginate['conditions']['Instit.jurisdiccion_id'] = $jurisdiccion_id;
         $url_conditions['Instit.jurisdiccion_id'] = $jurisdiccion_id;
     }
     /**
      *  Por Plan
      */
     $plan_nombre = '';
     if (!empty($this->data['FPlan']['plan_nombre'])) {
         $plan_nombre = $this->data['FPlan']['plan_nombre'];
     } elseif (!empty($this->passedArgs['Plan.plan_nombre'])) {
         $plan_nombre = utf8_decode($this->passedArgs['Plan.plan_nombre']);
         $this->data['FPlan']['plan_nombre'] = $plan_nombre;
     }
     if (!empty($plan_nombre)) {
         $this->paginate['conditions']["to_ascii(lower(Plan.nombre)) SIMILAR TO ?"] = array(convertir_para_busqueda_avanzada($plan_nombre));
         $array_condiciones['Nombre del Plan'] = $plan_nombre;
         $url_conditions['Plan.plan_nombre'] = $plan_nombre;
     }
     /*
      *  Por Título
      *
      */
     $titulo_id = '';
     if (!empty($this->data['FPlan']['titulo_id'])) {
         $titulo_id = $this->data['FPlan']['titulo_id'];
     } elseif (!empty($this->passedArgs['Plan.titulo_id'])) {
         $titulo_id = $this->passedArgs['Plan.titulo_id'];
         $this->data['FPlan']['titulo_id'] = $titulo_id;
     }
     if (!empty($titulo_id)) {
         $this->paginate['conditions']["Plan.titulo_id"] = $titulo_id;
         $url_conditions['Plan.titulo_id'] = $titulo_id;
     }
     /*
      *  Todos/Con/Sin Título
      *
      */
     $con_titulo = '';
     if (!empty($this->data['FPlan']['con_titulo'])) {
         $con_titulo = $this->data['FPlan']['con_titulo'];
     } elseif (!empty($this->passedArgs['Plan.con_titulo'])) {
         $con_titulo = $this->passedArgs['Plan.con_titulo'];
         $this->data['FPlan']['con_titulo'] = $con_titulo;
     }
     if (!empty($con_titulo)) {
         if ($con_titulo == 'con') {
             $this->paginate['conditions']['Plan.titulo_id >'] = 0;
         } else {
             $this->paginate['conditions']['Plan.titulo_id ='] = 0;
         }
         $url_conditions['Plan.con_titulo'] = $this->data['FPlan']['con_titulo'];
     }
     //-----------------------------------------------------------------    */
     //                               Busqueda                              */
     //-----------------------------------------------------------------    */
     //datos de paginacion
     $this->paginate['order'] = array('Plan.nombre' => 'ASC');
     if (!empty($this->data['FPlan']['last_page'])) {
         $this->paginate['page'] = $this->data['FPlan']['last_page'];
     }
     // limit
     $this->paginate['limit'] = 10;
     if (!empty($this->data['FPlan']['limit'])) {
         $limit = $this->data['FPlan']['limit'];
     } elseif (!empty($this->passedArgs['FPlan.limit'])) {
         $limit = $this->passedArgs['FPlan.limit'];
         $this->data['FPlan']['limit'] = $limit;
     }
     if (!empty($limit)) {
         $url_conditions['FPlan.limit'] = $limit;
         $this->paginate['limit'] = $limit;
     }
     // Condicion necesaria
     $titulo_id = 0;
     if (!empty($this->data['Plan']['titulo_id'])) {
         $url_conditions['Plan.titulo_id'] = $this->data['Plan']['titulo_id'];
         $titulo_id = $this->data['Plan']['titulo_id'];
     }
     if (!empty($this->passedArgs['Plan.titulo_id'])) {
         $url_conditions['Plan.titulo_id'] = $this->passedArgs['Plan.titulo_id'];
         $titulo_id = $this->passedArgs['Plan.titulo_id'];
     }
     $this->paginate['contain'] = array('Instit', 'Oferta', 'Titulo' => array('SectoresTitulo' => array('Sector', 'Subsector.Sector')), 'EstructuraPlan.Etapa', 'Anio');
     $this->paginate['recursive'] = 3;
     $planes = $this->paginate('Plan');
     $this->set('url_conditions', $url_conditions);
     $this->Titulo->Oferta->recursive = -1;
     $ofertas = $this->Titulo->Oferta->find('list');
     $this->Titulo->SectoresTitulo->Sector->recursive = -1;
     $this->Titulo->SectoresTitulo->Sector->order = 'Sector.name';
     $sectores = $this->Titulo->SectoresTitulo->Sector->find('list');
     $subsectores = array();
     if (!empty($this->data['FPlan']['sector_id'])) {
         $subsecConditions = array();
         if (!empty($this->data['FPlan']['sector_id'])) {
             $subsecConditions = array('Subsector.sector_id' => $this->data['FPlan']['sector_id']);
         }
         $this->Titulo->SectoresTitulo->Subsector->recursive = -1;
         $this->Titulo->SectoresTitulo->Subsector->order = 'Subsector.name';
         $subsectores = $this->Titulo->SectoresTitulo->Subsector->find('list', array('conditions' => $subsecConditions));
         $subsectores[0] = 'Sin Subsector';
     }
     $this->Titulo->Plan->Instit->Jurisdiccion->recursive = -1;
     $this->Titulo->Plan->Instit->Jurisdiccion->order = 'Jurisdiccion.name';
     $jurisdicciones = $this->Titulo->Plan->Instit->Jurisdiccion->find('list');
     $condicion = array();
     if (!empty($this->data['FPlan']['oferta_id'])) {
         $condicion['conditions']['oferta_id'] = $this->data['FPlan']['oferta_id'];
     }
     $this->Titulo->recursive = -1;
     $titulos = $this->Titulo->find('list', $condicion);
     $this->set('titulo_id', $titulo_id);
     $this->set(compact('planes', 'titulos', 'ofertas', 'sectores', 'subsectores', 'jurisdicciones'));
 }