src/Entity/Alumno.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\AlumnoRepository;
  4. use DateTime;
  5. use DateTimeInterface;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Doctrine\Common\Collections\Collection;
  8. use Doctrine\DBAL\Types\Types;
  9. use Doctrine\ORM\Mapping as ORM;
  10. #[ORM\Entity(repositoryClass: AlumnoRepository::class)]
  11. class Alumno
  12. {
  13. #[ORM\Id]
  14. #[ORM\GeneratedValue]
  15. #[ORM\Column]
  16. private ?int $id = null;
  17. #[ORM\OneToOne(inversedBy: 'alumno')]
  18. #[ORM\JoinColumn(nullable: false)]
  19. private ?Solicitud $solicitud = null;
  20. #[ORM\ManyToOne(inversedBy: 'alumnos')]
  21. #[ORM\JoinColumn(nullable: false)]
  22. private ?EstadoAlumno $estado = null;
  23. #[ORM\Column(type: Types::DATETIME_MUTABLE)]
  24. private ?DateTimeInterface $fechaAdmision;
  25. #[ORM\OneToMany(mappedBy: 'alumno', targetEntity: CentroPracticasAlumno::class, cascade: ['persist', 'remove'], orphanRemoval: true)]
  26. private Collection $centrosPracticas;
  27. #[ORM\OneToMany(mappedBy: 'alumno', targetEntity: AsistenciaAlumno::class, cascade: ['persist', 'remove'], orphanRemoval: true)]
  28. private Collection $asistencias;
  29. // BEGIN: Estos campos son para hacer el siguimiento cuando es persona formada.
  30. #[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]
  31. private ?DateTimeInterface $fechaLlamadaMes = null;
  32. #[ORM\Column(type: Types::DATE_MUTABLE, nullable: true)]
  33. private ?DateTimeInterface $fechaLlamadaSeisMeses = null;
  34. #[ORM\Column(nullable: true)]
  35. private ?bool $estaTrabajandoMes = null;
  36. #[ORM\Column(nullable: true)]
  37. private ?bool $estaTrabajandoSeisMeses = null;
  38. #[ORM\Column(type: Types::TEXT, nullable: true)]
  39. private ?string $observacionesSeguimiento = null;
  40. // END: Estos campos son para hacer el siguimiento cuando es persona formada.
  41. #[ORM\OneToOne(mappedBy: 'alumno', cascade: ['persist', 'remove'])]
  42. private ?TestEvaluacionAlumno $testEvaluacion = null;
  43. #[ORM\OneToOne(mappedBy: 'alumno', cascade: ['persist', 'remove'])]
  44. private ?SolicitudBecaAlumno $solicitudBeca = null;
  45. // Este campo se rellena al ponerle el estado "Cursando" al alumno.
  46. #[ORM\Column(type: Types::DATETIME_MUTABLE, nullable: true)]
  47. private ?DateTimeInterface $fechaCursando = null;
  48. public function __construct()
  49. {
  50. $this->fechaAdmision = new DateTime();
  51. $this->centrosPracticas = new ArrayCollection();
  52. $this->asistencias = new ArrayCollection();
  53. }
  54. public function getId(): ?int
  55. {
  56. return $this->id;
  57. }
  58. public function getSolicitud(): ?Solicitud
  59. {
  60. return $this->solicitud;
  61. }
  62. public function setSolicitud(Solicitud $solicitud): static
  63. {
  64. $this->solicitud = $solicitud;
  65. return $this;
  66. }
  67. public function getEstado(): ?EstadoAlumno
  68. {
  69. return $this->estado;
  70. }
  71. public function setEstado(?EstadoAlumno $estado): static
  72. {
  73. $this->estado = $estado;
  74. return $this;
  75. }
  76. public function getFechaAdmision(): ?DateTimeInterface
  77. {
  78. return $this->fechaAdmision;
  79. }
  80. public function setFechaAdmision(DateTimeInterface $fechaAdmision): static
  81. {
  82. $this->fechaAdmision = $fechaAdmision;
  83. return $this;
  84. }
  85. /**
  86. * @return Collection<int, CentroPracticasAlumno>
  87. */
  88. public function getCentrosPracticas(): Collection
  89. {
  90. return $this->centrosPracticas;
  91. }
  92. public function addCentrosPractica(CentroPracticasAlumno $centrosPractica): static
  93. {
  94. if (!$this->centrosPracticas->contains($centrosPractica)) {
  95. $this->centrosPracticas->add($centrosPractica);
  96. $centrosPractica->setAlumno($this);
  97. }
  98. return $this;
  99. }
  100. public function removeCentrosPractica(CentroPracticasAlumno $centrosPractica): static
  101. {
  102. if ($this->centrosPracticas->removeElement($centrosPractica)) {
  103. // set the owning side to null (unless already changed)
  104. if ($centrosPractica->getAlumno() === $this) {
  105. $centrosPractica->setAlumno(null);
  106. }
  107. }
  108. return $this;
  109. }
  110. /**
  111. * @return Collection<int, AsistenciaAlumno>
  112. */
  113. public function getAsistencias(): Collection
  114. {
  115. return $this->asistencias;
  116. }
  117. public function addAsistencia(AsistenciaAlumno $asistencia): static
  118. {
  119. if (!$this->asistencias->contains($asistencia)) {
  120. $this->asistencias->add($asistencia);
  121. $asistencia->setAlumno($this);
  122. }
  123. return $this;
  124. }
  125. public function removeAsistencia(AsistenciaAlumno $asistencia): static
  126. {
  127. if ($this->asistencias->removeElement($asistencia)) {
  128. // set the owning side to null (unless already changed)
  129. if ($asistencia->getAlumno() === $this) {
  130. $asistencia->setAlumno(null);
  131. }
  132. }
  133. return $this;
  134. }
  135. public function getFechaLlamadaMes(): ?DateTimeInterface
  136. {
  137. return $this->fechaLlamadaMes;
  138. }
  139. public function setFechaLlamadaMes(?DateTimeInterface $fechaLlamadaMes): static
  140. {
  141. $this->fechaLlamadaMes = $fechaLlamadaMes;
  142. return $this;
  143. }
  144. public function getFechaLlamadaSeisMeses(): ?DateTimeInterface
  145. {
  146. return $this->fechaLlamadaSeisMeses;
  147. }
  148. public function setFechaLlamadaSeisMeses(?DateTimeInterface $fechaLlamadaSeisMeses): static
  149. {
  150. $this->fechaLlamadaSeisMeses = $fechaLlamadaSeisMeses;
  151. return $this;
  152. }
  153. public function isEstaTrabajandoMes(): ?bool
  154. {
  155. return $this->estaTrabajandoMes;
  156. }
  157. public function setEstaTrabajandoMes(?bool $estaTrabajandoMes): static
  158. {
  159. $this->estaTrabajandoMes = $estaTrabajandoMes;
  160. return $this;
  161. }
  162. public function isEstaTrabajandoSeisMeses(): ?bool
  163. {
  164. return $this->estaTrabajandoSeisMeses;
  165. }
  166. public function setEstaTrabajandoSeisMeses(?bool $estaTrabajandoSeisMeses): static
  167. {
  168. $this->estaTrabajandoSeisMeses = $estaTrabajandoSeisMeses;
  169. return $this;
  170. }
  171. public function getObservacionesSeguimiento(): ?string
  172. {
  173. return $this->observacionesSeguimiento;
  174. }
  175. public function setObservacionesSeguimiento(?string $observacionesSeguimiento): static
  176. {
  177. $this->observacionesSeguimiento = $observacionesSeguimiento;
  178. return $this;
  179. }
  180. public function getTestEvaluacion(): ?TestEvaluacionAlumno
  181. {
  182. return $this->testEvaluacion;
  183. }
  184. public function setTestEvaluacion(TestEvaluacionAlumno $testEvaluacion): static
  185. {
  186. // set the owning side of the relation if necessary
  187. if ($testEvaluacion->getAlumno() !== $this) {
  188. $testEvaluacion->setAlumno($this);
  189. }
  190. $this->testEvaluacion = $testEvaluacion;
  191. return $this;
  192. }
  193. public function getSolicitudBeca(): ?SolicitudBecaAlumno
  194. {
  195. return $this->solicitudBeca;
  196. }
  197. public function setSolicitudBeca(SolicitudBecaAlumno $solicitudBeca): static
  198. {
  199. // set the owning side of the relation if necessary
  200. if ($solicitudBeca->getAlumno() !== $this) {
  201. $solicitudBeca->setAlumno($this);
  202. }
  203. $this->solicitudBeca = $solicitudBeca;
  204. return $this;
  205. }
  206. public function getFechaCursando(): ?DateTimeInterface
  207. {
  208. return $this->fechaCursando;
  209. }
  210. public function setFechaCursando(?DateTimeInterface $fechaCursando): static
  211. {
  212. $this->fechaCursando = $fechaCursando;
  213. return $this;
  214. }
  215. }