Beispiel #1
0
 public function getCambiosAttribute()
 {
     //DB::enableQueryLog();
     /*$cambios = PartidoCambio::with("jugador_entra.jugador.jugador")
       ->with("jugador_entra.club.torneo_grupo_club.torneo_club.club")
       ->with("jugador_sale.jugador.jugador")
       ->with("jugador_sale.club.torneo_grupo_club.torneo_club.club")
       ->with("evento.partido.clubes")
       ->select('partidos_cambios.*')
           ->join('partidos_eventos','partidos_eventos.id','=','partidos_cambios.evento_id')
       ->where('partidos_eventos.partido_id',$this->id)
       ->get();*/
     $cambios = PartidoCambio::select('partidos_cambios.*')->join('partidos_eventos', 'partidos_eventos.id', '=', 'partidos_cambios.evento_id')->where('partidos_eventos.partido_id', $this->id)->get();
     // $cambios = $this->clubes->pluck('cambios')->flatten();
     return $cambios;
 }
 /**
  * Dados dos jugadores y un partido, valida si el cambio puede ser realizado en el partido.
  * Si el cambio ya existe se devuelve, caso contrario se devuelve nulo.
  *
  * @param Partido $partido :: partido sobre el cual se quiere crear el cambio.
  * @param Int $entra_id :: id del jugador que entra (PartidoPlantel.id)
  * @param Int $sale_id :: id del jugador que sale (PartidoPlantel.id)
  * @param String $mensaje_error :: VALOR POR REFERENCIA que registra cualquier error que se produzca.
  *
  * @return PartidoCambio :: de existir el cambio que se intenta validar, se devuelve.
  */
 protected function validarPartidoCambio(Partido $partido, $entra_id, $sale_id, &$mensaje_error)
 {
     $partido_cambio = null;
     $mensaje_error = '';
     if ($entra_id != $sale_id) {
         $jugador_entra = PartidoPlantel::findOrFail($entra_id);
         $jugador_sale = PartidoPlantel::findOrFail($sale_id);
         if ($jugador_entra->club_id == $jugador_sale->club_id) {
             if ($jugador_entra->club->partido_id == $partido->id) {
                 // Falta configurar. Si se quisiera permitir entrar y salir a un jugador.
                 if (!$partido->permite_multiples_cambios) {
                     $partido_cambio = PartidoCambio::select('partidos_cambios.*')->where('partidos_cambios.entra_id', '=', $entra_id)->where('partidos_cambios.sale_id', '=', $sale_id)->first();
                     if (is_null($partido_cambio)) {
                         if ($jugador_entra->titular) {
                             $mensaje_error = 'El jugador que quiere entrar es/era titular. Ya esta jugando, o salió pero no puede entrar nuevamete.';
                         } elseif (!is_null($jugador_entra->cambio_entra->first())) {
                             $mensaje_error = 'El jugador que quiere entrar ya entró.';
                         } elseif (!is_null($jugador_sale->cambio_sale->first())) {
                             $mensaje_error = 'El jugador que quiere salir ya salió.';
                         }
                     } else {
                         $mensaje_error = 'El cambio existe, lo devuelvo.';
                     }
                 } else {
                     // si se permiten multiples cambios hay que controlar si la combinacion de cambios da algo valido.
                 }
             } else {
                 $mensaje_error = 'Los jugadores son de otro partido.';
             }
         } else {
             $mensaje_error = 'Los jugadores no son del mismo equipo.';
         }
     } else {
         $mensaje_error = 'Se trata de hacer un autocambio.';
     }
     if ($mensaje_error == '') {
         // Aca se deberian controlar la cantidad de cambios permitidos por el partido.
     }
     return $partido_cambio;
 }