/** * Cuando se este editando la lista de convocados, puede darse el caso de que jugadores * que previamente fueron insertados, deban ser borrados de la base de datos. * * @param PartidoClub $partido_club :: club implicado * @param Collection(Int) $convocados_previos :: lista de id's de 'PartidoPlantel' planilla anterior. * @param Collection(Int) $convocados_actuales :: lista de id's de 'PartidoPlantel' planilla actual. * */ public function desconvocarJugadores($partido_club, $convocados_previos, $convocados_actuales) { $desconvocados = $convocados_previos->diff($convocados_actuales); foreach ($desconvocados as $socio_id) { $jugador_partido = PartidoPlantel::where('socio_id', $socio_id)->where('club_id', $partido_club->id)->first(); if ($jugador_partido) { $this->eliminarTodoEventoDelJugador($jugador_partido); $partido = $jugador_partido->partido; $jugador_torneo = $jugador_partido->jugador; if (!is_null($jugador_torneo) && ($partido->finalizado || $partido->suspendido)) { // Como el jugador no va a participar del partido, intento que cumpla una fecha. $this->intentarCumplirFechaDeSuspension($jugador_torneo, $partido); } $jugador_partido->forceDelete(); } } }