POST/PATCH/DELETE renvoient 405. * * Referentiel statique : pas de Timestampable/Blamable (whiteliste dans * EntitiesAreTimestampableBlamableTest::EXCLUDED, comme CategoryType). Le * groupe `client:read:accounting` permet d'embarquer le mode dans la reponse * d'un Client (onglet Comptabilite) au lieu d'un IRI. */ #[ApiResource( operations: [ new GetCollection( security: "is_granted('commercial.clients.view')", normalizationContext: ['groups' => ['tva_mode:read']], // Tri par defaut spec M1 § 4.7 : position ASC puis label ASC // (ordre des selecteurs comptables) — provider Doctrine par defaut. order: ['position' => 'ASC', 'label' => 'ASC'], // ERP-72 : pagination serveur sur toute collection autonome. Le // toggle client est desactive globalement, on l'active ici pour // permettre ?pagination=false (alimenter un entier). paginationClientEnabled: true, ), new Get( security: "is_granted('commercial.clients.view')", normalizationContext: ['groups' => ['tva_mode:read']], ), ], security: "is_granted('commercial.clients.view')", )] #[ORM\Entity(repositoryClass: DoctrineTvaModeRepository::class)] #[ORM\Table(name: 'tva_mode')] #[ORM\UniqueConstraint(name: 'uq_tva_mode_code', columns: ['code'])] class TvaMode { #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] #[Groups(['tva_mode:read', 'client:read:accounting'])] private ?int $id = null; #[ORM\Column(length: 30)] #[Groups(['tva_mode:read', 'client:read:accounting'])] private ?string $code = null; #[ORM\Column(length: 120)] #[Groups(['tva_mode:read', 'client:read:accounting'])] private ?string $label = null; #[ORM\Column(options: ['default' => 0])] #[Groups(['tva_mode:read'])] private int $position = 0; public function getId(): ?int { return $this->id; } public function getCode(): ?string { return $this->code; } public function setCode(string $code): static { $this->code = $code; return $this; } public function getLabel(): ?string { return $this->label; } public function setLabel(string $label): static { $this->label = $label; return $this; } public function getPosition(): int { return $this->position; } public function setPosition(int $position): static { $this->position = $position; return $this; } }