AccessPayer.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity\Billing;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use App\Repository\Billing\AccessPayerRepository;
  6. use App\Entity\Access\Access;
  7. use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
  8. use Doctrine\ORM\Mapping as ORM;
  9. /**
  10. * @todo : A la suite de la migration, il faut supprimer le nom de la table pour avoir une table AccessPayer, et supprimer l'attribut discr.
  11. *
  12. * Fais le lien entre l'Access qui règle la facture et l'Access concerné
  13. *
  14. */
  15. #[Auditable]
  16. #[ApiResource(
  17. collectionOperations:[],
  18. itemOperations: [
  19. "get" => ["security" => "is_granted('ROLE_ADMIN') and object.getAccessPayer().getOrganization().getId() == user.getOrganization().getId()"]
  20. ]
  21. )]
  22. #[ORM\Table(name: 'BillingPayer')]
  23. #[ORM\Entity(repositoryClass: AccessPayerRepository::class)]
  24. class AccessPayer extends AbstractBillingPayer
  25. {
  26. #[ORM\Column(length: 255, nullable: false)]
  27. private string $discr = 'access';
  28. #[ORM\ManyToOne(inversedBy: 'billingPayers')]
  29. private ?Access $accessPayer = null;
  30. #[ORM\ManyToOne(inversedBy: 'billingReceivers')]
  31. private ?Access $accessReceiver = null;
  32. public function setAccessPayer(?Access $accessPayer): self
  33. {
  34. $this->accessPayer = $accessPayer;
  35. return $this;
  36. }
  37. public function getAccessPayer():?Access
  38. {
  39. return $this->accessPayer;
  40. }
  41. public function setAccessReceiver(?Access $accessReceiver): self
  42. {
  43. $this->accessReceiver = $accessReceiver;
  44. return $this;
  45. }
  46. public function getAccessReceiver():?Access
  47. {
  48. return $this->accessReceiver;
  49. }
  50. }