/** * * @return a list of objects. */ public static function listByFullName() { $items = TiposJugadores::get(); $key = 'id'; $value = 'nombre'; return TiposJugadores::getListFields($items, $key, $value); }
/** * 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; }