Fin de búsqueda avanzada (Capacidades es un o el resto es un and)

git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_PROFIND_Web/trunk@80 3fe1ab16-cfe0-e34b-8c9f-7d8c168d430d
This commit is contained in:
David Arranz 2013-01-23 11:19:27 +00:00
parent 52fef1f348
commit 893865c33e
3 changed files with 69 additions and 9 deletions

View File

@ -56,6 +56,11 @@ class Candidato extends CActiveRecord {
public $idiomas_search; public $idiomas_search;
public $titulaciones_search; public $titulaciones_search;
public $perfiles_search; public $perfiles_search;
public $desarrollos_search;
public $pruebas_search;
public $sistemas_search;
public $consultorias_search;
public $tipos_search;
private $_nombreCompleto; private $_nombreCompleto;
@ -148,7 +153,9 @@ class Candidato extends CActiveRecord {
array('id, id_estado, estado, descripcionEstado, nombre, apellidos, nombreCompleto, array('id, id_estado, estado, descripcionEstado, nombre, apellidos, nombreCompleto,
n_identificacion, email, telefono_fijo, n_identificacion, email, telefono_fijo,
salario_ini_search, salario_fin_search, idiomas_search, titulaciones_search, salario_ini_search, salario_fin_search, idiomas_search, titulaciones_search,
perfiles_search,
perfiles_search, desarrollos_search, pruebas_search, sistemas_search, consultorias_search, tipos_search;
telefono_movil, sexo, fecha_nacimiento, lugar_nacimiento, telefono_movil, sexo, fecha_nacimiento, lugar_nacimiento,
localidad, carnet_conducir, vehiculo_propio, localidad, carnet_conducir, vehiculo_propio,
observaciones, salario_minimo, salario_maximo, procedencia, observaciones, salario_minimo, salario_maximo, procedencia,
@ -239,6 +246,15 @@ class Candidato extends CActiveRecord {
'disponibilidad_proyectos_internacionales' => 'Disponibilidad para proyectos internacionales', 'disponibilidad_proyectos_internacionales' => 'Disponibilidad para proyectos internacionales',
'observaciones' => 'Observaciones', 'observaciones' => 'Observaciones',
'modified_time' => 'Modificación', 'modified_time' => 'Modificación',
'idiomas_search' => 'Idiomas',
'titulaciones_search' => 'Titulaciones',
'perfiles_search' => 'Perfil',
'desarrollos_search' => 'Desarrollo',
'pruebas_search' => 'Pruebas e integración',
'sistemas_search' => 'Sistemas',
'consultorias_search' => 'Consultoría',
'tipos_search' => 'Tipos de aplicación',
); );
} }
@ -329,19 +345,64 @@ class Candidato extends CActiveRecord {
$criteria->addCondition(('titulaciones.titulacion in ('. $cadena . ')')); $criteria->addCondition(('titulaciones.titulacion in ('. $cadena . ')'));
} }
$cadena = '';
if (($this->perfiles_search != '') && ($this->perfiles_search[0] != '')){ if (($this->perfiles_search != '') && ($this->perfiles_search[0] != '')){
$criteria->together = true; $criteria->together = true;
array_push($criteria->with, 'capacidadesProfesionales'); array_push($criteria->with, 'capacidadesProfesionales');
$cadena = '';
foreach ($this->perfiles_search as $perfil_search){ foreach ($this->perfiles_search as $perfil_search){
if ($cadena != '') if ($cadena != '')
$cadena = $cadena . ','; $cadena = $cadena . ',';
$cadena = $cadena . "'" . $perfil_search . "'"; $cadena = $cadena . "'" . $perfil_search . "'";
} }
$criteria->addCondition(('capacidadesProfesionales.id_capacidad in ('. $cadena . ')')); }
if (($this->desarrollos_search != '') && ($this->desarrollos_search[0] != '')){
$criteria->together = true;
array_push($criteria->with, 'capacidadesProfesionales');
foreach ($this->desarrollos_search as $desarrollo_search){
if ($cadena != '')
$cadena = $cadena . ',';
$cadena = $cadena . "'" . $desarrollo_search . "'";
}
}
if (($this->pruebas_search != '') && ($this->pruebas_search[0] != '')){
$criteria->together = true;
array_push($criteria->with, 'capacidadesProfesionales');
foreach ($this->pruebas_search as $prueba_search){
if ($cadena != '')
$cadena = $cadena . ',';
$cadena = $cadena . "'" . $prueba_search . "'";
}
}
if (($this->sistemas_search != '') && ($this->sistemas_search[0] != '')){
$criteria->together = true;
array_push($criteria->with, 'capacidadesProfesionales');
foreach ($this->sistemas_search as $sistema_search){
if ($cadena != '')
$cadena = $cadena . ',';
$cadena = $cadena . "'" . $sistema_search . "'";
}
}
if (($this->consultorias_search != '') && ($this->consultorias_search[0] != '')){
$criteria->together = true;
array_push($criteria->with, 'capacidadesProfesionales');
foreach ($this->consultorias_search as $consultoria_search){
if ($cadena != '')
$cadena = $cadena . ',';
$cadena = $cadena . "'" . $consultoria_search . "'";
}
}
if (($this->tipos_search != '') && ($this->tipos_search[0] != '')){
$criteria->together = true;
array_push($criteria->with, 'capacidadesProfesionales');
foreach ($this->tipos_search as $tipo_search){
if ($cadena != '')
$cadena = $cadena . ',';
$cadena = $cadena . "'" . $tipo_search . "'";
}
} }
if ($cadena != '')
$criteria->addCondition(('capacidadesProfesionales.id_capacidad in ('. $cadena . ')'));
$sort = new CSort(); $sort = new CSort();

View File

@ -135,7 +135,7 @@ class CandidatoDocumento extends CActiveRecord {
} }
protected function beforeSave() { protected function beforeSave() {
// $this->fecha = date('Y-m-d', CDateTimeParser::parse($this->fecha, Yii::app()->locale->dateFormat)); $this->fecha = date('Y-m-d h:m:s', CDateTimeParser::parse($this->fecha, Yii::app()->locale->dateFormat));
return parent::beforeSave(); return parent::beforeSave();
} }
@ -145,7 +145,6 @@ class CandidatoDocumento extends CActiveRecord {
} }
protected function afterSave() { protected function afterSave() {
// $this->fecha = Yii::app()->dateFormatter->formatDateTime(CDateTimeParser::parse($this->fecha, 'yyyy-MM-dd'), 'medium', null);
if ($this->isNewRecord) if ($this->isNewRecord)
$this->guardarFicheroDocumento(); $this->guardarFicheroDocumento();
return parent::afterSave(); return parent::afterSave();

View File

@ -32,9 +32,9 @@ Yii::app()->clientScript->registerScript('js_datepicker', $js_datepicker, CClien
<td> <td>
<?php $this->widget('zii.widgets.jui.CJuiDatePicker', array( <?php $this->widget('zii.widgets.jui.CJuiDatePicker', array(
'model' => $documento, 'model' => $documento,
'attribute' => "[$i]fecha", 'attribute' => "[$i]fecha",
'language' => 'es', 'language' => 'es',
'options' => array('showAnim' => 'fold', 'dateFormat' => 'dd/mm/yyyy'), 'options' => array('showAnim' => 'fold', 'dateFormat' => 'dd/mm/yy'),
'htmlOptions' => array('class' => 'span12'), 'htmlOptions' => array('class' => 'span12'),
)); ));
?> ?>