public function actionBuscaVehiculos($grupo, $id_persona)
 {
     // recupera los vehiculos utilizados por la persona en ingresos/egresos
     $vehiculos = Accesos::getVehiculosPorPersona($id_persona, false, false);
     // Si la persona es nueva o nunca tuvo accesos devuelve una bandera para que no se muestre el modal
     if (count($vehiculos) == 0) {
         return 'notFound';
     }
     // siempre debe agregar al principio de la lista los ids de vehiculos "sin vehiculo" y "bicicleta"
     // recorre el array para chequear si corresponde insertar al pcio de la lista
     $estaIDsinVehiculo = false;
     $estaIDbicicleta = false;
     foreach ($vehiculos as $vehiculo) {
         if ($vehiculo['id_vehiculo'] == \Yii::$app->params['sinVehiculo.id']) {
             $estaIDsinVehiculo = true;
             break;
         }
     }
     foreach ($vehiculos as $vehiculo) {
         if ($vehiculo['id_vehiculo'] == \Yii::$app->params['bicicleta.id']) {
             $estaIDbicicleta = true;
             break;
         }
     }
     // inserta al principio de la lista
     if (!$estaIDbicicleta) {
         array_unshift($vehiculos, ['id_vehiculo' => \Yii::$app->params['bicicleta.id'], 'desc_vehiculo' => '']);
     }
     if (!$estaIDsinVehiculo) {
         array_unshift($vehiculos, ['id_vehiculo' => \Yii::$app->params['sinVehiculo.id'], 'desc_vehiculo' => '']);
     }
     $aux = [];
     foreach ($vehiculos as $vehiculo) {
         $aux[] = ['id_vehiculo' => $vehiculo['id_vehiculo'], 'desc_vehiculo' => Vehiculos::formateaVehiculoSelect2($vehiculo['id_vehiculo'])];
     }
     // el parametro true se refiere a $ultimoVehiculo, es decir, que traiga el vehiculo del último ingreso de la persona
     // esto se hace para armar la seleccion
     $ultVehiculo = Accesos::getVehiculosPorPersona($id_persona, true, false);
     // ultVehiculo es un array de arrays [idVehiculo=>valor]
     $seleccion = [];
     foreach ($ultVehiculo as $v) {
         foreach ($v as $key => $valor) {
             $seleccion[] = $valor;
         }
     }
     if ($grupo == 'ingpersonas') {
         return $this->renderAjax('_ingvehiculos', ['vehiculos' => $aux, 'seleccion' => $seleccion]);
     } else {
         return $this->renderAjax('_egrvehiculos', ['vehiculos' => $aux, 'seleccion' => $seleccion]);
     }
 }
 public function actionVehiculoslist($q = null, $id = null)
 {
     \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
     $out = ['results' => ['id' => '', 'text' => '']];
     if (!is_null($q)) {
         $q = str_replace(' ', '%', $q);
         $sp = 'CALL vehiculos_busca(:query)';
         $command = Yii::$app->db->createCommand($sp);
         $q = trim($q);
         $command->bindParam(":query", $q);
         $data = $command->queryAll();
         // el command devuelve un array de array con forma id=>n,text=>''
         // se recorre todo el array, se detecta el key id y con su valor se busca el vehiculo
         // 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 = Vehiculos::formateaVehiculoSelect2($valor);
                     $aux[] = ['id' => $valor, 'text' => $t];
                 }
             }
         }
         asort($aux);
         $out['results'] = array_values($aux);
     } elseif ($id > 0) {
         $out['results'] = ['id' => $id, 'text' => Vehiculos::formateaVehiculoSelect2($id)];
     }
     return $out;
 }