public function armarPartidosInterzonalesFechas($id_torneo) { $torneo = Torneo::where("id", $id_torneo)->first(); $partidos_interzonales = []; if (!is_null($torneo)) { $partidos_interzonales = array("torneo" => $torneo); $torneo_fase = TorneoFase::where("torneo_id", $id_torneo)->first(); if ($torneo_fase->exists() and $torneo_fase->cant_grupos == 2) { $torneo_grupos = TorneoGrupo::where("fase_id", $torneo_fase->id)->get(); $grupo1 = $torneo_grupos['0']; $grupo2 = $torneo_grupos['1']; $club_grupos1 = TorneoGrupoClub::with("torneo_club.club")->where("grupo_id", $grupo1->id)->get(); $club_grupos2 = TorneoGrupoClub::with("torneo_club.club")->where("grupo_id", $grupo2->id)->get(); $equipos = []; foreach ($club_grupos1 as $key => $club_grupo) { //$equipos1 []= $club_grupo->torneo_club->club; $equipos1[] = $club_grupo->torneo_club; } foreach ($club_grupos2 as $key => $club_grupo) { $equipos2[] = $club_grupo->torneo_club; //$equipos2 []= $club_grupo->torneo_club->club; } $cant_equipos1 = $grupo1->cant_equipos; $cant_equipos2 = $grupo2->cant_equipos; $partidos = []; for ($j = 0; $j < $cant_equipos1; $j++) { for ($k = 0; $k < $cant_equipos2; $k++) { //$this->crearPartidoIdaYVuelta($partidos, $iPartido, $equipo, $equipos[$k] ); //$this->crearPartidoClub($equipos[$j],$equipos[$k]) $partidos[] = ["l" => $equipos1[$j], "v" => $equipos2[$k]]; } } $partidos_interzonales["partidos"][] = ["grupo" => 'interzonales', "partidos" => $partidos]; } else { $partidos_interzonales["partidos"][] = ''; } } return $partidos_interzonales; }
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); }