/** * 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); }
public function save() { $result = DB::transaction(function () { $result = array("result" => '', 'response' => ''); $result["result"] = 'nothing2do'; //respuesta para el resultado por defecto si no debo realizar ningun cambio $equipo = Input::get("e"); //arreglo de id de socios $torneo_id = Input::get("torneo_id"); //id del torneo $torneo_club_id = Input::get("t"); //torneo_club_id $torneo_club = TorneoClub::where('id', $torneo_club_id)->first(); $tr = new Trayectoria(); $jugadores_actuales = []; $plantel = []; $i = 0; // ================== $director_tecnico = TorneoTecnico::where('torneo_club_id', $torneo_club->id)->get(); foreach ($director_tecnico as $tecnico) { $tecnico->forceDelete(); } $dt = Input::get("dt"); $socio_dt = Socio::where('id', $dt)->first(); if ($socio_dt) { $director_tecnico = TorneoTecnico::firstOrNew(['tecnico_id' => $dt, 'torneo_club_id' => $torneo_club->id]); $director_tecnico->save(); } // ================== //$trayectoria_club = $tr::where('club_id',$torneo_club->club_id)->whereNull('baja')->select('socio_id')->get(); $jugadores_club_categoria = TorneoPlantel::with('jugador.jugador')->select('torneos_planteles.*')->join('temporadas_planteles', 'torneos_planteles.jugador_id', '=', 'temporadas_planteles.id')->join('torneos_clubes', 'torneos_planteles.torneo_club_id', '=', 'torneos_clubes.id')->join('socios', 'socios.id', '=', 'temporadas_planteles.jugador_id')->where('torneos_planteles.torneo_club_id', $torneo_club_id)->get(); $habia_jugadores = count($jugadores_club_categoria); if ($habia_jugadores) { foreach ($jugadores_club_categoria as $p) { $jugadores_actuales[] = $p->jugador->jugador_id; } $i = array_intersect($jugadores_actuales, $equipo); //Interseccion de jugadores cargados y seleccionados $insertar = array_diff($equipo, $i); //SOCIOS a insertar en la tabla $remover = array_diff($jugadores_actuales, $i); //SOCIOS a remover de la tabla } else { $insertar = $equipo; } $torneo = Torneo::where("id", $torneo_id)->first(); if (isset($remover)) { foreach ($remover as $p) { //elimino los jugadores que fueron removidos de la interface. /* $result = $tr::where('socio_id', $p)->whereNull('baja')->first(); $result->forceDelete(); */ $jugador_temporada = TemporadaPlantel::where('temporada_id', $torneo->temporada_id)->where('jugador_id', $p)->first(); $jugador_torneo = TorneoPlantel::where('jugador_id', $jugador_temporada->id)->where('torneo_club_id', $torneo_club->id)->first(); if ($jugador_torneo) { $jugador_torneo->forceDelete(); } if ($jugador_temporada) { $jugador_temporada->forceDelete(); } //$result = DB::table('trayectorias')->where('socio_id', $p)->softDeletes(); } } if (count($insertar)) { foreach ($insertar as $p) { //creo el arreglo asociativo de los nuevos jugadores $plantel[] = array('alta' => date("Y-m-d"), 'alta_tipo' => 1, 'socio_id' => $p, 'club_id' => $torneo_club->club_id); $jugador_temporada = TemporadaPlantel::firstOrNew(['temporada_id' => $torneo->temporada_id, 'jugador_id' => $p]); $jugador_temporada->save(); $jugador_torneo = TorneoPlantel::firstOrNew(['jugador_id' => $jugador_temporada->id, 'torneo_club_id' => $torneo_club->id]); $jugador_torneo->save(); } } $result_ldbf = ($jugador_temporada and $jugador_torneo); // $result_trayectoria = (count($plantel)) ? DB::table('trayectorias')->insert($plantel) : true; //inserto los socios o si solo removi devuelvo verdadero if ($result_ldbf) { $result["result"] = "Ok"; $result["response"] = $result_ldbf; } else { $result["result"] = "Error"; if ($jugador_temporada) { $error = '***Error al agregar a la temporada***'; } if ($jugador_torneo) { $error = '***Error al agregar al torneo***'; } $result["response"] = $error; } $this->jugadores_compartidos($torneo_club, $torneo); return $result; }); return response()->json($result); }
/** * Update the specified resource in storage. * * @param App\Http\Requests\cities\calles\UpdateCalleRequest $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request) { $result["result"] = "Error"; $id = Input::get("id"); $suspension = Input::get("suspension"); if ($id != null) { $suspension_model = Suspension::findOrFail($id); $suspension_model->update($suspension); if ($suspension_model->estado_suspension == 4) { //if ($suspension_model->) } $suspension_model = Suspension::with('socio')->with('estado')->with('evento.tipo_evento')->with('tipo')->findOrFail($id); $temporada_id = $suspension["temporada_id"]; if ($suspension_model->tipo->id != 2 && $temporada_id != null) { $temporada_plantel = TemporadaPlantel::where("jugador_id", $suspension_model->socio->id)->where("temporada_id", $temporada_id)->first(); if ($temporada_plantel != null) { $suspension_model->temporada_plantel = $temporada_plantel; } } $suspension_model->tiempo_restante = $suspension_model->tiempo_restante; $result["result"] = "Ok"; $result["response"] = $suspension_model; } return $result; }
public function SeedPlantillas() { DB::transaction(function () { $socios = Socio::all(); $socios_cant = $socios->count(); $socios_temporada_cant = 0; $torneo = Torneo::with('temporada')->with('division.categoria.genero')->with('fases.grupos.clubes.torneo_club.club')->with('fechas.partidos.clubes.torneo_grupo_club.torneo_grupo.fase')->with('fechas.partidos.clubes.torneo_grupo_club.torneo_club.club')->with('clubes.jugadores')->with('clubes.club')->findOrFail(1); $cant_jugadores = 20; $torneo_clubes = $torneo->clubes; foreach ($torneo_clubes as $torneo_club) { for ($i = 0; $i < $cant_jugadores and $socios_temporada_cant < $socios_cant; $i++) { $encontre = 0; while (!$encontre) { $socio = $socios->random(); $encontre = !$socio->participoEnTorneo($torneo->id); } $trayectoria = new Trayectoria(); $trayectoria->socio_id = $socio->id; $trayectoria->club_id = $torneo_club->club->id; $trayectoria->save(); $temporada_plantel = new TemporadaPlantel(); $temporada_plantel->jugador_id = $socio->id; $temporada_plantel->temporada_id = $torneo_club->torneo->temporada->id; $temporada_plantel->save(); $torneo_plantel = new TorneoPlantel(); $torneo_plantel->jugador_id = $temporada_plantel->id; $torneo_plantel->torneo_club_id = $torneo_club->id; $torneo_plantel->save(); /*DB::table('trayectorias')->insert(array( array ( "socio_id" => $socio->id, "club_id" => $torneo_club->club->id, ), )); DB::table('temporadas_planteles')->insert(array( array ( "id" => $temporadas_plantel_id, "jugador_id" => $socio_id, "temporada_id" => 1, ) )); DB::table('torneos_planteles')->insert(array( array ( "id" => $torneos_plantele_id, "jugador_id" => $temporadas_plantel_id, "torneo_club_id" => $club_torneo, ) ));*/ } } }); }