# KPI finance : nouvelle feuille

## Fonctionnalité
Nouvelle page `/kpi/finance` (menu Statistique > KPI finance). Filtres : société (« Toutes » par défaut) et année, comme dans l'onglet Synthèse de la fiche client. On peut choisir les années qui ont des factures, ainsi que l'année en cours. Pour l'année en cours, la période va du 1er janvier à aujourd'hui ; pour une année passée, c'est l'année complète. La période retenue s'affiche à côté des filtres. Les données se rechargent en Ajax à chaque changement de filtre.

Indicateurs :
- CA facturé HT, avoirs déduits, avec la valeur N-1 et l'évolution en % (en vert si hausse, en rouge si baisse)
- montant HT des avoirs et nombre d'avoirs, avec la valeur N-1 et l'évolution en %. Couleurs inversées : une hausse des avoirs s'affiche en rouge
- volume de béton facturé (m³), avec la valeur N-1 et l'évolution en %. N-1 couvre la même période décalée d'un an (au jour près pour l'année en cours), comme dans l'onglet Synthèse
- factures échues non réglées : reste à régler TTC et nombre de factures, **à ce jour** (ne dépend pas de la période)
- CA HT mensuel de janvier à décembre, année N comparée à l'année N-1 complète (barres, rien pour les mois futurs de N)
- répartition du CA par type de ligne (camembert : béton, granulat, adjuvant, ajout, service, transport)
- top 10 des clients en CA et en m³
- top 10 des chantiers en CA et en m³, libellés « code client / code chantier nom (réf. chantier) », la référence chantier (`chantier_ref_chantier`) seulement si elle est saisie
- prix moyen HT du béton (€/m³) et volume de béton par mois, sur les 3 derniers exercices (courbes superposées)

## Règles de calcul (les mêmes que l'onglet Synthèse de la fiche client)
- Toutes les factures comptent, validées en comptabilité ou non, comme dans les statistiques standard de CA. Le filtre `facture_validee = 1` a été retiré le 2026-10-19 : sur une base où la compta n'avait encore rien validé (demoalfi), tous les indicateurs étaient à zéro.
- Les avoirs sont enregistrés en montant positif : ils sont déduits du CA mais ne retirent pas de volume.
- Béton = lignes de facture de type `F`, volume = `ligne_facture_qte`.
- CA des clients : calculé sur le total HT des factures. CA des chantiers : calculé sur les lignes (chantier de la ligne).
- Exercices : `t_exercice` ne contient qu'un exercice pluriannuel (2020-2030). On découpe donc des périodes de 12 mois à partir du jour et du mois de début de l'exercice de la société, ou à partir de janvier si « Toutes » est sélectionné. Les 3 exercices affichés sont celui qui contient la fin de la période et les 2 précédents.

## Fichiers
- `app/Http/Controllers/kpi_finance_controller.php` (nouveau) : `index()` (page) et `donnees()` (toutes les données en JSON)
- `resources/views/kpi/finance.blade.php` (nouveau) : en-têtes de carte verts, comme la pesée pont bascule. Graphiques Chart.js 2.
- `routes/web/kpi.php` : routes `kpi.finance` et `kpi.finance_donnees`
- `public/inc/haut.inc.php` : entrée de menu « KPI finance »

## Navigation KPI / KPI finance
Une barre de navigation en étapes relie les deux feuilles. C'est le même composant que sur le dashboard : un clic sur une étape, ou les flèches gauche/droite du clavier, change de feuille.
- `resources/views/partials/step_navigation.blade.php` : les étapes peuvent maintenant être passées en paramètre (`step_navigation_steps`). Sans paramètre, ce sont toujours les étapes du dashboard.
- `resources/views/kpi/navigation.blade.php` (nouveau) : les étapes KPI production → KPI finance, incluses en haut de `kpi/index.blade.php` et de `kpi/finance.blade.php`.

## Renommage KPI → KPI production
La feuille KPI s'appelle maintenant « KPI production » à trois endroits : l'entrée du menu (`public/inc/haut.inc.php`), le titre de la page (`kpi/index.blade.php`) et la navigation (`kpi/navigation.blade.php`). L'URL `/kpi` et les noms de routes `kpi.*` ne changent pas.

## Détail des indicateurs en DataTable
Un clic sur les cartes CA facturé, Montant des avoirs, Volume béton facturé ou Factures échues non réglées ouvre une modale. Elle contient une DataTable avec le détail facture par facture, chargé à l'ouverture, ainsi que le nombre de lignes et le total.
- Route `kpi.finance_detail` (`GET /kpi/finance/detail`, paramètres `indicateur` = `ca` | `avoirs` | `volume` | `echu`, plus `societe_id` et `annee`) → `kpi_finance_controller::detail()`.
- Colonnes :
  - ca : N°, date, type (facture/avoir), client, chantier, montant HT signé ;
  - avoirs : N°, date, client, chantier, motif (`t_motif_avoir`), montant HT ;
  - volume : N°, date, client, chantier, volume béton, HT béton (factures hors avoirs ayant des lignes F) ;
  - echu : N°, date, échéance, jours de retard (tri par défaut), client, chantier, montant TTC, reste à régler TTC.
- Le N° ouvre la facture dans un nouvel onglet (`facture_laravel.formulaire`).
- Le total du détail est toujours égal à l'indicateur, car la période et les requêtes de base sont partagées : `periode()`, `facturesQuery()`, `facturesEchuesQuery()`. Vérifié sur 2026 : CA, avoirs, volume et échu identiques au centime.
- DataTables reçoit les valeurs brutes, formatées seulement à l'affichage, pour que le tri et la recherche sur les montants et les dates fonctionnent.
