コード例 #1
0
 /**
  * Update the specified resource in storage.
  *
  * @param  App\Http\Requests\cities\calles\UpdateCalleRequest $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(UpdateTorneoRequest $request, $id)
 {
     $result["result"] = "Error";
     $result["response"] = "Error: ";
     $result = DB::transaction(function () use($request, $id, $result) {
         $torneo = Torneo::findOrFail($id);
         $torneo->fill($request->all());
         //$torneo->save();
         $partidos = Partido::with('fecha')->whereHas('fecha', function ($q) use($id) {
             $q->where('torneo_id', $id);
         })->whereIn('estado_id', [3, 4, 5, 6])->get();
         if ($partidos->count()) {
             return $result["result"] = "ERROR: Fechas empezadas";
         }
         /*
                         $fecha = TorneoFecha::where("torneo_id",$id)->forceDelete();
                         $fases  = TorneoFase::where("torneo_id",$id)->get();
                         foreach ($fases as $fase) {
                             $grupos = TorneoGrupo::where("fase_id",$fase->id)->get();
                             foreach ($grupos as $grupo) {
                                 $torneo_grupos = TorneoGrupoClub::where("grupo_id",$fase->id)->forceDelete();
                             }
                             $grupos->forceDelete();
                         }
                         $fases->forceDelete();*/
         $torneos_clubes_ant = TorneoClub::whereHas('torneo_grupos', function ($q = '') {
             $q->whereHas('torneo_grupo', function ($subq) {
                 $subq->where("fase_id", 1);
             });
         })->where("torneo_id", $id)->get();
         $cant_grupos = $request->get("cant_grupos");
         $equipos_nuevos = [];
         for ($i = 1; $i <= $cant_grupos; $i++) {
             $equipos_nuevos = array_merge($equipos_nuevos, $request->get("grupo_" . $i));
         }
         $torneos_clubes_diff = $torneos_clubes_ant->filter(function ($item) use(&$equipos_nuevos) {
             $esta = in_array($item->club_id, $equipos_nuevos);
             if ($esta) {
                 $pos = array_search($item->club_id, $equipos_nuevos);
                 unset($equipos_nuevos[$pos]);
             }
             return !$esta;
         });
         if (sizeof($torneos_clubes_diff)) {
             $equipos_grupo = [];
             for ($i = 1; $i <= $cant_grupos; $i++) {
                 $equipos_grupo = $request->get("grupo_" . $i);
                 $grupos_clubes = TorneoGrupoClub::whereIn("torneo_club_id", $torneos_clubes_diff->pluck('id'))->where("grupo_id", $i)->get();
                 if ($grupos_clubes->count()) {
                     foreach ($grupos_clubes as $grupo_club) {
                         if (sizeof($equipos_grupo)) {
                             $club_cambio = sizeof($equipos_grupo) - 1;
                             //dd("Sale: ".$grupo_club->torneo_club->club_id."  - Entra: ".$equipos_grupo[$club_cambio]);
                             /*$partido_plantel = PartidoPlantel::with("club")->where("club",function ($q) use ($grupo_club){
                                                                     
                                                                     $q->where("club_id",$grupo_club->id);
                             
                                                                 })->get();*/
                             $partido_plantel = PartidoPlantel::with("club")->select('partidos_planteles.*')->join('partidos_clubes', 'partidos_clubes.id', '=', 'partidos_planteles.club_id')->join('torneos_grupos_clubes', 'torneos_grupos_clubes.id', '=', 'partidos_clubes.club_id')->where('torneos_grupos_clubes.id', $grupo_club->id)->get();
                             /*->where("club",function ($q) use ($grupo_club){
                                                                     
                                                                     $q->where("club_id",$grupo_club->id);
                             
                                                                 })->get();*/
                             if ($partido_plantel->count()) {
                                 foreach ($partido_plantel as $pp) {
                                     $pp->forceDelete();
                                 }
                             }
                             $torneo_plantel = TorneoPlantel::where("torneo_club_id", $grupo_club->club_id)->get();
                             if ($torneo_plantel->count()) {
                                 foreach ($torneo_plantel as $tp) {
                                     // Si No esta en otro Torneo en la misma Temporada, lo borro de temporada plantel
                                     $otro_torneo_plantel = TorneoPlantel::where("jugador_id", $tp->jugador_id)->get();
                                     if (!$otro_torneo_plantel->count()) {
                                         $temporada_plantel = TemporadaPlantel::where("id", $tp->jugador_id)->first()->forceDelete();
                                     }
                                     $tp->forceDelete();
                                 }
                             }
                             $grupo_club->torneo_club->club_id = $equipos_grupo[$club_cambio];
                             $grupo_club->torneo_club->save();
                             unset($equipos_grupo[$club_cambio]);
                         }
                     }
                 }
             }
         } else {
             $result["response"] = "No se realizarion cambios";
         }
         $result["result"] = "Ok";
         $result["response"] = "";
         return $result;
     });
     if ($result["result"] == "Ok") {
         $result["response_data"] = ["redirect" => route('seasons.torneos.show', $id)];
     }
     return response()->json($result);
     //return \Redirect::route('seasons.torneos.show',$id);
 }
コード例 #2
0
ファイル: Socio.php プロジェクト: emitategh/aabcehmt
 /**
  * Pregunta por la participacion del socio en un partido determinado.
  *
  * @var partido_id el id del partido en cuestion
  * @return PartidoPlantel la instancia del jugador en el partido si es que existe, caso contrario null.
  */
 public function participoEnPartido($partido_id)
 {
     $participacion = PartidoPlantel::with('club')->with('jugador.jugador')->select('partidos_planteles.*')->join('torneos_planteles', 'torneos_planteles.id', '=', 'partidos_planteles.jugador_id')->join('temporadas_planteles', 'temporadas_planteles.id', '=', 'torneos_planteles.jugador_id')->join('socios', 'socios.id', '=', 'temporadas_planteles.jugador_id')->join('partidos_clubes', 'partidos_clubes.id', '=', 'partidos_planteles.club_id')->where('socios.id', $this->id)->where('partidos_clubes.partido_id', $partido_id)->first();
     return $participacion;
 }
