src/Entity/EntidadColaboradora.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Enum\ComarcaEnum;
  4. use App\Enum\TipoViaEnum;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. /**
  9. * @ORM\Entity
  10. * @ORM\Table(name="entidad_colaboradora")
  11. */
  12. class EntidadColaboradora extends Entidad
  13. {
  14. /**
  15. * @ORM\Column(type="json", nullable=true)
  16. */
  17. private $configuracionCitas;
  18. /**
  19. * @ORM\Column(type="boolean", nullable=true)
  20. */
  21. private $beneficiariaSubvencion;
  22. /**
  23. * @ORM\OneToMany(
  24. * targetEntity=\App\Entity\EntidadColaboradoraPropietarioContenido::class,
  25. * mappedBy="entidadColaboradora"
  26. * )
  27. */
  28. private $propietarioContenidoEntidadColaboradoras;
  29. /**
  30. * @ORM\OneToMany(targetEntity=\App\Entity\Curso::class, mappedBy="entidadColaboradora")
  31. */
  32. private $curso;
  33. /**
  34. * @ORM\OneToMany(targetEntity=\App\Entity\ExpedientePerteneAEntidad::class, mappedBy="entidadColaboradora")
  35. */
  36. private $expedientePerteneAEntidads;
  37. /**
  38. * @ORM\OneToMany(targetEntity=\App\Entity\Calendario::class, mappedBy="entidadColaboradora")
  39. */
  40. private $calendario;
  41. /**
  42. * @ORM\OneToMany(targetEntity=\App\Entity\Enlace::class, mappedBy="entidadColaboradora")
  43. */
  44. private $enlace;
  45. /**
  46. * @ORM\ManyToMany(targetEntity=\App\Entity\Formador::class, inversedBy="entidadColaboradoras")
  47. * @ORM\JoinTable(
  48. * name="colabora",
  49. * joinColumns={@ORM\JoinColumn(name="entidad_colaboradora_id", referencedColumnName="id", nullable=false)},
  50. * inverseJoinColumns={@ORM\JoinColumn(name="profesional_id", referencedColumnName="id", nullable=false)}
  51. * )
  52. */
  53. private $profesionals;
  54. /**
  55. * @ORM\ManyToMany(targetEntity=\App\Entity\Participante::class, mappedBy="entidadColaboradoras")
  56. */
  57. private $participantes;
  58. /**
  59. * @ORM\ManyToMany(targetEntity=\App\Entity\UsuarioHermes::class, mappedBy="entidadColaboradorasFavorito")
  60. */
  61. private $usuarioHermesFavorito;
  62. public function __construct()
  63. {
  64. $this->curso = new ArrayCollection();
  65. $this->expedientePerteneAEntidads = new ArrayCollection();
  66. $this->calendario = new ArrayCollection();
  67. $this->enlace = new ArrayCollection();
  68. $this->profesionals = new ArrayCollection();
  69. $this->participantes = new ArrayCollection();
  70. $this->propietarioContenidoEntidadColaboradoras = new ArrayCollection();
  71. $this->usuarioHermesFavorito = new ArrayCollection();
  72. }
  73. public function getConfiguracionCitas(): ?array
  74. {
  75. return $this->configuracionCitas;
  76. }
  77. public function setConfiguracionCitas(?array $configuracionCitas): static
  78. {
  79. $this->configuracionCitas = $configuracionCitas;
  80. return $this;
  81. }
  82. public function isBeneficiariaSubvencion(): ?bool
  83. {
  84. return $this->beneficiariaSubvencion;
  85. }
  86. public function setBeneficiariaSubvencion(?bool $beneficiariaSubvencion): static
  87. {
  88. $this->beneficiariaSubvencion = $beneficiariaSubvencion;
  89. return $this;
  90. }
  91. /**
  92. * @return Collection<int, Curso>
  93. */
  94. public function getCurso(): Collection
  95. {
  96. return $this->curso;
  97. }
  98. public function addCurso(Curso $curso): static
  99. {
  100. if (!$this->curso->contains($curso)) {
  101. $this->curso->add($curso);
  102. $curso->setEntidadColaboradora($this);
  103. }
  104. return $this;
  105. }
  106. public function removeCurso(Curso $curso): static
  107. {
  108. if ($this->curso->removeElement($curso)) {
  109. // set the owning side to null (unless already changed)
  110. if ($curso->getEntidadColaboradora() === $this) {
  111. $curso->setEntidadColaboradora(null);
  112. }
  113. }
  114. return $this;
  115. }
  116. /**
  117. * @return Collection<int, ExpedientePerteneAEntidad>
  118. */
  119. public function getExpedientePerteneAEntidads(): Collection
  120. {
  121. return $this->expedientePerteneAEntidads;
  122. }
  123. public function addExpedientePerteneAEntidad(ExpedientePerteneAEntidad $expedientePerteneAEntidad): static
  124. {
  125. if (!$this->expedientePerteneAEntidads->contains($expedientePerteneAEntidad)) {
  126. $this->expedientePerteneAEntidads->add($expedientePerteneAEntidad);
  127. $expedientePerteneAEntidad->setEntidadColaboradora($this);
  128. }
  129. return $this;
  130. }
  131. public function removeExpedientePerteneAEntidad(ExpedientePerteneAEntidad $expedientePerteneAEntidad): static
  132. {
  133. if ($this->expedientePerteneAEntidads->removeElement($expedientePerteneAEntidad)) {
  134. // set the owning side to null (unless already changed)
  135. if ($expedientePerteneAEntidad->getEntidadColaboradora() === $this) {
  136. $expedientePerteneAEntidad->setEntidadColaboradora(null);
  137. }
  138. }
  139. return $this;
  140. }
  141. /**
  142. * @return Collection<int, Calendario>
  143. */
  144. public function getCalendario(): Collection
  145. {
  146. return $this->calendario;
  147. }
  148. public function addCalendario(Calendario $calendario): static
  149. {
  150. if (!$this->calendario->contains($calendario)) {
  151. $this->calendario->add($calendario);
  152. $calendario->setEntidadColaboradora($this);
  153. }
  154. return $this;
  155. }
  156. public function removeCalendario(Calendario $calendario): static
  157. {
  158. if ($this->calendario->removeElement($calendario)) {
  159. // set the owning side to null (unless already changed)
  160. if ($calendario->getEntidadColaboradora() === $this) {
  161. $calendario->setEntidadColaboradora(null);
  162. }
  163. }
  164. return $this;
  165. }
  166. /**
  167. * @return Collection<int, Enlace>
  168. */
  169. public function getEnlace(): Collection
  170. {
  171. return $this->enlace;
  172. }
  173. public function addEnlace(Enlace $enlace): static
  174. {
  175. if (!$this->enlace->contains($enlace)) {
  176. $this->enlace->add($enlace);
  177. $enlace->setEntidadColaboradora($this);
  178. }
  179. return $this;
  180. }
  181. public function removeEnlace(Enlace $enlace): static
  182. {
  183. if ($this->enlace->removeElement($enlace)) {
  184. // set the owning side to null (unless already changed)
  185. if ($enlace->getEntidadColaboradora() === $this) {
  186. $enlace->setEntidadColaboradora(null);
  187. }
  188. }
  189. return $this;
  190. }
  191. /**
  192. * @return Collection<int, Formador>
  193. */
  194. public function getProfesionals(): Collection
  195. {
  196. return $this->profesionals;
  197. }
  198. public function addProfesional(Formador $profesional): static
  199. {
  200. if (!$this->profesionals->contains($profesional)) {
  201. $this->profesionals->add($profesional);
  202. }
  203. return $this;
  204. }
  205. public function removeProfesional(Formador $profesional): static
  206. {
  207. $this->profesionals->removeElement($profesional);
  208. return $this;
  209. }
  210. /**
  211. * @return Collection<int, Participante>
  212. */
  213. public function getParticipantes(): Collection
  214. {
  215. return $this->participantes;
  216. }
  217. public function addParticipante(Participante $participante): static
  218. {
  219. if (!$this->participantes->contains($participante)) {
  220. $this->participantes->add($participante);
  221. $participante->addEntidadColaboradora($this);
  222. }
  223. return $this;
  224. }
  225. public function removeParticipante(Participante $participante): static
  226. {
  227. if ($this->participantes->removeElement($participante)) {
  228. $participante->removeEntidadColaboradora($this);
  229. }
  230. return $this;
  231. }
  232. /**
  233. * @return Collection<int, EntidadColaboradoraPropietarioContenido>
  234. */
  235. public function getPropietarioContenidoEntidadColaboradoras(): Collection
  236. {
  237. return $this->propietarioContenidoEntidadColaboradoras;
  238. }
  239. public function addPropietarioContenidoEntidadColaboradora(EntidadColaboradoraPropietarioContenido $propietarioContenidoEntidadColaboradora): static
  240. {
  241. if (!$this->propietarioContenidoEntidadColaboradoras->contains($propietarioContenidoEntidadColaboradora)) {
  242. $this->propietarioContenidoEntidadColaboradoras->add($propietarioContenidoEntidadColaboradora);
  243. $propietarioContenidoEntidadColaboradora->setEntidadColaboradora($this);
  244. }
  245. return $this;
  246. }
  247. public function removePropietarioContenidoEntidadColaboradora(EntidadColaboradoraPropietarioContenido $propietarioContenidoEntidadColaboradora): static
  248. {
  249. if ($this->propietarioContenidoEntidadColaboradoras->removeElement($propietarioContenidoEntidadColaboradora)) {
  250. // set the owning side to null (unless already changed)
  251. if ($propietarioContenidoEntidadColaboradora->getEntidadColaboradora() === $this) {
  252. $propietarioContenidoEntidadColaboradora->setEntidadColaboradora(null);
  253. }
  254. }
  255. return $this;
  256. }
  257. /**
  258. * @return Collection<int, UsuarioHermes>
  259. */
  260. public function getUsuarioHermesFavorito(): Collection
  261. {
  262. return $this->usuarioHermesFavorito;
  263. }
  264. public function addUsuarioHermesFavorito(UsuarioHermes $usuarioHermes): static
  265. {
  266. if (!$this->usuarioHermesFavorito->contains($usuarioHermes)) {
  267. $this->usuarioHermesFavorito->add($usuarioHermes);
  268. $usuarioHermes->addEntidadColaboradorasFavorito($this);
  269. }
  270. return $this;
  271. }
  272. public function removeUsuarioHermesFavorito(UsuarioHermes $usuarioHermes): static
  273. {
  274. if ($this->usuarioHermesFavorito->removeElement($usuarioHermes)) {
  275. $usuarioHermes->removeEntidadColaboradorasFavorito($this);
  276. }
  277. return $this;
  278. }
  279. public function getFullAddress(): string
  280. {
  281. $partes = [];
  282. $tipoVia = $this->getTipoVia() ? TipoViaEnum::{'TIPO_VIA_' . $this->getTipoVia() . '_DESC'}?->value : '';
  283. if ($tipoVia || $this->getDireccion()) {
  284. $partes[] = trim( $tipoVia . ' ' . $this->getDireccion());
  285. }
  286. // Número, piso, planta, puerta, escalera
  287. $detalle = [];
  288. if ($this->getNumero()) {
  289. $detalle[] = 'Nº ' . $this->getNumero();
  290. }
  291. if ($this->getPiso()) {
  292. $detalle[] = 'Piso ' . $this->getPiso();
  293. }
  294. if ($this->getPlanta()) {
  295. $detalle[] = 'Planta ' . $this->getPlanta();
  296. }
  297. if ($this->getPuerta()) {
  298. $detalle[] = 'Puerta ' . $this->getPuerta();
  299. }
  300. if ($this->getEscalera()) {
  301. $detalle[] = 'Escalera ' . $this->getEscalera();
  302. }
  303. if (!empty($detalle)) {
  304. $partes[] = implode(', ', $detalle);
  305. }
  306. // Código postal + población
  307. if ($this->getCp() || $this->getPoblacion()) {
  308. $partes[] = trim($this->getCp() . ' ' . $this->getPoblacion());
  309. }
  310. // Comarca
  311. if ($this->getComarca()?->value) {
  312. $partes[] = $this->getComarca()->value??'';
  313. }
  314. // Provincia
  315. if ($this->getProvincia()) {
  316. $partes[] = $this->getProvincia();
  317. }
  318. // País
  319. if ($this->getPais()) {
  320. $partes[] = $this->getPais();
  321. }
  322. return implode(' - ', $partes);
  323. }
  324. }