src/Entity/AdditionalRequest.php line 26

Open in your IDE?
  1. <?php
  2. namespace MedBrief\MSR\Entity;
  3. use DH\Auditor\Provider\Doctrine\Auditing\Annotation as Audit;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection as DoctrineCollection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Gedmo\Mapping\Annotation as Gedmo;
  8. use MedBrief\MSR\Entity\Embeddable\RecordsReceived;
  9. use MedBrief\MSR\Entity\Serviceable\ServiceableInterface;
  10. use MedBrief\MSR\Entity\Serviceable\ServiceableTrait;
  11. use MedBrief\MSR\Repository\AdditionalRequestRepository;
  12. /**
  13. * @ORM\Table(name="AdditionalRequest")
  14. *
  15. * @ORM\Entity(repositoryClass=AdditionalRequestRepository::class)
  16. *
  17. * @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false)
  18. *
  19. * @Audit\Auditable
  20. *
  21. * @Audit\Security(view={"ROLE_ALLOWED_TO_AUDIT"})
  22. */
  23. class AdditionalRequest implements ServiceableInterface
  24. {
  25. use ServiceableTrait;
  26. /**
  27. * @var ServiceRequest
  28. *
  29. * @ORM\OneToOne(targetEntity="MedBrief\MSR\Entity\ServiceRequest", mappedBy="additionalRequest", cascade={"persist"})
  30. */
  31. protected $serviceRequest;
  32. /**
  33. * @var int
  34. *
  35. * @ORM\Column(name="id", type="integer")
  36. *
  37. * @ORM\Id
  38. *
  39. * @ORM\GeneratedValue(strategy="IDENTITY")
  40. */
  41. protected $id;
  42. /**
  43. * @var \DateTime|null
  44. *
  45. * @ORM\Column(name="dateReceived", type="date", nullable=true)
  46. */
  47. protected $dateReceived;
  48. /**
  49. * @var \DateTime|null
  50. *
  51. * @ORM\Column(name="dateProcessed", type="date", nullable=true)
  52. */
  53. protected $dateProcessed;
  54. /**
  55. * @var \DateTime|null
  56. *
  57. * @ORM\Column(name="dateDestroyedOrReturned", type="date", nullable=true)
  58. */
  59. protected $dateDestroyedOrReturned;
  60. /**
  61. * @var int|null
  62. *
  63. * @ORM\Column(name="numberOfUnits", type="integer", nullable=true)
  64. */
  65. protected $numberOfUnits;
  66. /**
  67. * @var string|null
  68. *
  69. * @ORM\Column(name="receivedFrom", type="string", nullable=true)
  70. */
  71. protected $receivedFrom;
  72. /**
  73. * @var BillingItem
  74. *
  75. * @ORM\ManyToOne(targetEntity="MedBrief\MSR\Entity\BillingItem")
  76. *
  77. * @ORM\JoinColumns({
  78. *
  79. * @ORM\JoinColumn(name="serviceItem_id", referencedColumnName="id")
  80. * })
  81. */
  82. protected $serviceItem;
  83. /**
  84. * @var Project
  85. *
  86. * @ORM\ManyToOne(targetEntity="MedBrief\MSR\Entity\Project", inversedBy="additionalRequests")
  87. *
  88. * @ORM\JoinColumns({
  89. *
  90. * @ORM\JoinColumn(name="project_id", referencedColumnName="id")
  91. * })
  92. */
  93. protected $project;
  94. /**
  95. * @var RecordsReceived
  96. *
  97. * @ORM\Embedded(class="MedBrief\MSR\Entity\Embeddable\RecordsReceived", columnPrefix="recordsReceived_")
  98. */
  99. protected $recordsReceived;
  100. /**
  101. * @var \DateTime
  102. *
  103. * @ORM\Column(name="created", type="datetime")
  104. *
  105. * @Gedmo\Timestampable(on="create")
  106. */
  107. protected $created;
  108. /**
  109. * @var \DateTime
  110. *
  111. * @ORM\Column(name="updated", type="datetime")
  112. *
  113. * @Gedmo\Timestampable(on="update")
  114. */
  115. protected $updated;
  116. /**
  117. * @var \DateTime|null
  118. *
  119. * @ORM\Column(name="deletedAt", type="datetime", nullable=true)
  120. */
  121. protected $deletedAt;
  122. /**
  123. * @ORM\OneToMany(targetEntity=InterpartyDisclosureRecipientFirm::class, mappedBy="additionalRequest")
  124. */
  125. private ?DoctrineCollection $recipientFirms;
  126. /**
  127. * Constructor
  128. *
  129. * @return void
  130. */
  131. public function __construct()
  132. {
  133. $this->recordsReceived = new RecordsReceived();
  134. $this->recipientFirms = new ArrayCollection();
  135. }
  136. /**
  137. * __toString
  138. *
  139. * @return string
  140. */
  141. public function __toString()
  142. {
  143. return (string) $this->getId();
  144. }
  145. /**
  146. * Get id
  147. *
  148. * @return int
  149. */
  150. public function getId()
  151. {
  152. return $this->id;
  153. }
  154. /**
  155. * Set dateReceived
  156. *
  157. * @param \DateTime $dateReceived
  158. *
  159. * @return AdditionalRequest
  160. */
  161. public function setDateReceived($dateReceived)
  162. {
  163. $this->dateReceived = $dateReceived;
  164. return $this;
  165. }
  166. /**
  167. * Get dateReceived
  168. *
  169. * @return \DateTime
  170. */
  171. public function getDateReceived()
  172. {
  173. return $this->dateReceived;
  174. }
  175. /**
  176. * Set dateProcessed
  177. *
  178. * @param \DateTime $dateProcessed
  179. *
  180. * @return AdditionalRequest
  181. */
  182. public function setDateProcessed($dateProcessed)
  183. {
  184. $this->dateProcessed = $dateProcessed;
  185. return $this;
  186. }
  187. /**
  188. * Get dateProcessed
  189. *
  190. * @return \DateTime
  191. */
  192. public function getDateProcessed()
  193. {
  194. return $this->dateProcessed;
  195. }
  196. /**
  197. * Set dateDestroyedOrReturned
  198. *
  199. * @param \DateTime $dateDestroyedOrReturned
  200. *
  201. * @return AdditionalRequest
  202. */
  203. public function setDateDestroyedOrReturned($dateDestroyedOrReturned)
  204. {
  205. $this->dateDestroyedOrReturned = $dateDestroyedOrReturned;
  206. return $this;
  207. }
  208. /**
  209. * Get dateDestroyedOrReturned
  210. *
  211. * @return \DateTime
  212. */
  213. public function getDateDestroyedOrReturned()
  214. {
  215. return $this->dateDestroyedOrReturned;
  216. }
  217. /**
  218. * Set numberOfUnits
  219. *
  220. * @param int $numberOfUnits
  221. *
  222. * @return AdditionalRequest
  223. */
  224. public function setNumberOfUnits($numberOfUnits)
  225. {
  226. $this->numberOfUnits = $numberOfUnits;
  227. return $this;
  228. }
  229. /**
  230. * Get numberOfUnits
  231. *
  232. * @return int
  233. */
  234. public function getNumberOfUnits()
  235. {
  236. return $this->numberOfUnits;
  237. }
  238. /**
  239. * Set receivedFrom
  240. *
  241. * @param string $receivedFrom
  242. *
  243. * @return AdditionalRequest
  244. */
  245. public function setReceivedFrom($receivedFrom)
  246. {
  247. $this->receivedFrom = $receivedFrom;
  248. return $this;
  249. }
  250. /**
  251. * Get receivedFrom
  252. *
  253. * @return string
  254. */
  255. public function getReceivedFrom()
  256. {
  257. return $this->receivedFrom;
  258. }
  259. /**
  260. * Set created
  261. *
  262. * @param \DateTime $created
  263. *
  264. * @return AdditionalRequest
  265. */
  266. public function setCreated($created)
  267. {
  268. $this->created = $created;
  269. return $this;
  270. }
  271. /**
  272. * Get created
  273. *
  274. * @return \DateTime
  275. */
  276. public function getCreated()
  277. {
  278. return $this->created;
  279. }
  280. /**
  281. * Set updated
  282. *
  283. * @param \DateTime $updated
  284. *
  285. * @return AdditionalRequest
  286. */
  287. public function setUpdated($updated)
  288. {
  289. $this->updated = $updated;
  290. return $this;
  291. }
  292. /**
  293. * Get updated
  294. *
  295. * @return \DateTime
  296. */
  297. public function getUpdated()
  298. {
  299. return $this->updated;
  300. }
  301. /**
  302. * Set deletedAt
  303. *
  304. * @param \DateTime $deletedAt
  305. *
  306. * @return AdditionalRequest
  307. */
  308. public function setDeletedAt($deletedAt)
  309. {
  310. $this->deletedAt = $deletedAt;
  311. return $this;
  312. }
  313. /**
  314. * Get deletedAt
  315. *
  316. * @return \DateTime
  317. */
  318. public function getDeletedAt()
  319. {
  320. return $this->deletedAt;
  321. }
  322. /**
  323. * Set serviceItem
  324. *
  325. * @param BillingItem $serviceItem
  326. *
  327. * @return AdditionalRequest
  328. */
  329. public function setServiceItem(?BillingItem $serviceItem = null)
  330. {
  331. $this->serviceItem = $serviceItem;
  332. return $this;
  333. }
  334. /**
  335. * Get serviceItem
  336. *
  337. * @return BillingItem
  338. */
  339. public function getServiceItem()
  340. {
  341. return $this->serviceItem;
  342. }
  343. /**
  344. * Set project
  345. *
  346. * @param Project $project
  347. *
  348. * @return AdditionalRequest
  349. */
  350. public function setProject(?Project $project = null)
  351. {
  352. $this->project = $project;
  353. return $this;
  354. }
  355. /**
  356. * Get project
  357. *
  358. * @return Project
  359. */
  360. public function getProject()
  361. {
  362. return $this->project;
  363. }
  364. /**
  365. * Set recordsReceived
  366. *
  367. * @param RecordsReceived $recordsReceived
  368. *
  369. * @return AdditionalRequest
  370. */
  371. public function setRecordsReceived(RecordsReceived $recordsReceived)
  372. {
  373. $this->recordsReceived = $recordsReceived;
  374. return $this;
  375. }
  376. /**
  377. * Get recordsReceived
  378. *
  379. * @return RecordsReceived
  380. */
  381. public function getRecordsReceived()
  382. {
  383. return $this->recordsReceived;
  384. }
  385. /**
  386. * @return DoctrineCollection<int, InterpartyDisclosureRecipientFirm>
  387. */
  388. public function getRecipientFirms(): DoctrineCollection
  389. {
  390. return $this->recipientFirms;
  391. }
  392. public function addRecipientFirm(InterpartyDisclosureRecipientFirm $recipientFirm): self
  393. {
  394. if (!$this->recipientFirms->contains($recipientFirm)) {
  395. $this->recipientFirms[] = $recipientFirm;
  396. $recipientFirm->setAdditionalRequest($this);
  397. }
  398. return $this;
  399. }
  400. public function removeRecipientFirm(InterpartyDisclosureRecipientFirm $recipientFirm): self
  401. {
  402. if ($this->recipientFirms->removeElement($recipientFirm)) {
  403. // set the owning side to null (unless already changed)
  404. if ($recipientFirm->getAdditionalRequest() === $this) {
  405. $recipientFirm->setAdditionalRequest(null);
  406. }
  407. }
  408. return $this;
  409. }
  410. }