コード例 #3
0
ファイル: TorneoFecha.php プロジェクト: emitategh/aabcehmt
 /**
  * Los suspendidos de la fecha son 
  *
  * @return Collection(PartidoPlantel)
  */
 public function getSuspendidosAttribute()
 {
     $susp_tarjetas = PartidoPlantel::select('partidos_planteles.*')->join('partidos_tarjetas', 'partidos_tarjetas.jugador_id', '=', 'partidos_planteles.id')->join('partidos_eventos', 'partidos_eventos.id', '=', 'partidos_tarjetas.evento_id')->join('suspensiones', 'suspensiones.evento_id', '=', 'partidos_eventos.id')->join('partidos', 'partidos.id', '=', 'partidos_eventos.partido_id')->join('torneos_fechas', 'torneos_fechas.id', '=', 'partidos.fecha_id')->where('torneos_fechas.id', $this->id)->get();
     $susp_malingreso = PartidoPlantel::select('partidos_planteles.*')->join('partidos_mal_ingresados', 'partidos_mal_ingresados.jugador_id', '=', 'partidos_planteles.id')->join('partidos_eventos', 'partidos_eventos.id', '=', 'partidos_mal_ingresados.evento_id')->join('suspensiones', 'suspensiones.evento_id', '=', 'partidos_eventos.id')->join('partidos', 'partidos.id', '=', 'partidos_eventos.partido_id')->join('torneos_fechas', 'torneos_fechas.id', '=', 'partidos.fecha_id')->where('torneos_fechas.id', $this->id)->get();
     $suspendidos = $susp_tarjetas->merge($susp_malingreso);
     $suspendidos = $suspendidos->sort(function ($jugador_a, $jugador_b) {
         $resultado = strcmp($jugador_a->inverse_full_name, $jugador_b->inverse_full_name);
         return $resultado;
     });
     /*
     $susp_gol = PartidoPlantel::select('partidos_planteles.*')
             ->join('partidos_goles','partidos_goles.jugador_id','=','partidos_planteles.id')
             ->join('partidos_eventos','partidos_eventos.id','=','partidos_goles.evento_id')
             ->join('suspensiones','suspensiones.evento_id','=','partidos_eventos.id')
             ->join('partidos','partidos.id','=','partidos_eventos.partido_id')
             ->join('torneos_fechas','torneos_fechas.id','=','partidos.fecha_id')
         ->where('torneos_fechas.id',$this->id)
         ->get();
     $suspensiones = $susp_gol->union($susp_gol);
         
     $susp_cambioentra = PartidoPlantel::select('partidos_planteles.*')
             ->join('partidos_cambios','partidos_cambios.entra_id','=','partidos_planteles.id')
             ->join('partidos_eventos','partidos_eventos.id','=','partidos_cambios.evento_id')
             ->join('suspensiones','suspensiones.evento_id','=','partidos_eventos.id')
             ->join('partidos','partidos.id','=','partidos_eventos.partido_id')
             ->join('torneos_fechas','torneos_fechas.id','=','partidos.fecha_id')
         ->where('torneos_fechas.id',$this->id)
         ->get();
     $suspensiones = $susp_gol->union($susp_cambioentra);
         
     $susp_cambiosale = PartidoPlantel::select('partidos_planteles.*')
             ->join('partidos_cambios','partidos_cambios.sale_id','=','partidos_planteles.id')
             ->join('partidos_eventos','partidos_eventos.id','=','partidos_cambios.evento_id')
             ->join('suspensiones','suspensiones.evento_id','=','partidos_eventos.id')
             ->join('partidos','partidos.id','=','partidos_eventos.partido_id')
             ->join('torneos_fechas','torneos_fechas.id','=','partidos.fecha_id')
         ->where('torneos_fechas.id',$this->id)
         ->get();
     $suspensiones = $susp_gol->union($susp_cambiosale);
     */
     /*
     $suspendidos = $this->jugadores->filter(function ($item) {
         return ( $item->fue_suspendido );
     })->sort(function ($jugador_a, $jugador_b) {
     
         $resultado = strcmp($jugador_a->inverse_full_name,$jugador_b->inverse_full_name);
     
         return $resultado;
     });
     */
     return $suspendidos;
 }
コード例 #4
0
 /**
  * Dado el id de jugador en un partido, y el partido en si, 
  * confirma si este id existe en PartidoPlantel y si es un jugador de ese partido.
  *
  * @param Partido $partido :: partido en cuestion.
  * @param Int $partido_plantel_id :: id del jugador(PartidoPlantel.id)
  * @param String $mensaje_error :: VALOR POR REFERENCIA que registra cualquier error que se produzca.
  *
  * @return PartidoPlantel :: de existir se devuelve el jugador del partido, caso contrario nulo.
  */
 protected function validarPartidoPlantel(Partido $partido, $partido_plantel_id, &$mensaje_error)
 {
     $partido_plantel = PartidoPlantel::find($partido_plantel_id);
     if (is_null($partido_plantel)) {
         $mensaje_error = 'Id incorrecto.';
     } else {
         if ($partido_plantel->club->partido_id != $partido->id) {
             $mensaje_error = 'La instancia del jugador ' . $partido_plantel->full_name . ' no pertenece al partido.';
         }
     }
     return $partido_plantel;
 }