# Fiche client : badges d'alerte dans l'en-tête

Des badges s'affichent dans le bandeau noir, empilés et alignés à droite du titre « CLIENT » (resté centré), quel que soit l'onglet ouvert. Le bouton « Basculer tarif », qui occupait cette place, est descendu en haut à droite du cadre « Identification ». Un clic sur un badge ouvre l'onglet concerné, y compris un sous-onglet (l'onglet parent est ouvert d'abord). Rien ne s'affiche pour un client en création.

## Badges

| Badge | Couleur | Condition | Onglet ouvert |
|---|---|---|---|
| Encours > crédit autorisé | rouge (`danger`) | Encours total (réponse de `client_calculer_encours_bl`, factures + BL non facturés) > `client_credit_autorise`, si celui-ci est > 0 | Général |
| Factures échues non réglées | orange (`warning`) | Factures validées hors avoirs, `facture_reste_reglement` > 0, `facture_echeance` < aujourd'hui | Facture |
| Devis à relancer | bleu (`info`) | Devis en cours (`devis_etat` = 0) dont `devis_date_relance` est atteinte (même règle que le filtre « à relancer » de `devis_controller`) | Devis |
| Aucune livraison depuis le … | gris (`secondary`) | Dernier BL non annulé plus ancien que `parametre_client_alerte_jours_livraison`. Un client jamais livré n'est pas en alerte | Bon de livraison |
| Aucune action commerciale (depuis le …) | clair (`light`) | Dernière action passée plus ancienne que `parametre_client_alerte_jours_action`, ou aucune action | Commercial / Contact / Action → Action |

## Fichiers modifiés / créés

- `database/migrations/2026_10_18_1100_V905001_NB_t_parametre_client_alerte.php` (nouveau) : `t_parametre.parametre_client_alerte_jours_livraison` (int, défaut 60) et `parametre_client_alerte_jours_action` (int, défaut 90), 0 = alerte désactivée. Version `9.05.001`. Le `down()` supprime les deux colonnes.
- `resources/views/parametre/index.blade.php` : cadre « Alertes fiche client » en fin d'onglet Client / Chantier.
- `app/Http/Controllers/parametre_controller.php` : validation `integer|min:0` des deux champs.
- `helpers/Modele_helpers.php` : `@property` sur le modèle `parametre`.
- `app/Http/Controllers/client_controller.php` :
  - nouvelle méthode `alertes()` → JSON `{alertes: [{niveau, onglet, texte}]}` ;
  - requêtes partagées avec `synthese()` extraites en méthodes privées `factures_echues()`, `derniere_livraison()`, `derniere_action()`.
- `routes/web/client.php` : `GET client/alertes` (nom `client.alertes`, paramètre `client_id`).
- `resources/views/client/form.blade.php` : conteneur `#client_alertes` dans `#entete`, fonctions JS `badge_alerte()` / `charger_alertes()` (appelée à l'ouverture de la fiche), badge d'encours ajouté dans le retour de `encours_bls()` (pas de second calcul d'encours BL).

## Décisions

- Le badge d'encours est calculé côté vue à partir du calcul d'encours BL déjà lancé à l'ouverture de la fiche, pour ne pas refaire ce calcul coûteux.
- Le délai de relance des devis réutilise `devis_date_relance` (alimentée à partir de `parametre_devis_temps_relance`), sans nouveau paramètre.

## Test

Migration passée en local. `alertes()` appelée sur les clients 2394, 3365 et 6237 : badges « factures échues » et « aucune action commerciale » renvoyés (pas d'action saisie sur la base de dev). Rendu dans le navigateur non testé.
