<legend>Armar Nomenclador</legend> <fieldset> <?php // este formulario esta en un tab de osplan, cuando se ejecuta update osplan // la busqueda de las practicas se hace enviando al controlador Practicas las // opciones seleccionadas. //Una vez hecha la seleccion, se envia con el formulario completo al controlador //osplan/update echo TbHtml::dropDownListControlGroup('idnomenclador',false, CHtml::listData(Nomenclador::model()->findAll(array('order' => 'nombre')), 'idnomenclador', 'nombre'), array( 'prompt'=>'Seleccionar', // 'label' =>'Nomenclador Base', 'label'=>TbHtml::labelTb('Nomenclador base', array('color' => TbHtml::LABEL_COLOR_WARNING, 'style' => 'padding: 5px ; margin:-2px;')), // esta funcion la deshabilito y pongo el boton ajaxbutton mas abajo, para // enviar los datos idnomenclador junto con el filtro de tipo de practicas // // 'ajax' => array( // 'type' => 'GET', //request type, pongo GET para que funcione el pager en la _grillapracticas generada // 'dataType' => 'html', // // data usa javascript, en otros casos, puede ser de la forma php array('id'=>'js:this.value') // 'data' => 'js:$(".tipopract:checked").serialize()+ "&idnomenclador=" + this.value', // 'url' => CController::createUrl('Practica/listarpracticaspornomenclador'), //url to call. //// 'update' => "#formunidades", // 'success'=> 'js:function(data){ $("#form2").show();$("#formunidades").html(data).show()}', //
'value' => 'isset($data->codigo)?$data->codigo:""', 'htmlOptions'=>array('style'=>'width:60px;'), 'filter' => false, ), array( 'name' => 'codigocarga', 'value' => 'isset($data->codigocarga)?$data->codigocarga:""', 'htmlOptions'=>array('style'=>'width:60px;'), 'filter' => false, ), array( 'name' => 'nombre', 'value' => 'isset($data->nombre)?substr($data->nombre,0,50):""', 'filter' => false, 'htmlOptions'=>array('style'=>'width:300px;'), ), array( 'name' => 'idpractipo', 'value' => 'isset($data->idpractipo0->nombre)?$data->idpractipo0->nombre:""', 'filter' => CHtml::listData(Practipo::model()->findAll(array('order'=>'nombre')),'idpractipo','nombre'), ), array( 'name' => 'idnomenclador', 'value' => 'isset($data->idnomenclador0->nombre)?$data->idnomenclador0->nombre:""', 'filter' => CHtml::listData(Nomenclador::model()->findAll(array('order'=>'nombre')),'idnomenclador','nombre'), ), ), ));
<?php echo $form->textFieldControlGroup($model, 'estadistica', array('size' => 60, 'maxlength' => 200)); ?> <?php echo $form->checkBoxControlGroup($model, 'sangre'); ?> <?php echo $form->checkBoxControlGroup($model, 'asitioweb'); ?> <?php echo $form->dropDownListControlGroup($model, 'idpractipo', CHtml::listData(Practipo::model()->findAll(array('order' => 'nombre')), 'idpractipo', 'nombre')); ?> <?php // al seleccionar el tipo de nomenclador, se envia por ajax la idnomenclador // al controlador CANTUNIDAD, accion formalta (Cantunidad/formalta) // la accion formalta utiliza el formulario //cantunidad/_form_alta // este formulario carga las unidades segun correspondan a ese nomenclador // y se muestra via ajax como respuesta echo $form->dropDownListControlGroup($model, 'idnomenclador', CHtml::listData(Nomenclador::model()->findAll(array('order' => 'nombre')), 'idnomenclador', 'nombre'), array( 'prompt'=>'Seleccionar', 'id'=>'nomen', 'ajax' => array( 'type' => 'POST', //request type 'dataType' => 'html', 'data' => array('idnomenclador' => 'js:this.value'), 'url' => CController::createUrl('Cantunidad/formalta'), //url to call. 'update' => "#formunidades", ) )); ?> <div id="formunidades"> </div>
public function search3($idosplan) { // busqueda de las practicas incluidas en el nomencladorplan $criteria = new CDbCriteria(); $criteria->compare('idosplan', $idosplan); $criteria->select = 'idpractica'; $p = $this->findAll($criteria); // obtener arreglo de idpractica foreach ($p as $row) { $idpractica[] = $row->idpractica; } // busqueda en tabla practicas de los idnomenclador no repetidos // $criteria = new CDbCriteria(); $criteria->addInCondition("idpractica", $idpractica); $criteria->select = 'idnomenclador'; $criteria->distinct = true; $r = Practica::model()->findAll($criteria); // para cada idnomenclador obtener idunidad foreach ($r as $row) { $idnomenclador = $row->idnomenclador; // $idunidad[] = Nomenclador::model()->getUnidades($idnomenclador); } // retorna arreglo con las idunidades del nomenclador // recorrer doble arreglo $idunidad foreach ($idunidad as $row) { foreach ($row as $clave => $valor) { $unidad[] = $valor; } } return $unidad; }
public function actionFormalta() { $idnomenclador = $_POST['idnomenclador']; $model = new Cantunidad(); $unidades = Nomenclador::model()->getUnidadesNombre($idnomenclador); $this->renderPartial('_form_alta', array('model' => $model, 'unidades' => $unidades), false, true); }
public function getColumnas() { return array(array('name' => 'idpractica', 'value' => 'isset($data->idpractica)?$data->idpractica:""', 'filter' => false, 'visible' => Yii::app()->user->categoria == Usuarios::SOFTWARE ? true : false), array('name' => 'codigo', 'value' => 'isset($data->codigo)?$data->codigo:""', 'filter' => false), array('name' => 'codigocarga', 'value' => 'isset($data->codigocarga)?$data->codigocarga:""', 'filter' => false), array('name' => 'nombre', 'value' => 'isset($data->nombre)?$data->nombre:""', 'filter' => false), array('name' => 'estadistica', 'value' => 'isset($data->estadistica)?$data->estadistica:""', 'filter' => false), array('name' => 'sangre', 'value' => '$data->sangre==1?"Si":"No"', 'htmlOptions' => array('style' => 'text-align:center;')), array('name' => 'asitioweb', 'value' => '$data->asitioweb==1?"Si":"No"', 'htmlOptions' => array('style' => 'text-align:center;')), array('name' => 'idpractipo', 'value' => 'isset($data->idpractipo0->nombre)?$data->idpractipo0->nombre:""', 'filter' => CHtml::listData(Practipo::model()->findAll(array('order' => 'nombre')), 'idpractipo', 'nombre')), array('name' => 'idnomenclador', 'value' => 'isset($data->idnomenclador0->nombre)?$data->idnomenclador0->nombre:""', 'filter' => CHtml::listData(Nomenclador::model()->findAll(array('order' => 'nombre')), 'idnomenclador', 'nombre'))); }
public function loadModel($id) { $model = Nomenclador::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, Yii::t('app', 'The requested page does not exist.')); } return $model; }