Example #1
0
 /** 
  * 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;
 }
Example #2
0
 /**
  * @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";
 }
Example #4
0
 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.
 }