Example #1
0
 /**
  * 
  * @return a list of objects.
  */
 public static function listByFullName()
 {
     $items = TiposJugadores::get();
     $key = 'id';
     $value = 'nombre';
     return TiposJugadores::getListFields($items, $key, $value);
 }
Example #2
0
 /**
  * A partir de una lista de jugadores, 
  * subconjunto de la lista de buena fe del club en el torneo,
  * se insertan los jugadores que formaran parte del plantel del club 
  * en el partido en cuestion.
  *
  * @param  PartidoClub $partido_club :: Club que juega el partido.
  * @param  array(TorneoPlanteles) $convocados :: Lista de jugadores que juegan el partido.
  */
 public function updateClubConvocados($partido, $partido_club, $convocados)
 {
     // los metodos pluck, push y diff son propios de la clase Collecion (laravel)
     // los metodos trashed, restore son propios de Eloquent (laravel)
     // armo una lista con los ids previamente existentes en la base de datos.
     //$convocados_previos = PartidoPlantel::where('club_id',$partido_club->id)->get();
     $convocados_previos = $partido_club->jugadores;
     //$convocados_previos = $convocados_previos->pluck('attributes')->pluck('id');
     $convocados_previos = $convocados_previos->pluck('attributes')->pluck('socio_id');
     $cant_titulares = 0;
     $capitanes = 0;
     $convocados_actuales = new Collection();
     foreach ($convocados as $jugador_torneo) {
         #=================================
         //$camiseta = '';
         //if (is_int($jugador_torneo['camiseta'])) { $camiseta = $jugador_torneo['camiseta']; }
         $camiseta = (int) $jugador_torneo['camiseta'];
         if ($camiseta <= 0) {
             $camiseta = '';
         }
         $es_titular = 0;
         if ($jugador_torneo['titular'] == "true") {
             $es_titular = 1;
         }
         $es_capitan = 0;
         if ($jugador_torneo['capitan'] == "true") {
             $es_capitan = 1;
         }
         $tipo_jugador_id = 1;
         $tipo_jugador = TiposJugadores::where('id', $jugador_torneo['tipo_jugador_id'])->first();
         if ($tipo_jugador) {
             $tipo_jugador_id = $tipo_jugador->id;
         }
         #=================================
         #=================================
         $socio = Socio::findOrFail($jugador_torneo['socio_id']);
         $jugador = null;
         $torneo_plantel_id = null;
         $torneo_plantel = $socio->perteneceListaBuenaFe($partido_club->club_id);
         if ($torneo_plantel) {
             $torneo_plantel_id = $torneo_plantel->id;
             // busco si el jugador pertenece/pertenecio a la planilla del partido
             $jugador = PartidoPlantel::withTrashed()->where('club_id', $partido_club->id)->where('jugador_id', $torneo_plantel_id)->first();
         } else {
             // busco si el jugador pertenece/pertenecio a la planilla del partido aun no perteneciendo a la lista de buena fe
             $jugador = PartidoPlantel::withTrashed()->where('club_id', $partido_club->id)->where('socio_id', $socio->id)->first();
         }
         if ($jugador) {
             if ($jugador->trashed()) {
                 $jugador->restore();
             }
         } else {
             $jugador = new PartidoPlantel();
         }
         $jugador->fill($jugador_torneo);
         $jugador->camiseta = $camiseta;
         $jugador->titular = $es_titular;
         $jugador->capitan = $es_capitan;
         $jugador->tipo_jugador_id = $tipo_jugador_id;
         $jugador->jugador_id = $torneo_plantel_id;
         $jugador->club_id = $partido_club->id;
         $jugador->socio_id = $socio->id;
         //$jugador->suspension_id     = $suspension_id;
         $jugador->save();
         if ($jugador->irregular) {
             // Se trata de un jugador irregular, que no pertenece a la lista de buena fe.
             $suspension_id = null;
             $this->crearPartidoMalIngreso($partido, $jugador->id, $suspension_id, $mensaje_error);
         } else {
             $generar = 0;
             $suspension_actual = $jugador->suspensionActivaEnPartido($partido->id);
             if (is_null($suspension_actual)) {
                 $suspension_actual = $jugador->suspendido;
                 if (!is_null($suspension_actual)) {
                     if (!is_null($suspension_actual->partido)) {
                         if ($suspension_actual->partido->id != $partido->id) {
                             $generar = 1;
                         } else {
                             // La suspensión se generó en el partido.
                         }
                     } else {
                         $generar = 1;
                     }
                 }
             } else {
                 $generar = 1;
             }
             if ($generar) {
                 $suspension_id = $suspension_actual->id;
                 $this->crearPartidoMalIngreso($partido, $jugador->id, $suspension_id, $mensaje_error);
             }
         }
         $convocados_actuales->push($jugador->socio_id);
         #=================================
         if ($jugador->titular) {
             $cant_titulares++;
         }
         if ($jugador->capitan) {
             $capitanes++;
         }
     }
     $mensaje_error = $this->controlarCantidades($partido_club, $cant_titulares, $capitanes);
     if ($mensaje_error == '') {
         $this->desconvocarJugadores($partido_club, $convocados_previos, $convocados_actuales);
     }
     return $mensaje_error;
 }