Se añade la funcionalidad para busquedas más detalladas (nombre, apellidos, observaciones, salario minimo, tecnologias y funciones (no se añade perfiltecnico porque ya lo tiene en el grid), faltaría la busqueda sobre contenido de documentos
git-svn-id: https://192.168.0.254/svn/Proyectos.Incam_IntranetNueva/trunk@80 77cfc57b-8ef4-1849-9df6-4a38aa5da120
This commit is contained in:
parent
cb5a90388f
commit
efac4437b5
@ -46,6 +46,11 @@ class Candidato extends CActiveRecord
|
|||||||
public $foto;
|
public $foto;
|
||||||
|
|
||||||
public $capacidad_tecnica_search;
|
public $capacidad_tecnica_search;
|
||||||
|
public $idiomas_search;
|
||||||
|
public $tecnologias_search;
|
||||||
|
public $funciones_search;
|
||||||
|
public $salario_ini_search;
|
||||||
|
public $salario_fin_search;
|
||||||
public $nombre_estado_search;
|
public $nombre_estado_search;
|
||||||
public $nombreCompleto_search;
|
public $nombreCompleto_search;
|
||||||
|
|
||||||
@ -177,6 +182,8 @@ class Candidato extends CActiveRecord
|
|||||||
// Please remove those attributes that should not be searched.
|
// Please remove those attributes that should not be searched.
|
||||||
array('id, id_estado,
|
array('id, id_estado,
|
||||||
nombre_estado_search, nombreCompleto_search, capacidad_tecnica_search,
|
nombre_estado_search, nombreCompleto_search, capacidad_tecnica_search,
|
||||||
|
idiomas_search, salario_ini_search, salario_fin_search,
|
||||||
|
tecnologias_search, funciones_search,
|
||||||
dni, email, telefono_fijo,
|
dni, email, telefono_fijo,
|
||||||
telefono_movil, sexo, fecha_nacimiento, lugar_nacimiento,
|
telefono_movil, sexo, fecha_nacimiento, lugar_nacimiento,
|
||||||
localidad, fecha_alta, usuario_alta,
|
localidad, fecha_alta, usuario_alta,
|
||||||
@ -218,6 +225,7 @@ class Candidato extends CActiveRecord
|
|||||||
'id' => 'ID',
|
'id' => 'ID',
|
||||||
'id_estado' => 'ID estado',
|
'id_estado' => 'ID estado',
|
||||||
'nombre_estado_search' => 'Estado',
|
'nombre_estado_search' => 'Estado',
|
||||||
|
'idiomas_search' => 'Idioma',
|
||||||
'nombreApellidos' => 'Candidato',
|
'nombreApellidos' => 'Candidato',
|
||||||
'foto' => 'Foto',
|
'foto' => 'Foto',
|
||||||
'dni' => 'DNI/Pasaporte',
|
'dni' => 'DNI/Pasaporte',
|
||||||
@ -245,6 +253,9 @@ class Candidato extends CActiveRecord
|
|||||||
'disponibilidad_proyectos_internacionales' => 'Disponibilidad para proyectos internacionales',
|
'disponibilidad_proyectos_internacionales' => 'Disponibilidad para proyectos internacionales',
|
||||||
|
|
||||||
'nombreCompleto_search' => 'Candidato',
|
'nombreCompleto_search' => 'Candidato',
|
||||||
|
'observaciones' => 'Observaciones',
|
||||||
|
'tecnologias_search'=> 'Tecnologías',
|
||||||
|
'funciones_search'=> 'Perfiles funcionales',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -258,12 +269,13 @@ class Candidato extends CActiveRecord
|
|||||||
// should not be searched.
|
// should not be searched.
|
||||||
|
|
||||||
$criteria=new CDbCriteria;
|
$criteria=new CDbCriteria;
|
||||||
$criteria->with = array('capacidades', 'estados');//, 'capacidades.capacidadesFuncionales');
|
$criteria->with = array('capacidades', 'estados', 'idiomas');//, 'capacidades.capacidadesFuncionales');
|
||||||
$criteria->together = true;
|
$criteria->together = true;
|
||||||
|
|
||||||
$criteria->compare('t.id',$this->id);
|
$criteria->compare('t.id',$this->id);
|
||||||
$criteria->compare('t.id_estado',$this->id_estado);
|
$criteria->compare('t.id_estado',$this->id_estado);
|
||||||
$criteria->compare( 'estados.descripcion', $this->nombre_estado_search, true );
|
$criteria->compare( 'estados.descripcion', $this->nombre_estado_search, true );
|
||||||
|
$criteria->compare('t.observaciones',$this->observaciones,true);
|
||||||
|
|
||||||
$criteria->compare('t.dni',$this->dni,true);
|
$criteria->compare('t.dni',$this->dni,true);
|
||||||
$criteria->compare('t.email',$this->email,true);
|
$criteria->compare('t.email',$this->email,true);
|
||||||
@ -273,6 +285,43 @@ class Candidato extends CActiveRecord
|
|||||||
$criteria->compare( 'concat(t.nombre, " ", t.apellidos)', $this->nombreCompleto_search, true );
|
$criteria->compare( 'concat(t.nombre, " ", t.apellidos)', $this->nombreCompleto_search, true );
|
||||||
$criteria->compare( 'capacidades.perfil_tecnico_id', $this->capacidad_tecnica_search, true );
|
$criteria->compare( 'capacidades.perfil_tecnico_id', $this->capacidad_tecnica_search, true );
|
||||||
|
|
||||||
|
if (($this->idiomas_search != '') && ($this->idiomas_search[0] != '')){
|
||||||
|
$cadena = '';
|
||||||
|
foreach ($this->idiomas_search as $idioma_search){
|
||||||
|
if ($cadena != '')
|
||||||
|
$cadena = $cadena . ',';
|
||||||
|
$cadena = $cadena . "'" . $idioma_search . "'";
|
||||||
|
}
|
||||||
|
$criteria->addCondition(('idiomas.idioma in ('. $cadena . ')'));
|
||||||
|
// $criteria->addCondition(('t.id in (SELECT candidato_id FROM `tbl_candidatos_capacidades` WHERE id in (SELECT capacidad_id FROM `tbl_candidatos_capacidades_tecnologias` WHERE tecnologia_id in (5,56)))'));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (($this->tecnologias_search != '') && ($this->tecnologias_search[0] != '')){
|
||||||
|
$cadena = '';
|
||||||
|
foreach ($this->tecnologias_search as $tecnologia_search){
|
||||||
|
if ($cadena != '')
|
||||||
|
$cadena = $cadena . ',';
|
||||||
|
$cadena = $cadena . "'" . $tecnologia_search . "'";
|
||||||
|
}
|
||||||
|
$criteria->addCondition(('t.id in (SELECT candidato_id FROM `tbl_candidatos_capacidades` WHERE id in (SELECT capacidad_id FROM `tbl_candidatos_capacidades_tecnologias` WHERE tecnologia_id in ('. $cadena .')))'));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (($this->funciones_search != '') && ($this->funciones_search[0] != '')){
|
||||||
|
$cadena = '';
|
||||||
|
foreach ($this->funciones_search as $funcional_search){
|
||||||
|
if ($cadena != '')
|
||||||
|
$cadena = $cadena . ',';
|
||||||
|
$cadena = $cadena . "'" . $funcional_search . "'";
|
||||||
|
}
|
||||||
|
$criteria->addCondition(('t.id in (SELECT candidato_id FROM `tbl_candidatos_capacidades` WHERE id in (SELECT capacidad_id FROM `tbl_candidatos_capacidades_funcionales` WHERE funcional_id in ('. $cadena .')))'));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->salario_ini_search != '')
|
||||||
|
$criteria->addCondition(('t.salario_minimo >='. $this->salario_ini_search));
|
||||||
|
if ($this->salario_fin_search != '')
|
||||||
|
$criteria->addCondition(('t.salario_minimo <='. $this->salario_fin_search));
|
||||||
|
|
||||||
|
|
||||||
$sort = new CSort();
|
$sort = new CSort();
|
||||||
$sort->attributes = array(
|
$sort->attributes = array(
|
||||||
'defaultOrder' => '',
|
'defaultOrder' => '',
|
||||||
@ -293,11 +342,13 @@ class Candidato extends CActiveRecord
|
|||||||
'desc' => 'capacidades.perfil_tecnico_id desc',
|
'desc' => 'capacidades.perfil_tecnico_id desc',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
echo $criteria->condition;
|
||||||
return new CActiveDataProvider($this, array(
|
return new CActiveDataProvider($this, array(
|
||||||
'criteria' => $criteria,
|
'criteria' => $criteria,
|
||||||
'sort' => $sort,
|
'sort' => $sort,
|
||||||
));
|
));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function beforeValidate() {
|
protected function beforeValidate() {
|
||||||
|
|||||||
@ -5,21 +5,6 @@
|
|||||||
'method'=>'get',
|
'method'=>'get',
|
||||||
)); ?>
|
)); ?>
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<?php echo $form->label($model,'id'); ?>
|
|
||||||
<?php echo $form->textField($model,'id'); ?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<?php echo $form->label($model,'foto'); ?>
|
|
||||||
<?php echo $form->textField($model,'foto',array('size'=>60,'maxlength'=>255)); ?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<?php echo $form->label($model,'dni'); ?>
|
|
||||||
<?php echo $form->textField($model,'dni',array('size'=>60,'maxlength'=>255)); ?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<?php echo $form->label($model,'nombre'); ?>
|
<?php echo $form->label($model,'nombre'); ?>
|
||||||
<?php echo $form->textField($model,'nombre',array('size'=>60,'maxlength'=>255)); ?>
|
<?php echo $form->textField($model,'nombre',array('size'=>60,'maxlength'=>255)); ?>
|
||||||
@ -30,55 +15,96 @@
|
|||||||
<?php echo $form->textField($model,'apellidos',array('size'=>60,'maxlength'=>255)); ?>
|
<?php echo $form->textField($model,'apellidos',array('size'=>60,'maxlength'=>255)); ?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<?php echo $form->label($model,'email'); ?>
|
<?php echo $form->label($model,'observaciones'); ?>
|
||||||
<?php echo $form->textField($model,'email',array('size'=>60,'maxlength'=>255)); ?>
|
<?php echo $form->textField($model,'observaciones',array('size'=>60,'maxlength'=>255)); ?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<?php echo $form->label($model,'telefono_fijo'); ?>
|
<?php echo $form->label($model,'idiomas_search'); ?>
|
||||||
<?php echo $form->textField($model,'telefono_fijo',array('size'=>60,'maxlength'=>255)); ?>
|
<?php
|
||||||
</div>
|
$lista = CHtml::listData(Idioma::model()->findAll(),'id', 'descripcion');
|
||||||
|
$idiomas = Idioma::model()->findAll();
|
||||||
|
foreach ($idiomas as $idioma) {
|
||||||
|
if (array_key_exists($idioma->id, $lista)) {
|
||||||
|
$lista[$idioma->descripcion] = $lista[$idioma->id];
|
||||||
|
unset($lista[$idioma->id]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo $form->dropDownList(
|
||||||
|
$model,
|
||||||
|
'idiomas_search',
|
||||||
|
$lista,
|
||||||
|
array(
|
||||||
|
'empty'=>'',
|
||||||
|
'size'=>'7',
|
||||||
|
'multiple'=>'true',
|
||||||
|
'class'=>'mf',
|
||||||
|
));
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<?php echo $form->label($model,'telefono_movil'); ?>
|
<?php echo $form->label($model,'Salario mínimo entre'); ?>
|
||||||
<?php echo $form->textField($model,'telefono_movil',array('size'=>60,'maxlength'=>255)); ?>
|
<span id="salario_ini_search" class="color069"></span> € - <span id="salario_fin_search" class="color069"></span>€
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
<?php
|
||||||
<?php echo $form->label($model,'sexo'); ?>
|
$this->widget('zii.widgets.jui.CJuiSliderInput', array(
|
||||||
<?php echo $form->textField($model,'sexo',array('size'=>60,'maxlength'=>255)); ?>
|
'model'=>$model,
|
||||||
</div>
|
'attribute'=>'salario_ini_search',
|
||||||
|
'maxAttribute'=>'salario_fin_search',
|
||||||
|
'event'=>'change',
|
||||||
|
'options'=>array(
|
||||||
|
'range'=>true,
|
||||||
|
'step'=>1000,
|
||||||
|
'min'=>12000,
|
||||||
|
'max'=>60000,
|
||||||
|
'slide'=>'js:function(event,ui){$("#salario_ini_search").text(ui.values[0]);$("#salario_fin_search").text(ui.values[1]);}',
|
||||||
|
),
|
||||||
|
'htmlOptions' => array(
|
||||||
|
'class' => 'lf',
|
||||||
|
),
|
||||||
|
));
|
||||||
|
?>
|
||||||
|
|
||||||
<div class="row">
|
</div>
|
||||||
<?php echo $form->label($model,'fecha_nacimiento'); ?>
|
|
||||||
<?php echo $form->textField($model,'fecha_nacimiento'); ?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<?php echo $form->label($model,'lugar_nacimiento'); ?>
|
<?php echo $form->label($model,'tecnologias_search'); ?>
|
||||||
<?php echo $form->textField($model,'lugar_nacimiento',array('size'=>60,'maxlength'=>255)); ?>
|
<?php
|
||||||
</div>
|
$lista = CHtml::listData(Tecnologia::model()->findAll(),'id', 'descripcion');
|
||||||
|
echo $form->dropDownList(
|
||||||
|
$model,
|
||||||
|
'tecnologias_search',
|
||||||
|
$lista,
|
||||||
|
array(
|
||||||
|
'empty'=>'',
|
||||||
|
'size'=>'7',
|
||||||
|
'multiple'=>'true',
|
||||||
|
'class'=>'mf',
|
||||||
|
));
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<?php echo $form->label($model,'fecha_alta'); ?>
|
<?php echo $form->label($model,'funciones_search'); ?>
|
||||||
<?php echo $form->textField($model,'fecha_alta'); ?>
|
<?php
|
||||||
</div>
|
$lista = CHtml::listData(PerfilFuncional::model()->findAll(),'id', 'descripcion');
|
||||||
|
echo $form->dropDownList(
|
||||||
|
$model,
|
||||||
|
'funciones_search',
|
||||||
|
$lista,
|
||||||
|
array(
|
||||||
|
'empty'=>'',
|
||||||
|
'size'=>'7',
|
||||||
|
'multiple'=>'true',
|
||||||
|
'class'=>'mf',
|
||||||
|
));
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<?php echo $form->label($model,'usuario_alta'); ?>
|
|
||||||
<?php echo $form->textField($model,'usuario_alta'); ?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
</div>
|
||||||
<?php echo $form->label($model,'fecha_modificacion'); ?>
|
|
||||||
<?php echo $form->textField($model,'fecha_modificacion'); ?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<?php echo $form->label($model,'usuario_modificacion'); ?>
|
|
||||||
<?php echo $form->textField($model,'usuario_modificacion'); ?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row buttons">
|
<div class="row buttons">
|
||||||
<?php echo CHtml::submitButton(Yii::t('intranet', 'Search')); ?>
|
<?php echo CHtml::submitButton(Yii::t('intranet', 'Search')); ?>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user