public function getEstadoCompuestoAttribute() { $estado_compuesto = $this->estado; if ($this->partido_compuesto) { if ($this->partido_hoja->finalizado) { // Finalizado //$estado_compuesto = EstadoPartido::find(4); $estado_compuesto = EstadoPartido::find(EstadoPartido::FINALIZADO); } else { // Comenzado //$estado_compuesto = EstadoPartido::find(3); $estado_compuesto = EstadoPartido::find(EstadoPartido::COMENZADO); } } return $estado_compuesto; }
protected function terminarPartido($partido, $estado_id) { $nuevo_estado = EstadoPartido::find($estado_id); # Por defecto finalizo el partido $nuevo_estado_id = 4; if ($nuevo_estado) { $nuevo_estado_id = $nuevo_estado->id; } if ($nuevo_estado_id == 5) { # Quiero suspender el partido if (is_null($partido->partido_complemento)) { # No estaba previamente suspendido, creo el partido continuacion $complemento = new Partido(); $complemento->fecha_id = $partido->fecha_id; $complemento->estado_id = 1; $complemento->partido_complemento_id = $partido->id; $complemento->save(); foreach ($partido->clubes as $club) { $nuevo_partido_club = new PartidoClub(); $nuevo_partido_club->club_id = $club->club_id; $nuevo_partido_club->local = $club->local; $nuevo_partido_club->partido_id = $complemento->id; $nuevo_partido_club->save(); } } else { # Estoy editando un partido previamente suspendido. # Debería revisar si los eventos tienen efecto sobre el partido siguiente. } } elseif ($nuevo_estado_id == 4) { if ($partido->partido_complemento) { # Si el partido estaba previamente suspendido, no se puede finalizar $nuevo_estado_id = 5; // tirar cartel error } } else { # En esta instancia solo puedo o finalizar, o suspender die("Forbidden"); } $partido->estado_id = intval($nuevo_estado_id); $partido->save(); }