Add isInvitation to BilletOrder, orga details in PDF footer, rename Sortie libre

- Add isInvitation (nullable bool) to BilletOrder: null=no badge, true=invitation
- PDF footer: add SIRET, email, phone of organizer
- PDF: show invitation badge based on ticket.isInvitation instead of design
- Rename "Sortie libre" to "Sortie - Entree illimitee"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Serreau Jovann
2026-03-21 16:36:29 +01:00
parent fba654fad7
commit e1e98e752d
4 changed files with 62 additions and 2 deletions

View File

@@ -21,6 +21,7 @@ class BilletOrderTest extends TestCase
self::assertSame(0.0, $ticket->getUnitPriceHTDecimal());
self::assertSame(BilletOrder::STATE_VALID, $ticket->getState());
self::assertTrue($ticket->isValid());
self::assertNull($ticket->isInvitation());
self::assertNull($ticket->getFirstScannedAt());
self::assertMatchesRegularExpression('/^ETICKET-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}$/', $ticket->getReference());
self::assertInstanceOf(\DateTimeImmutable::class, $ticket->getCreatedAt());
@@ -82,6 +83,18 @@ class BilletOrderTest extends TestCase
self::assertTrue($ticket->isValid());
}
public function testSetAndGetIsInvitation(): void
{
$ticket = new BilletOrder();
$result = $ticket->setIsInvitation(true);
self::assertTrue($ticket->isInvitation());
self::assertSame($ticket, $result);
$ticket->setIsInvitation(null);
self::assertNull($ticket->isInvitation());
}
public function testSetAndGetFirstScannedAt(): void
{
$ticket = new BilletOrder();