/** * Suspensiones del jugador generadas en la temporada. * * @return Collection(Suspension) */ public function getSuspensionesTemporadaAttribute() { $suspensiones_temporada = Suspension::select('suspensiones.*')->join('partidos_eventos', 'partidos_eventos.id', '=', 'suspensiones.evento_id')->join('partidos', 'partidos.id', '=', 'partidos_eventos.partido_id')->join('torneos_fechas', 'torneos_fechas.id', '=', 'partidos.fecha_id')->join('torneos', 'torneos.id', '=', 'torneos_fechas.torneo_id')->where("suspensiones.socio_id", $this->socio_id)->where("torneos.temporada_id", $this->temporada_id)->get(); return $suspensiones_temporada; }
/** * Te retorna la suspension activa en dicho partido * * @param int $partido_id :: partido en cuestion * * @return Suspension :: retorna una de las suspensiones activas en dicho partido */ public function suspensionActivaEnPartido($partido_id) { $suspendido = null; $suspensiones = Suspension::where("socio_id", $this->socio_id)->get(); $suspendido = $suspensiones->filter(function ($item) use($partido_id) { $cumplio_fecha_en_partido = SuspensionFechaCumplida::where("partido_id", $partido_id)->where("suspension_id", $item->id)->first(); $vale = 1; if (is_null($cumplio_fecha_en_partido)) { $vale = 0; } return $vale; })->first(); return $suspendido; }
public function actualizarCategoriaSuspensiones() { $suspensiones = Suspension::get(); foreach ($suspensiones as $suspension) { $suspension->categoria = $suspension->categoria; $suspension->save(); } return "OK"; }
/** * Suspensiones que se le generaron al jugador a partir de un evento del partido asociado a el. * * @return Collection(Suspension) */ public function getSuspensionesPartidoAttribute() { $suspensiones_partido = Suspension::select('suspensiones.*')->join('partidos_eventos', 'partidos_eventos.id', '=', 'suspensiones.evento_id')->where('suspensiones.socio_id', $this->socio_id)->where('partidos_eventos.partido_id', $this->partido->id)->get(); /* $suspensiones_partido = new Collection(); $this->eventos->each( function ($evento) use ($suspensiones_partido) { $evento->sanciones->each( function ($suspension) use ($suspensiones_partido) { $suspensiones_partido->push($suspension); }); }); */ /* $suspensiones_partido = $this->eventos->filter(function ($item) { return (!is_null($item->suspension)); }); */ return $suspensiones_partido; }
public function getSuspensionesAttribute() { $suspendidos = $this->lista_buena_fe->filter(function ($item) { return $item->suspendido; })->sortBy('apellido'); $socios_ids = $suspendidos->pluck("jugador")->pluck("jugador")->pluck("id"); if (sizeof($suspendidos)) { //dd($socios_ids); } $suspensiones = Suspension::whereIn("socio_id", $socios_ids)->get(); return $suspensiones; }
/** * @return Suspension :: si existe, devuelve la suspension activa del socio * controlando la fecha calendario de la misma con una dada. */ public function jugadorSuspendidoALaFecha($dia) { $suspendido = Suspension::where('socio_id', $this->id)->where('estado_suspension', 2)->first(); return $suspendido; }
/** * Dada una suspension y un partido, si en ese partido el pibe jugo, * no puede haber cumplido fecha de suspension. * * @param Suspension $suspension :: suspension cuya fecha se quiere 'descumplir'. * @param Partido $partido :: partido en el cual se cuplio una fecha de la suspension. * @param String $mensaje_error :: Mensaje de error. * */ protected function eliminarSuspensionFechaCumplida(Suspension $suspension, Partido $partido, &$mensaje_error) { $suspension_fecha_cumplida = $suspension->cumplidas->filter(function ($item) use($partido) { $filtrar = $item->partido_id == $partido->id; return $filtrar; })->first(); if (!is_null($suspension_fecha_cumplida)) { DB::transaction(function () use($suspension, $suspension_fecha_cumplida) { // Existe el cumplimiento de la fecha $suspension_fecha_cumplida->forceDelete(); if ($suspension->fechas_cumplidas > 0) { $suspension->fechas_cumplidas--; if ($suspension->fechas_cumplidas < $suspension->fechas_suspension) { $suspension->estado_suspension = EstadoSuspension::ACTIVA; } $suspension->save(); } }); } else { $mensaje_error = 'No existe una fecha cumplida, en ese partido, para dicha suspension.'; } }