buenas compañeros les comento mi caso, tengo un formulario donde debo mostrar un cGridview unos datos para checkear y mandar lo checkeado a un responsable q es el q esta en el droDownList, como son varios registros quisiera q el cGridview se pudiera filtrar por el filtro q aparece en header, pero cuando intento hacerlo me ocurren unas cosas:
En los campos relacionados no me filtra, y en algun momento filtro por los campos q si me deja (id Radicado,estado fecha) y filtra pero hace como un refresh y vuelve como estaba antes, entonces no se como soluciona esto amigos, gracias
tengo esto en mi modelo EstadoCuenta
public function asignar_radicados()
{
$usuario=Yii::app()->user->id;
$secretaria=Usuarios::model()->findByPK(Yii::app()->user->id)->id_secretaria;
$criteria=new CDbCriteria;
$criteria->with = array('idRadicado','idUsuarioCargo');
if ($model_usuarios->id_tipo_usuario==3)//rol radicador
{
$criteria->condition="estado='RADICADO' and idRadicado.id_secretaria=".$secretaria;
}
$criteria->compare('t.id_radicado',$this->id_radicado,true);
$criteria->compare('idRadicado.vigencia',$this->vigencia,true);
$criteria->compare('idRadicado.contrato',$this->contrato,true);
$criteria->compare('idRadicado.cedula',$this->cedula,true);
$criteria->compare('idRadicado.nombre',$this->nombre,true);
$criteria->compare('estado',$this->estado,true);
$criteria->compare('idUsuarioCargo.nombre',$this->nombre_usuario,true);
$criteria->compare('t.fecha',$this->fecha,true);
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
'pagination'=>array('pageSize'=>20),
));
}
esto en mi contoller EstadoCuentaController
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view','create2','create','EstadoCuentaView','MostrarRadicados'
,'AsignarRadicados','ActualizarRadicadosAsignados'),
'users'=>array('@'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('create','update','create2','MostrarRadicados','AsignarRadicados','ActualizarRadicadosAsignados'),
'users'=>array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>array('admin','delete','create2','MostrarRadicados','AsignarRadicados','ActualizarRadicadosAsignados'),
'users'=>array('@'),
),
array('deny', // deny all users
'users'=>array('@'),
),
);
}
public function actionAsignarRadicados()//aca es donde va el save creo q tendre algo mal aca, porq quiero mostrar la lista y q a su vez ps el save se haga cuando de en el boton crear.
{
$model=new EstadoCuenta('asignar_radicados');
$model->unsetAttributes();
if(isset($_GET['EstadoCuenta']))
$model->attributes=$_GET['EstadoCuenta'];
$this->render('asignar_radicados',array(
'model'=>$model,
));
}
esto en mi vista asignar_radicados
<?php
?>
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'asignacion-form',
'enableAjaxValidation'=>false,
)); ?>
<?php
if($model->isNewRecord){
?>
<?php echo $form->errorSummary($model); ?>
<div class="row">
<?php echo $form->labelEx($model,'Seleccione Revisor'); ?>
<?php echo $form->dropDownList($model,'id_usuario', Usuarios::getListUsuarios()); ?>
<?php echo $form->error($model,'id_usuario'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Crear' : 'Actualizar'); ?>
</div>
<div style="width:910px;overflow-x:scroll;">
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'asignar_radicados-grid',
'dataProvider'=>$model->asignar_radicados(),
'filter'=>$model,
'htmlOptions'=>array('style'=>'width:1000;'),
'columns'=>array(
array (
'id' => 'id_radicado' ,
'name'=>'id_radicado',
'class' => 'CCheckBoxColumn' ,
'selectableRows' => '2' ,
) ,
array(
'name'=>'id_radicado',
'htmlOptions'=>array('style'=>'width:60px;'),
),
array(
'name'=>'vigencia',
'header'=>'Vigencia',
'value'=>'$data->idRadicado->vigencia',
'htmlOptions'=>array('style'=>'width:50px;'),
),
array(
'name'=>'contrato',
'header'=>'Contrato',
'value'=>'$data->idRadicado->contrato',
'htmlOptions'=>array('style'=>'width:60px;'),
),
array(
'name'=>'cedula',
'header'=>'Cedula',
'value'=>'$data->idRadicado->cedula',
'htmlOptions'=>array('style'=>'width:70px;'),
),
array(
'name'=>'nombre',
'header'=>'Nombre del Contratista',
'value'=>'$data->idRadicado->nombre',
'htmlOptions'=>array('style'=>'width:270px;'),
),
array(
'name'=>'estado',
'htmlOptions'=>array('style'=>'width:70px;'),
),
array(
'name'=>'nombre_usuario',
'header'=>'Nombre del Usuario a Cargo',
'value'=>'$data->idUsuario->nombre',
'htmlOptions'=>array('style'=>'width:190px;'),
),
array(
'name'=>'fecha',
'htmlOptions'=>array('style'=>'width:170px;'),
),
array(
'class'=>'CButtonColumn',
'template'=>'{update}',
),
),
)); ?>
</div>
<?php
}
else
{
?>
<div class="row">
<?php echo $form->labelEx($model,'Asignar Usuario'); ?>
<?php echo $form->dropDownList($model,'id_usuario', Usuarios::getListUsuarios(),array('empty'=>'Seleccionar')); ?>
<?php echo $form->error($model,'id_usuario'); ?>
</div>
<div class="span-3">
<?php echo $form->labelEx($model,'id_radicado'); ?>
<?php echo CHtml::textField($model->idRadicado->id_radicado,CHtml::encode($model->idRadicado->id_radicado),array('size'=>'10px','readonly'=>true)); ?>
<?php echo $form->error($model,'id_radicado'); ?>
</div>
<div class="span-3">
<?php echo $form->labelEx($model,'vigencia'); ?>
<?php echo CHtml::textField($model->idRadicado->vigencia,CHtml::encode($model->idRadicado->vigencia),array('size'=>'10px','readonly'=>true)); ?>
<?php echo $form->error($model,'vigencia'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'contrato'); ?>
<?php echo CHtml::textField($model->idRadicado->contrato,CHtml::encode($model->idRadicado->contrato),array('size'=>'10px','readonly'=>true)); ?>
<?php echo $form->error($model,'contrato'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Crear' : 'Actualizar'); ?>
</div>
<?php
}
?>
<?php $this->endWidget(); ?>
</div><!-- form -->