'summaryText'=>false, 'columns' => array( array( 'name' => 'idcantunidad', 'value' => 'isset($data->idcantunidad)?$data->idcantunidad:""', 'filter' => false, ), array( 'name' => 'cantidad', 'value' => 'isset($data->cantidad)?$data->cantidad:""', 'filter' => false, ), array( 'name' => 'idpractica', 'value' => 'isset($data->idpractica0->codigo)?$data->idpractica0->codigo:""', 'filter' => CHtml::listData(Practica::model()->findAll(array('order'=>'codigo')),'idpractica','codigo'), ), array( 'name' => 'idunidad', 'value' => 'isset($data->idunidad0->nombre)?$data->idunidad0->nombre:""', 'filter' => CHtml::listData(Unidad::model()->findAll(array('order'=>'nombre')),'idunidad','nombre'), ), array( 'class' => 'CButtonColumn', 'viewButtonImageUrl' => Yii::app()->baseUrl . '/css/gridviewstyle/images/' . 'gr-view.png', 'updateButtonImageUrl' => Yii::app()->baseUrl . '/css/gridviewstyle/images/' . 'gr-update.png', 'deleteButtonImageUrl' => Yii::app()->baseUrl . '/css/gridviewstyle/images/' . 'gr-delete.png', 'header' => Yii::t('app', 'Actions'), ), ), ));
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; }
<div class="wide form"> <?php $form = $this->beginWidget('CActiveForm', array( 'action' => Yii::app()->createUrl($this->route), 'method' => 'get', )); ?> <div class="row"> <?php echo $form->label($model, 'idnomencladorplan'); ?> <?php echo $form->textFieldControlGroup($model,'idnomencladorplan'); ?> </div> <div class="row"> <?php echo $form->label($model, 'idosplan'); ?> <?php echo $form->dropDownListControlGroup($model, 'idosplan0', CHtml::listData(Osplan::model()->findAll(array('order'=>'codplan')),'idosplan', 'codplan')); ?> </div> <div class="row"> <?php echo $form->label($model, 'idpractica'); ?> <?php echo $form->dropDownListControlGroup($model, 'idpractica0', CHtml::listData(Practica::model()->findAll(array('order'=>'codigo')),'idpractica', 'codigo')); ?> </div> <div class="row buttons"> <?php echo CHtml::submitButton(Yii::t('app', 'Search')); ?> </div> <?php $this->endWidget(); ?> </div><!-- search-form -->
<?php if ($model->mostrarCampo('matriculamedico')) echo $form->textFieldControlGroup($model, 'matriculamedico', array('size' => 30, 'maxlength' => 30)); ?> <?php if ($model->mostrarCampo('fechaemision')) { echo $form->dateFieldControlGroup($model, 'fechaemision'); } // Sección de practicas echo TbHtml::labelTb('Prácticas', array('color' => TbHtml::LABEL_COLOR_WARNING, 'style' => 'margin-bottom:20px;font-size:21px;padding:12px;')); $data = CHtml::listData(Practica::model()->findAll(array('order' => 'nombre')), 'idpractica', 'nombrecomp'); // Cargo las practicas en pantalla $i = 0; $filas = ceil(Carga::MAX_PRACTICAS_BOLETA / 5); echo "<div class='control-group' style='float:right;margin-right:186px;margin-top:6px;' >"; $this->widget('yiiwheels.widgets.select2.WhSelect2', array( 'asDropDownList' =>true, 'data' => $data, 'name'=>'cargapractica', 'htmlOptions'=> array( 'style' => 'width:300px;', 'prompt' => '', 'allowClear'=>true,
public function actionUpdate($id) { $model = $this->loadModel($id); $modelDomicilio = new Domicilio(); $modellocalidad = new Localidad(); // Traigo los parámetros de la carga según el id del plan $models_parametros_carga = Parametrocarga::model()->getParametros($id); $model_campos_carga = new Carga(); // campos que son para carga de archivos de modalidad $modalidades = array("modalidadapertura", "modalidadcarga", "modalidadfacturacion", "modalidadoperativa"); //modelo nomenclador plan $modelnomenplan = new Nomencladorplan(); //asignar idosplan para cargar el nomenclador del plan $modelnomenplan->idosplan = $model->idosplan; if (isset($_POST['Osplan'])) { $model->setAttributes($_POST['Osplan']); if ($_POST['Osplan']['iddomicilio'] == '0') { $model->iddomicilio = null; } try { $transac = Yii::app()->db->beginTransaction(); if (strlen($_POST['Domicilio']['calle']) != 0) { $modelDomicilio->setAttributes($_POST['Domicilio']); $modelDomicilio->idlocalidad = $_POST['Localidad']['idlocalidad']; $modelDomicilio->iddomiciliotipo = Domiciliotipo::PARTICULAR; if ($modelDomicilio->save()) { $model->iddomicilio = $modelDomicilio->iddomicilio; } else { throw new Exception("Hubo un error al grabar el domicilio de entrega"); } } // archivos de modalidad subidos // si se envia desde el formulario, se asigna y // se graba. El nombre del archivo esta definido en el modelo osplan->archivomodalidadd() foreach ($modalidades as $modalidad) { if (CUploadedFile::getInstance($model, $modalidad) !== null) { $model->{$modalidad} = CUploadedFile::getInstance($model, $modalidad); $model->{$modalidad}->saveAs($model->archivomodalidad($modalidad)); } } // si se selecciona el checkbox de borrar archivo de modalidad foreach ($modalidades as $modalidad) { if (isset($_POST['borrar' . $modalidad])) { $model->{$modalidad} = NULL; @unlink($model->archivomodalidad($modalidad)); } } if ($model->save()) { if (isset($_POST['Parametrocarga'])) { $hayerror = false; foreach ($_POST['Parametrocarga'] as $i => $item) { $model_parametro_carga = $models_parametros_carga[$i]; // Asigno el modelo $model_parametro_carga->setAttributes($_POST['Parametrocarga'][$i]); // 04/05/2015 JMG Almaceno todos los campos, incluidos los no editables pero estos // pueden ser obligatorios o no dependiendo de la metadata de la bd if ($model_campos_carga->getMetaData()->columns[$model_parametro_carga->campo]->comment == "NOEDITABLE") { if ($model_campos_carga->getMetaData()->columns[$model_parametro_carga->campo]->allowNull) { $model_parametro_carga->idopcioncampocarga = Opcioncampocarga::OPCIONAL; } else { $model_parametro_carga->idopcioncampocarga = Opcioncampocarga::OBLIGATORIO; } } $model_parametro_carga->idosplan = $model->idosplan; if (!$model_parametro_carga->save()) { $hayerror = true; } } if ($hayerror) { throw new Exception("Error al grabar parametros"); } } // NOMENCLADOR // borrar nomenclador if (isset($_POST['borrarnomenclador'])) { try { Nomencladorplan::model()->deleteAllByAttributes(array('idosplan' => $id)); } catch (Exception $e) { throw new CHttpException(500, $e->getMessage()); } // grabar todo y redirigir a manage $transac->commit(); $this->setFlash('notice', array('title' => 'Mensaje', 'content' => 'Se actualizó correctamente.')); $this->redirect(array('manage')); } // borrar practicas seleccionadas if (isset($_POST['id-borrar'])) { $ids = $_POST['id-borrar']; // arreglo con las idpracticas a borrar try { Nomencladorplan::model()->deleteAllByAttributes(array('idnomencladorplan' => $ids)); } catch (Exception $e) { throw new CHttpException(500, $e->getMessage()); } // grabar todo y redirigir a manage $transac->commit(); $this->setFlash('notice', array('title' => 'Mensaje', 'content' => 'Se actualizó correctamente.')); $this->redirect(array('manage')); } // else { // ARMADO de Nomenclador: grabar en tabla nomencladorplan $marcatodas = false; $rango = false; // si se seleccionó un momenclador, la variable idnomenclador es true // y se analizan las variables de resto del formulario // para armar el nomenclador. // si no se manda idnomenclador, es porque se actualizan datos del osplan // pero no se arma nomenclador if ($_POST['idnomenclador'] == true) { $idnomenclador = $_POST['idnomenclador']; // filtro de tipo de practicas $idpractipo = isset($_POST['idpractipo']) ? $_POST['idpractipo'] : false; // controlar si seleccionaron rangos if (isset($_POST['rangodesde']) && isset($_POST['rangohasta'])) { $rango = true; $rangodesde = $_POST['rangodesde']; $rangohasta = $_POST['rangohasta']; // // controlar que no este vacio algun rango if (in_array('', $rangodesde)) { $rango = false; } if (in_array('', $rangohasta)) { $rango = false; } //error de rango if (!$rango) { throw new Exception("Error en el rango de prácticas"); } } // todas las practicas seleccionadas // si se marca, se anula el rango. // y se seleccionan todas. if (isset($_POST['marcatodas'])) { $marcatodas = true; $rango = false; } // en caso de seleccionar todas if ($marcatodas) { // $idpracticas es un arreglo de idpracticas encontradas $idpracticas = Practica::model()->search3($idnomenclador, $idpractipo); foreach ($idpracticas as $key => $value) { $modelnomencladorplan = new nomencladorplan(); $modelnomencladorplan->idosplan = $model->idosplan; $modelnomencladorplan->idpractica = $value; // grabar registro en tabla nomencladorplan $modelnomencladorplan->save(); } } // en caso de seleccionar por rango if ($rango) { // $idpracticas es un arreglo de idpracticas encontradas foreach ($rangodesde as $key => $valordesde) { $idpracticas = Practica::model()->search4($valordesde, $rangohasta[$key], $idpractipo); if (!$idpracticas) { throw new Exception("Error en el rango de prácticas"); } foreach ($idpracticas as $key => $value) { $modelnomencladorplan = new nomencladorplan(); $modelnomencladorplan->idosplan = $model->idosplan; $modelnomencladorplan->idpractica = $value; // grabar registro en tabla nomencladorplan $modelnomencladorplan->save(); } } } } // grabar todo y redirigir a manage $transac->commit(); $this->setFlash('notice', array('title' => 'Mensaje', 'content' => 'Se actualizó correctamente.')); $this->redirect(array('manage')); } } catch (Exception $e) { $transac->rollback(); $model->addError('', $e->getMessage()); } } $this->render('update', array('model' => $model, 'modelDomicilio' => $modelDomicilio, 'modellocalidad' => $modellocalidad, 'models_parametros_carga' => $models_parametros_carga, 'model_campos_carga' => $model_campos_carga, 'modelnomenplan' => $modelnomenplan)); }
<?php //titulo label echo "<div class='bordeada' style='margin-top:0px;' >"; echo "<div style='margin:5px;' >"; echo TbHtml::labelTb('Prácticas', array('color' => TbHtml::LABEL_COLOR_WARNING, 'style' => 'margin-bottom:0px;font-size:16px;padding:9px;')); if ($accion=='carga'){ $data = CHtml::listData(Practica::model()->findAll(array('order' => 'nombre')), 'codigocarga', 'nombrecomp'); // listado oculto de los codigos de carga $codigoscarga = CHtml::listData(Practica::model()->findAll(array('order' => 'codigocarga')), 'idpractica', 'codigocarga'); echo TbHtml::dropDownList('codigoscarga', 'codigoscarga', $codigoscarga, array('style' => 'display:none;')); // campo de carga de codigos de practica (codigocarga) echo TbHtml::labelTb('Código', array('style' => 'margin-left:115px;padding:7px;')); echo TbHtml::textField('codpractica', '', array('span' => 1)); // listado de practicas con select 2 echo TbHtml::labelTb('Nombre', array('style' => 'margin-left:106px;padding:7px;')); $this->widget('yiiwheels.widgets.select2.WhSelect2', array( 'asDropDownList' => true, 'data' => $data, 'name' => 'cargapractica', 'htmlOptions' =>
public function grabartransaccion($nrotransac, $header, $codigocarga, $model) { $tran = Yii::app()->db->beginTransaction(); // cargar los campos en el modelo de carga $model->distrito = 1; // Por ahora distrito IX $model->idcargatipo = 1; // Facturación $model->periodofacturacion = "03/2015"; // Cable $model->idpacientetipo = 1; // ambulatorio // ver que fecha hay que grabar, esto es para probar // la fecha del header tiene formato mysql, // hay que pasarlo a formato argentino porque el // modelo carga lo valida de esta forma dd/mm/yyyy $model->fechaprestacion = $this->fecha_arg($header->prescripcion); $model->nroafiliado = $header->afiliado; try { // grabar carga if ($model->save()) { // grabar practicas foreach ($codigocarga as $codigo) { if ($codigo > 0) { $model_practica = new Practicacarga(); // buscar el registro practica segun el codigo if ($registropractica = Practica::model()->findByAttributes(array('codigo' => $codigo))) { $idpractica = $registropractica->idpractica; } else { throw new Exception("Prácticas inexistentes. Transacción no capturada"); } $model_practica->idpractica = $idpractica; $model_practica->idcarga = $model->idcarga; $model_practica->precio = 0; // Grabo 0 por ahora if (!$model_practica->save()) { throw new Exception(CHtml::errorSummary($model_practica)); } } } $tran->commit(); } else { throw new Exception(CHtml::errorSummary($model)); } } catch (Exception $e) { $tran->rollback(); throw new Exception($e->getMessage()); } }
public function loadModel($id) { $model = Practica::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, Yii::t('app', 'The requested page does not exist.')); } return $model; }