Show real stats on homepage and real sold counts in event categories

- Homepage: count BilletOrders for tickets sold, sum paid orders for totalHT
- Event categories: count BilletOrders per billet for real sold counts
- Remove placeholder text from tickets stat block

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Serreau Jovann
2026-03-21 17:15:34 +01:00
parent d080870bfb
commit 8d772328f7
3 changed files with 13 additions and 3 deletions

View File

@@ -377,7 +377,7 @@ class AccountController extends AbstractController
$categoryBillets = $em->getRepository(Billet::class)->findBy(['category' => $category], ['position' => 'ASC']);
$billets[$category->getId()] = $categoryBillets;
foreach ($categoryBillets as $billet) {
$soldCounts[$billet->getId()] = 0;
$soldCounts[$billet->getId()] = $em->getRepository(BilletOrder::class)->count(['billet' => $billet]);
}
}

View File

@@ -3,6 +3,8 @@
namespace App\Controller;
use App\Entity\Billet;
use App\Entity\BilletBuyer;
use App\Entity\BilletOrder;
use App\Entity\Category;
use App\Entity\Event;
use App\Entity\User;
@@ -26,6 +28,13 @@ class HomeController extends AbstractController
$allUsers = $em->getRepository(User::class)->findAll();
$organizers = \count(array_filter($allUsers, fn (User $u) => \in_array('ROLE_ORGANIZER', $u->getRoles(), true) && $u->isApproved()));
$eventsCount = \count($em->getRepository(Event::class)->findBy(['isOnline' => true, 'isSecret' => false]));
$ticketsSold = $em->getRepository(BilletOrder::class)->count([]);
$paidOrders = $em->getRepository(BilletBuyer::class)->findBy(['status' => BilletBuyer::STATUS_PAID]);
$totalHT = 0;
foreach ($paidOrders as $order) {
$totalHT += $order->getTotalHT();
}
return $this->render('home/index.html.twig', [
'breadcrumbs' => [
@@ -34,7 +43,9 @@ class HomeController extends AbstractController
'stats' => [
'events' => $eventsCount,
'organizers' => $organizers,
'tickets' => 0,
'tickets' => $ticketsSold,
'totalHT' => $totalHT / 100,
'orders' => \count($paidOrders),
],
]);
}

View File

@@ -56,7 +56,6 @@
<div class="group border-4 border-gray-900 p-6 md:p-8 bg-white shadow-[6px_6px_0px_rgba(0,0,0,1)] hover:shadow-[10px_10px_0px_#ec4899] hover:translate-y-[-4px] transition-all">
<p class="text-4xl md:text-6xl lg:text-8xl font-black tracking-tighter">{{ stats.tickets }}</p>
<p class="text-xs md:text-sm font-black uppercase tracking-widest text-gray-500 mt-2">Billets vendus</p>
<p class="text-xs font-bold text-gray-400 mt-1 italic">Billets, reservations, brocantes, votes</p>
</div>
</div>
</div>