corentin_wakdo/src
Imugiii 70388318ea
All checks were successful
CI / static-tests (push) Successful in 47s
CI / secret-scan (pull_request) Successful in 9s
CI / php-lint (pull_request) Successful in 23s
CI / static-tests (pull_request) Successful in 47s
CI / js-tests (pull_request) Successful in 25s
CI / secret-scan (push) Successful in 10s
CI / php-lint (push) Successful in 22s
CI / js-tests (push) Successful in 29s
feat(admin): liste des commandes + KPIs de vente (P4)
Ouvre le domaine commande cote back-office (les commandes existent depuis P4 1a/1b
et, depuis la borne L4, sont reellement creees).

- App\Order\OrderQueryRepository (read-side, DatabaseInterface seul) : recent($limit)
  pour la liste admin + salesKpis() (CA encaisse paid+delivered, nb payees, panier
  moyen, CA/nb du jour, total, repartition par statut).
- OrderAdminController : GET /admin/orders, permission order.read, liste lecture seule
  (numero, mode, chevalet, statut, total ttc, date). Les transitions deliver/cancel
  restent aux ecrans operationnels (hors back-office MVP).
- StatsController : ferme la dette "KPIs de vente differes P4" -> section Ventes dans
  /admin/stats (CA, commandes payees, panier moyen, total). Hook orderQuery() = seam.
- Nav "Commandes" (order.read) reactivee dans la sidebar (etait volontairement absente
  tant que la route n'existait pas).
- Tests : OrderQueryRepositoryDbTest (integration, vraie DB : 3) + OrderAdminControllerTest
  (double : guard 403/200 + rendu) + StatsControllerTest (section Ventes). 350 PHP verts,
  PHPStan L6 propre. Routes verifiees live (302 -> login, gardees par SessionGuard).
2026-06-19 18:22:37 +00:00
..
app feat(admin): liste des commandes + KPIs de vente (P4) 2026-06-19 18:22:37 +00:00
public feat(admin): liste des commandes + KPIs de vente (P4) 2026-06-19 18:22:37 +00:00