-- Correctif (26/07/2026) : FournisseurEtatController::cloture() genere un "avoir" residuel (diff<0)
-- marque source='Etat'/id_source=<id_etat> - exactement le meme principe que client_avoir (Vente),
-- mais fournisseur_avoir n'avait pas ces 2 colonnes (contrairement a fournisseur_avance, qui les a
-- deja). Bug trouve en testant : header_donnees() plantait (colonne 'source' inconnue) des qu'un
-- Etat Fournisseur cloture etait consulte, meme sans avoir genere (la requete tourne
-- inconditionnellement). id_etat_remplacement (migration 019) reste reserve a un usage different :
-- "cet avoir est CONSOMME comme methode de reglement d'un etat" (attachement d'un avoir existant),
-- alors que source/id_source marquent "cet avoir est NE de la cloture de cet etat" (comme
-- id_etat_remplacement l'est deja sur fournisseur_avance).
ALTER TABLE `fournisseur_avoir`
  ADD COLUMN `source` VARCHAR(20) NULL AFTER `id_fournisseur`,
  ADD COLUMN `id_source` INT(11) NOT NULL DEFAULT 0 AFTER `source`;
