# Correction : coût formule ne tenant pas compte de la case "Adjuvant Facturable / Produit Correcteur"

## Contexte

Dans le module Formule, écran de composition (`resources/views/formule/form.blade.php`), le bouton
**valider ligne** enregistre une ligne de composition puis recharge le datagrid des compositions
(`table_composition`), qui recalcule et affiche le coût matière de la formule (`cout_formule`).

## Bug identifié

`formule_controller@data_table_composition` (endpoint `GET formule/table_composition`, appelé après
chaque "valider ligne") cumulait `$total_ciment` / `$total_addition` avec **tous** les liants (type 1),
sans exclure ceux cochés "Adjuvant Facturable / Produit Correcteur" (`composition_facturable`).

Ce total sert ensuite au calcul du coût des adjuvants dosés en % du ciment/liant (type 3).

Cette logique était incohérente avec `composition_calcul_trait.php` (utilisé par le bouton **calculer**),
qui exclut bien les liants "Facturable / Produit correcteur" du total ciment/liant utilisé pour les
ratios techniques (E/C, etc.) : `if ($composition->composition_facturable==false) { ... }`.

Conséquence : un liant correcteur coché comptait quand même dans la base de dosage des adjuvants,
faussant (surestimant) le coût matière affiché après validation d'une ligne.

## Correctif

Fichier modifié : [app/Http/Controllers/formule_controller.php](../app/Http/Controllers/formule_controller.php)
(méthode `data_table_composition`, cas `composition_type == 1`).

Le cumul de `$total_ciment` / `$total_addition` est désormais conditionné à
`composition->composition_facturable == 0`, à l'image du trait de calcul technique.
Le coût propre du liant correcteur (`$cout_formule`) continue d'être comptabilisé normalement —
seul son poids dans la base de dosage des adjuvants est exclu.

## Points vérifiés (écartés comme non fautifs)

- Le formulaire JS (lecture/écriture de la case à cocher, envoi en POST) fonctionne correctement.
- La validation serveur (`composition_enregistrer`) enregistre bien `composition_facturable` en base
  (vérifié en base : des lignes avec `composition_facturable = 1` existent bien).
- L'affichage de la colonne "FAC/CORR" du datagrid (icône coché/décoché) est correct.
- La règle métier plafonnant la quantité d'adjuvant (`composition_quantite > produit_maximum`) n'a
  volontairement pas été modifiée : confirmé normal par l'utilisateur.
