src/Core/Entity/Horario.php line 11

Open in your IDE?
  1. <?php
  2. namespace App\Core\Entity;
  3. use App\Core\Entity\Curso;
  4. use Doctrine\ORM\Mapping as ORM;
  5. /**
  6. * @ORM\Entity(repositoryClass="App\Core\Repository\HorarioRepository")
  7. */
  8. class Horario
  9. {
  10. const JSON_FIELDS = ['id', 'dia', 'horaInicio', 'horaFin', 'horarioDefinido', 'frecuencia', 'duracion'];
  11. /**
  12. * @ORM\Id()
  13. * @ORM\GeneratedValue()
  14. * @ORM\Column(type="integer")
  15. */
  16. private $id;
  17. /**
  18. * @ORM\Column(type="integer", nullable=true)
  19. */
  20. private $dia;
  21. /**
  22. * @ORM\Column(type="time", nullable=true)
  23. */
  24. private $horaInicio;
  25. /**
  26. * @ORM\Column(type="time", nullable=true)
  27. */
  28. private $horaFin;
  29. /**
  30. * @ORM\Column(type="boolean", nullable=false)
  31. * True es definido, False es indefinido
  32. */
  33. private $horarioDefinido;
  34. /**
  35. * @ORM\Column(type="integer", nullable=true)
  36. * Cada cuanto se dan las clases en un mes (0 es indefinido)
  37. */
  38. private $frecuencia;
  39. /**
  40. * @ORM\Column(type="integer", nullable=true)
  41. * Cuantos minutos duran las clases
  42. */
  43. private $duracion;
  44. /**
  45. * @ORM\ManyToOne(targetEntity="App\Core\Entity\Curso", inversedBy="horarios")
  46. * @ORM\JoinColumn(nullable=false)
  47. */
  48. private $curso;
  49. public function getId(): ?int
  50. {
  51. return $this->id;
  52. }
  53. public function getDia(): ?int
  54. {
  55. return $this->dia;
  56. }
  57. public function setDia(int $dia): self
  58. {
  59. $this->dia = $dia;
  60. return $this;
  61. }
  62. public function getHoraInicio(): ?\DateTimeInterface
  63. {
  64. return $this->horaInicio;
  65. }
  66. public function setHoraInicio(\DateTimeInterface $horaInicio): self
  67. {
  68. $this->horaInicio = $horaInicio;
  69. return $this;
  70. }
  71. public function getHoraFin(): ?\DateTimeInterface
  72. {
  73. return $this->horaFin;
  74. }
  75. public function setHoraFin(\DateTimeInterface $horaFin): self
  76. {
  77. $this->horaFin = $horaFin;
  78. return $this;
  79. }
  80. public function getCurso(): ?\App\Core\Entity\Curso
  81. {
  82. return $this->curso;
  83. }
  84. public function setCurso(?\App\Core\Entity\Curso $curso): self
  85. {
  86. $this->curso = $curso;
  87. return $this;
  88. }
  89. public static function getNumeroDia(string $dia) {
  90. switch ($dia) {
  91. case 'Lunes':
  92. return 1;
  93. break;
  94. case 'Martes':
  95. return 2;
  96. break;
  97. case 'Miercoles':
  98. return 3;
  99. break;
  100. case 'Jueves':
  101. return 4;
  102. break;
  103. case 'Viernes':
  104. return 5;
  105. break;
  106. case 'Sabado':
  107. return 6;
  108. break;
  109. case 'Domingo':
  110. return 0;
  111. break;
  112. }
  113. }
  114. public function getStringDia() : string {
  115. switch ($this->dia) {
  116. case 1:
  117. if ($GLOBALS['request']->getLocale() === 'es') return 'Lunes';
  118. else return 'Monday';
  119. break;
  120. case 2:
  121. if ($GLOBALS['request']->getLocale() === 'es') return 'Martes';
  122. else return 'Tuesday';
  123. break;
  124. case 3:
  125. if ($GLOBALS['request']->getLocale() === 'es') return 'Miércoles';
  126. else return 'Wednesday';
  127. break;
  128. case 4:
  129. if ($GLOBALS['request']->getLocale() === 'es') return 'Jueves';
  130. else return 'Thursday';
  131. break;
  132. case 5:
  133. if ($GLOBALS['request']->getLocale() === 'es') return 'Viernes';
  134. else return 'Friday';
  135. break;
  136. case 6:
  137. if ($GLOBALS['request']->getLocale() === 'es') return 'Sábado';
  138. else return 'Saturday';
  139. break;
  140. case 0:
  141. if ($GLOBALS['request']->getLocale() === 'es') return 'Domingo';
  142. else return 'Sunday';
  143. break;
  144. default:
  145. return '';
  146. break;
  147. }
  148. }
  149. public function getSafeStringDia() : string {
  150. switch ($this->dia) {
  151. case 1:
  152. return 'Lunes';
  153. case 2:
  154. return 'Martes';
  155. case 3:
  156. return 'Miercoles';
  157. case 4:
  158. return 'Jueves';
  159. case 5:
  160. return 'Viernes';
  161. case 6:
  162. return 'Sábado';
  163. case 0:
  164. return 'Domingo';
  165. default:
  166. return '';
  167. }
  168. }
  169. public function getHorarioDefinido(): ?bool
  170. {
  171. return $this->horarioDefinido;
  172. }
  173. public function setHorarioDefinido(bool $horarioDefinido): self
  174. {
  175. $this->horarioDefinido = $horarioDefinido;
  176. return $this;
  177. }
  178. public function getFrecuencia(): ?int
  179. {
  180. return $this->frecuencia;
  181. }
  182. public function setFrecuencia(int $frecuencia): self
  183. {
  184. $this->frecuencia = $frecuencia;
  185. return $this;
  186. }
  187. public function getDuracion(): ?int
  188. {
  189. return $this->duracion;
  190. }
  191. public function setDuracion(int $duracion): self
  192. {
  193. $this->duracion = $duracion;
  194. return $this;
  195. }
  196. }