public function actionBuscaPersonas($grupo, $id_vehiculo) { // recupera las personas que utilizaron el vehiculo alguna vez, // el parametro false se refiere a $ultimasPersonas, es decir, que traiga todas las personas $personas = Accesos::getPersonasPorVehiculo($id_vehiculo, false); // Si el vehiculo es nuevo o nunca tuvo accesos devuelve una bandera para que no se muestre el modal if (count($personas) == 0) { return 'notFound'; } $aux = []; foreach ($personas as $persona) { $aux[] = ['id_persona' => $persona['id_persona'], 'desc_persona' => Personas::formateaPersonaSelect2($persona['id_persona'], false)]; } // el parametro true se refiere a $ultimasPersonas, es decir, que traiga las personas del último ingreso del vehic. // esto se hace para armar la seleccion $ultPersonas = Accesos::getPersonasPorVehiculo($id_vehiculo, true); // ultPersonas es un array de arrays [idPersona=>valor] $seleccion = []; foreach ($ultPersonas as $p) { foreach ($p as $key => $valor) { $seleccion[] = $valor; } } if ($grupo == 'ingvehiculos') { return $this->renderAjax('_ingpersonas', ['personas' => $aux, 'seleccion' => $seleccion]); } else { return $this->renderAjax('_egrpersonas', ['personas' => $aux, 'seleccion' => $seleccion]); } }
public function actionApellidoslist($q = null, $id = null) { \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; $out = ['results' => ['id' => '', 'text' => '']]; if (!is_null($q)) { if (is_numeric($q)) { $sp = 'CALL personas_busca_nrosdoc(:query)'; } else { $q = str_replace(' ', '%', $q); $sp = 'CALL personas_busca_nombres(:query)'; } $command = Yii::$app->db->createCommand($sp); $q = trim($q); $command->bindParam(":query", $q); $data = $command->queryAll(); // el command devuelve un array de arrays con forma id=>n,text=>'' // se recorre todo el array, se detecta el key id y con su valor se busca la persona // y se agrega a un nuevo array para despues ordenarlo por text y devolverlo $aux = ['id' => '', 'text' => '']; foreach ($data as $cadauno) { foreach ($cadauno as $key => $valor) { if ($key == 'id') { $t = Personas::formateaPersonaSelect2($valor, is_numeric($q)); $aux[] = ['id' => $valor, 'text' => $t]; } } } asort($aux); $out['results'] = array_values($aux); } elseif ($id > 0) { $out['results'] = ['id' => $id, 'text' => Personas::formateaPersonaSelect2($id, false)]; } return $out; }
$porID = Yii::$app->urlManager->createUrl(['accesos/busca-por-id']); $personasAddon = ['prepend' => ['content' => '<span class="glyphicon glyphicon-user" title="Buscar Personas"></span>'], 'append' => ['content' => Html::a('<span class="glyphicon glyphicon-barcode btn btn-primary"></span>', $porID, ['title' => Yii::t('app', 'Ingresa por ID'), 'tabindex' => -1, 'onclick' => '$.ajax({ type :"POST", cache : false, url : $(this).attr("href"), success : function(response) { console.log(response); $("#divporid").html(response); $("#modalporid").modal("show"); $("#idPersonaPorId").focus(); } }); return false;']), 'asButton' => true]]; echo $form->field($model, 'idPersonaDesde')->label('Persona a reemplazar')->widget(Select2::classname(), ['initValueText' => $personaDescDesde, 'options' => ['id' => 'selectorPersonas', 'placeholder' => 'Buscar por documento o nombre (Indique la persona a reemplazar)', 'title' => 'Buscar personas'], 'addon' => $personasAddon, 'pluginOptions' => ['allowClear' => true, 'minimumInputLength' => 3, 'ajax' => ['url' => \yii\helpers\Url::to(['personas/apellidoslist']), 'dataType' => 'json', 'data' => new JsExpression('function(params) { return {q:params.term}; }')], 'escapeMarkup' => new JsExpression('function (markup) { return markup; }'), 'templateResult' => new JsExpression('function(idpersona) { return idpersona.text; }'), 'templateSelection' => new JsExpression('function (idpersona) { return idpersona.text; }')]]); // -------------------Selector de personas c/botón de alta ---------------------------------------- $personaDescHasta = empty($model->idPersonaHasta) ? '' : Personas::formateaPersonaSelect2($model->idPersonaHasta, false); $personasUrl = Yii::$app->urlManager->createUrl(['personas/create-ajax', 'selector' => 'selectorPersonasH']); $porID = Yii::$app->urlManager->createUrl(['accesos/busca-por-id', 'selector' => 'selectorPersonasH']); $personasAddon = ['prepend' => ['content' => '<span class="glyphicon glyphicon-user" title="Buscar Personas"></span>'], 'append' => ['content' => Html::a('<span class="glyphicon glyphicon-plus-sign btn btn-primary"></span>', $personasUrl, ['title' => Yii::t('app', 'Nueva Persona'), 'tabindex' => -1, 'onclick' => '$.ajax({ type :"POST", cache : false, url : $(this).attr("href"), success : function(response) { $("#divpersonanueva").html(response); $("#modalpersonanueva").modal("show"); $("#personas-apellido").focus(); } }); return false;']) . Html::a('<span class="glyphicon glyphicon-barcode btn btn-primary"></span>', $porID, ['title' => Yii::t('app', 'Ingresa por ID'), 'tabindex' => -1, 'onclick' => '$.ajax({ type :"POST", cache : false,
<div class="autorizantes-form"> <?php $form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'id_uf')->textInput(); ?> <?php // -------------------Selector de personas c/botón de alta ---------------------------------------- $personaDesc = empty($model->id_persona) ? '' : Personas::formateaPersonaSelect2($model->id_persona, false); //$personaDesc=''; $personasUrl = Yii::$app->urlManager->createUrl(['personas/create-ajax']); $porID = Yii::$app->urlManager->createUrl(['accesos/busca-por-id']); $personasAddon = ['prepend' => ['content' => '<span class="glyphicon glyphicon-user" title="Buscar Personas"></span>'], 'append' => ['content' => Html::a('<span class="glyphicon glyphicon-plus-sign btn btn-primary"></span>', $personasUrl, ['title' => Yii::t('app', 'Nueva Persona'), 'tabindex' => -1, 'onclick' => '$.ajax({ type :"POST", cache : false, url : $(this).attr("href"), success : function(response) { $("#divpersonanueva").html(response); $("#modalpersonanueva").modal("show"); $("#personas-apellido").focus(); } }); return false;']) . Html::a('<span class="glyphicon glyphicon-barcode btn btn-primary"></span>', $porID, ['title' => Yii::t('app', 'Ingresa por ID'), 'tabindex' => -1, 'onclick' => '$.ajax({ type :"POST",