/** * 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; }
/** * @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; }
public function verificarSuspensiones() { $suspensiones = Suspension::where("estado_suspension", 2)->get(); $now = strtotime(date('Y-m-d')); foreach ($suspensiones as $suspension) { $fecha_ini = strtotime($suspension->fecha_ini_suspension); $fecha_fin = strtotime($suspension->fecha_fin_suspension); if ($now > $fecha_fin) { $suspension->estado_suspension = 4; $suspension->save(); } } return "OK"; }
protected function partidoPlantelSacarTarjetas(Partido $partido, $partido_plantel_id, $tipo_tarjeta_id, $cantidad, &$mensaje_error = '') { $partido_plantel = $this->validarPartidoPlantel($partido, $partido_plantel_id, $mensaje_error); if (!is_null($partido_plantel)) { DB::transaction(function () use($partido, $partido_plantel_id, $tipo_tarjeta_id, $cantidad, $mensaje_error) { $partido_jugador_tarjetas = PartidoTarjeta::select('partidos_tarjetas.*')->where('partidos_tarjetas.jugador_id', '=', $partido_plantel_id)->where('partidos_tarjetas.tipo_tarjeta_id', '=', $tipo_tarjeta_id)->get(); $diferencia_tarjetas = $cantidad - $partido_jugador_tarjetas->count(); if ($diferencia_tarjetas > 0) { // crear $diferencia_tarjetas PartidoTarjeta para el tipito for ($i = 1; $i <= $diferencia_tarjetas; $i++) { $this->crearPartidoTarjeta($partido, $partido_plantel_id, $tipo_tarjeta_id, $cantidad, $mensaje_error); } } elseif ($diferencia_tarjetas < 0) { // eliminar $diferencia_tarjetas PartidoTarjeta para el tipito $diferencia_tarjetas = -$diferencia_tarjetas; $diferencia_tarjetas -= 1; for ($i = $diferencia_tarjetas; $i >= 0; $i--) { $this->eliminarPartidoEvento($partido_jugador_tarjetas[$i]->evento); } } else { // Si la diferencia es 0 y la tarjeta que queda es roja, entonces, el cumplimiento de la suspension debe ser obligatorio if ($tipo_tarjeta_id == TipoTarjeta::ROJA && $partido_jugador_tarjetas->count() == 1) { $tarjeta_roja = $partido_jugador_tarjetas->first(); $suspension = Suspension::where('evento_id', $tarjeta_roja->evento_id)->first(); if ($suspension->exists()) { $suspension->cumplimiento = Suspension::OBLIGATORIA; $suspension->save(); } } } }); } // Esto funciona hasta que se tengan en cuenta el momento del evento. }