Esempio n. 1
0
 public function search()
 {
     $query = strtoupper(Input::get("q"));
     //query
     $team = strtoupper(Input::get("t"));
     //team
     $exclude = Input::get("e");
     //id's A EXCLUIR DE LOS RESULTADOS
     $notInID[] = 0;
     $notInTR[] = 0;
     $club = TorneoClub::find($team)->club_id;
     if (!is_null($exclude)) {
         //armo el arreglo con los resultados a excluir de la visual.
         foreach ($exclude as $e) {
             $notInID[] = $e;
         }
     }
     if ((int) $query > 0) {
         // BUSQUEDA POR CARNET O DOCUMENTO
         if ((int) $query < 999999) {
             // BUSQUEDA POR CARNET
             $trayectoria = Trayectoria::with('socio')->with('club')->select('trayectorias.*')->join('socios', 'socios.id', '=', 'trayectorias.socio_id')->join('clubes', 'clubes.id', '=', 'trayectorias.club_id')->where('socios.carnet', $query)->whereNull('trayectorias.baja')->get();
             //if (count($trayectoria)==0) {
             if ($trayectoria->isEmpty() or $trayectoria->first()->club_id == $club) {
                 $results = Socio::with('persona.tipo_documento')->select('socios.*')->join('personas', 'personas.id', '=', 'socios.persona_id')->join('trayectorias', 'trayectorias.socio_id', '=', 'socios.id')->where('socios.carnet', $query)->whereNotIn('socios.id', $notInID)->whereNull('trayectorias.baja')->limit('10')->get();
             } else {
                 return response()->json(['result' => 'Error', 'response' => ['title' => 'Jugador asociado', 'text' => 'El jugador con carnet <strong>' . $query . '</strong> ya esta asociado a <strong>' . $trayectoria[0]->club->nombre . '</strong>']]);
             }
         } else {
             //BUSQUEDA POR DOCUMENTO
             $trayectoria = Trayectoria::with('socio.persona')->with('club')->whereNull('trayectorias.baja')->select('*')->join('socios', 'socios.id', '=', 'trayectorias.socio_id')->join('personas', 'personas.id', '=', 'socios.persona_id')->join('clubes', 'clubes.id', '=', 'trayectorias.club_id')->where("personas.documento", 'LIKE', '%' . $query . '%')->get();
             //if (count($trayectoria)==0) {
             if ($trayectoria->isEmpty() or $trayectoria->first()->club_id == $club) {
                 $results = Socio::with("persona.tipo_documento.pais")->select('socios.*')->join('personas', 'personas.id', '=', 'socios.persona_id')->join('trayectorias', 'trayectorias.socio_id', '=', 'socios.id')->where("documento", 'LIKE', '%' . $query . '%')->whereNotIn('socios.id', $notInID)->whereNull('trayectorias.baja')->limit('10')->get();
             } else {
                 return response()->json(['result' => 'Error', 'response' => ['title' => 'Jugador asociado', 'text' => 'El jugador con documento <strong>' . $query . '</strong> ya esta asociado a <strong>' . $trayectoria[0]->nombre . '</strong>']]);
             }
         }
     } else {
         //BUSQUEDA POR NOMBRE Y APELLIDO
         /*        
                     $trayectoria = Trayectoria::with('socio')
                         ->with('club')
                         
                         ->select('trayectorias.*')
                             ->join('socios','socios.id','=','trayectorias.socio_id')
                             ->join('clubes','clubes.id','=','trayectorias.club_id')
                             ->join('personas', 'personas.id', '=', 'socios.persona_id')
                         ->where('club.id','!=',$team)
                         ->whereNull('trayectorias.baja')
                         ->where(DB::raw('CONCAT(personas.nombre, " ", personas.apellido)'),'LIKE','%'.$query.'%')
         
                         ->orWhere(DB::raw('CONCAT(personas.apellido, " ", personas.nombre)'),'LIKE','%'.$query.'%')
                         ->get();
         */
         $results = Socio::with("persona.tipo_documento.pais")->select('socios.*')->join('personas', 'personas.id', '=', 'socios.persona_id')->join('trayectorias', 'trayectorias.socio_id', '=', 'socios.id')->where(DB::raw('CONCAT(personas.nombre, " ", personas.apellido)'), 'LIKE', '%' . $query . '%')->whereNotIn('socios.id', $notInID)->orWhere(DB::raw('CONCAT(personas.apellido, " ", personas.nombre)'), 'LIKE', '%' . $query . '%')->whereNotIn('socios.id', $notInID)->whereNull('trayectorias.baja')->limit('10')->get();
     }
     //if (count($results)) {
     foreach ($results as $socio) {
         $socio->edad_limite = $socio->edad_limite;
         $socio->persona->edad = $socio->persona->edad;
         //   $socio->persona->inverse_full_name  = $socio->persona->inverse_full_name;
         $socio->route_show = route('people.socios.show', $socio->id);
     }
     //}
     return response()->json(['result' => 'Ok', 'response' => $results]);
 }