AccessPayer.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace AppBundle\Entity\Billing;
  3. use AppBundle\Annotation\ExportSplitFields;
  4. use AppBundle\Entity\AccessAndFunction\Access;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Dunglas\ApiBundle\Annotation\Iri;
  8. use Symfony\Component\Serializer\Annotation\Groups;
  9. use Symfony\Component\Validator\Constraints as Assert;
  10. use AppBundle\Entity\Traits\TimestampableEntity;
  11. use AppBundle\Entity\Traits\CreatorUpdaterEntity;
  12. /**
  13. * Fais le lien entre l'Access qui règle la facture et l'Access concerné
  14. *
  15. *
  16. * @Iri("http://schema.org/AccessPayer")
  17. */
  18. #[ORM\Entity]
  19. class AccessPayer extends AbstractBillingPayer
  20. {
  21. /**
  22. * @var Access
  23. */
  24. #[Assert\Valid]
  25. #[ORM\ManyToOne(targetEntity: 'AppBundle\Entity\AccessAndFunction\Access', inversedBy: 'billingPayers')]
  26. #[Groups(['accesspayer', 'access_details_billingpayers', 'student_registration_billingreceivers', 'accessbilling_edit_billingreceivers', 'access_intangible_list_access'])]
  27. private $accessPayer;
  28. /**
  29. * @var Access
  30. */
  31. #[Assert\Valid]
  32. #[ORM\ManyToOne(targetEntity: 'AppBundle\Entity\AccessAndFunction\Access', inversedBy: 'billingReceivers')]
  33. #[Groups(['accesspayer', 'access_details_billingpayers', 'student_registration_billingreceivers', 'payer_list_billingpayers', 'accessbilling_edit_billingpayers'])]
  34. private $accessReceiver;
  35. /**
  36. * @var string
  37. * @ExportSplitFields({"accessReceiver.person.name","accessReceiver.person.givenName","paymentPart"})
  38. */
  39. #[Groups(['template', 'payer_list_billingpayers'])]
  40. private $fullLabelReceiverTemplate;
  41. /**
  42. * Set accessPayer
  43. *
  44. * @param \AppBundle\Entity\AccessAndFunction\Access $accessPayer
  45. *
  46. * @return AccessPayer
  47. */
  48. public function setAccessPayer(\AppBundle\Entity\AccessAndFunction\Access $accessPayer)
  49. {
  50. $this->accessPayer = $accessPayer;
  51. return $this;
  52. }
  53. /**
  54. * Get accessPayer
  55. *
  56. * @return \AppBundle\Entity\AccessAndFunction\Access
  57. */
  58. public function getAccessPayer()
  59. {
  60. return $this->accessPayer;
  61. }
  62. /**
  63. * Set accessReceiver
  64. *
  65. * @param \AppBundle\Entity\AccessAndFunction\Access $accessReceiver
  66. *
  67. * @return AccessPayer
  68. */
  69. public function setAccessReceiver(\AppBundle\Entity\AccessAndFunction\Access $accessReceiver)
  70. {
  71. $this->accessReceiver = $accessReceiver;
  72. return $this;
  73. }
  74. /**
  75. * Get accessReceiver
  76. *
  77. * @return \AppBundle\Entity\AccessAndFunction\Access
  78. */
  79. public function getAccessReceiver()
  80. {
  81. return $this->accessReceiver;
  82. }
  83. /**
  84. * @return array
  85. */
  86. public function getFullLabelReceiverTemplate()
  87. {
  88. return [
  89. $this->getAccessReceiver()->getPerson()->getFullNameTemplate(),
  90. $this->getPaymentPart().'%'
  91. ];
  92. }
  93. }