/** * 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); }
/** * 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; }