feat(dashboard): KPI vente + graphe CA 7 jours sur l'accueil (stats.read) #117

Merged
Corentin merged 1 commit from feat/dashboard-sales-chart into dev 2026-06-29 13:55:26 +02:00
Owner
No description provided.
feat(dashboard): KPI vente + graphe CA 7 jours sur l'accueil (stats.read)
All checks were successful
CI / js-tests (pull_request) Successful in 36s
CI / php-lint (push) Successful in 22s
CI / static-tests (push) Successful in 54s
CI / js-tests (push) Successful in 33s
CI / secret-scan (pull_request) Successful in 14s
CI / php-lint (pull_request) Successful in 25s
CI / static-tests (pull_request) Successful in 1m0s
CI / secret-scan (push) Successful in 10s
79cc424981
L'accueil back-office n'affichait que 4 compteurs catalogue/stock. Il porte desormais les KPIs de vente deja calcules (salesKpis) + un mini-graphe du CA des 7 derniers jours.

- OrderQueryRepository::salesByDay(7) : CA + nb commandes encaissees par jour, zero-fill ANCRE sur CURDATE() de la base (fenetre stable, pas de drift fuseau PHP/DB).
- DashboardController : enrichit l'accueil avec sales + salesByDay UNIQUEMENT si le role detient stats.read (le CA n'est pas expose a un equipier) ; la page reste accessible a tout utilisateur authentifie (enrichissement conditionnel, pas garde de page).
- Vue : 3 cartes vente (reutilise .stat-card) + graphe SVG INLINE genere serveur (aucun script ni lib CDN -> conforme CSP), role=img + aria-label + <title> par barre.

Tests : gating ventes des deux cotes (DashboardControllerTest) + salesByDay zero-fill/exclusion pending (OrderQueryRepositoryDbTest). 476 unit / 5 integ OrderQuery / PHPStan L6 verts.
Corentin scheduled this pull request to auto merge when all checks succeed 2026-06-29 13:53:06 +02:00
Sign in to join this conversation.
No reviewers
No labels
auto-merge
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
AcadeNice/corentin_wakdo!117
No description provided.