Ejemplo n.º 1
0
 public function crearPartidoClub($club_id, $es_local, $partido_id)
 {
     $equipo_partido = new PartidoClub();
     $equipo_partido->club_id = $club_id;
     $equipo_partido->local = $es_local;
     $equipo_partido->partido_id = $partido_id;
     $equipo_partido->save();
 }
Ejemplo n.º 2
0
 /**
  * @return int : De los partidos finalizados del club, devuelve los que tienen el resultado forzado.
  */
 public function getPartidosResultadoForzadoClubAttribute()
 {
     /*$partidos_resultado_forzado_club = $this->partidos_finalizados_club->filter( function($item) {
     
                         return ($item->partido->forzar_resultado);
                     });*/
     $partidos_resultado_forzado_club = PartidoClub::select('partidos_clubes.*')->join('partidos', 'partidos.id', '=', 'partidos_clubes.partido_id')->where('partidos_clubes.club_id', '=', $this->id)->where('partidos.forzar_resultado', 1)->get();
     $partidos_resultado_forzado_club = $partidos_resultado_forzado_club->filter(function ($item) {
         return $item->partido->estado_compuesto->id == EstadoPartido::FINALIZADO;
     });
     return $partidos_resultado_forzado_club;
 }
Ejemplo n.º 3
0
 /**
  * Devuelve los partidos programados anteriormente mas cercanos sin jugar, de alguno de los clubes 
  * @return Partido
  */
 public function getPartidosProgramadosAnterioresAttribute()
 {
     /*
     ESTO ES LO MISMO QUE LAS TRES LINEAS DE ABAJO, LA DIFERENCIA ES QUE ABAJO LO PIDO POR CADA PARTIDO CLUB
     Y ACA LO CALCULO DESDE EL PARTIDO,                
     DB::enableQueryLog();
                    
     $partidos_programados = Partido::where("estado_id",EstadoPartido::PROGRAMADO)
                 ->where("dia_partido","<",$this->dia_partido)
                 ->where("id","<>",$this->id)
                 ->get();
     
     $clubes = PartidoClub::where("partido_id",$this->id)->get();
     
     $partidos_clubes = PartidoClub::whereIn("club_id",$clubes->pluck("club_id")->toArray())
                         ->whereIn("partido_id",$partidos_programados->pluck("id")->toArray())->get();
     
     $partidos = $partidos_clubes->pluck("partido_id")->unique();
     $partidos = Partido::whereIn("id",$partidos->toArray())->orderBy("dia_partido","DESC")->get();
     
     
     dd(array_sum(array_pluck(DB::getQueryLog(), 'time')));
     */
     $clubes = PartidoClub::where("partido_id", $this->id)->get();
     $partidos = $clubes->first()->partidos_programados_anteriores;
     $partidos->merge($clubes->get(1)->partidos_programados_anteriores);
     return $partidos->unique();
 }
Ejemplo n.º 4
0
 /**
  * @return Collection[TorneoPlantel] : los jugadores de la lista de buena fe que estan suspendidos
  */
 public function getPartidosProgramadosAnterioresAttribute()
 {
     $partidos_anteriores = PartidoClub::where("club_id", $this->club_id)->get();
     $partidos_ids = $partidos_anteriores->pluck("partido_id")->toArray();
     $dia_partido = $this->date_latino_to_mysql($this->partido->dia_partido);
     $partidos_programados = Partido::whereIn("id", $partidos_ids)->whereDate("dia_partido", "<", $dia_partido)->where("estado_id", EstadoPartido::PROGRAMADO)->orderBy("dia_partido", "DESC")->get();
     return $partidos_programados;
 }
Ejemplo n.º 5
0
 protected function terminarPartido($partido, $estado_id)
 {
     $nuevo_estado = EstadoPartido::find($estado_id);
     # Por defecto finalizo el partido
     $nuevo_estado_id = 4;
     if ($nuevo_estado) {
         $nuevo_estado_id = $nuevo_estado->id;
     }
     if ($nuevo_estado_id == 5) {
         # Quiero suspender el partido
         if (is_null($partido->partido_complemento)) {
             # No estaba previamente suspendido, creo el partido continuacion
             $complemento = new Partido();
             $complemento->fecha_id = $partido->fecha_id;
             $complemento->estado_id = 1;
             $complemento->partido_complemento_id = $partido->id;
             $complemento->save();
             foreach ($partido->clubes as $club) {
                 $nuevo_partido_club = new PartidoClub();
                 $nuevo_partido_club->club_id = $club->club_id;
                 $nuevo_partido_club->local = $club->local;
                 $nuevo_partido_club->partido_id = $complemento->id;
                 $nuevo_partido_club->save();
             }
         } else {
             # Estoy editando un partido previamente suspendido.
             # Debería revisar si los eventos tienen efecto sobre el partido siguiente.
         }
     } elseif ($nuevo_estado_id == 4) {
         if ($partido->partido_complemento) {
             # Si el partido estaba previamente suspendido, no se puede finalizar
             $nuevo_estado_id = 5;
             // tirar cartel error
         }
     } else {
         # En esta instancia solo puedo o finalizar, o suspender
         die("Forbidden");
     }
     $partido->estado_id = intval($nuevo_estado_id);
     $partido->save();
 }