---
suivi: 1746
date: 2026-09-30
sujet: Reconnaissance du fournisseur par SIRET, SIREN ou TVA
chantier: comptabilite
type: evolution
statut: poussé
hash:
fichiers:
  - app/Services/FournisseurFactureReconnaissanceService.php
  - app/Services/DepotFactureClaudeAnalysisService.php
  - app/Http/Controllers/DepotFactureController.php
  - resources/js/Pages/DepotFactures/DepotFactureSaisieForm.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - tests/Feature/FournisseurFactureReconnaissance1746Test.php
  - tests/Unit/DepotFactureClaudeAnalysisFournisseurMatchTest.php
  - public/build/
  - docs/suivi/SUIVI_1746_reconnaissance_fournisseur_siret.md
---

# SUIVI #1746 — Reconnaissance fournisseur

## PROMPT ENVOYÉ

Reconnaître le fournisseur d'une facture par SIRET, puis SIREN, puis TVA, puis le nom. Ignorer les identifiants des sociétés du groupe. Afficher comment il a été reconnu. Plusieurs établissements : liste, rien d'imposé.

## FICHES LUES

- #1745 constat : table fournisseurs, colonnes nom, siret, intacct_id, statut. Pas de colonne SIREN ni TVA.
- #1550 : la saisie affiche déjà fournisseur_match_methode. La nouvelle mention s'appuie sur le même résultat.

## CONSTAT

L'extraction OCR du dépôt (DepotFactureClaudeAnalysisService, prompt vers la ligne 152) lit fournisseur_siret, fournisseur_tva_intracom et destinataire_siret. La reconnaissance (resoudreFournisseurSuggere, avant ce lot) comparait le SIRET en égalité stricte sur 14 chiffres, puis une colonne tva_intracom absente de fournisseurs, puis le nom normalisé. Un SIREN (9 chiffres) ou une TVA ne retrouvait donc pas le SIRET de la fiche. La saisie refaisait une comparaison locale (SIRET puis nom exact) dans DepotFactureSaisieForm.vue. OcrFactureService extrait aussi fournisseur_siret mais ne propose pas de fournisseur.

entites.siret existe (migration 2026_05_07_142000). Pas de colonne TVA sur entites. Le SIREN du groupe est les 9 premiers chiffres de ce SIRET. La base locale a refusé la connexion : les comptages n'ont pas été exécutés.

## SYNTHÈSE

Une fonction, FournisseurFactureReconnaissanceService::reconnaitre, sert l'analyse OCR et la page de saisie. Le choix déjà saisi n'est pas écrasé. La création Sage, la comptabilisation, le paiement et les doublons ne sont pas modifiés.

## DÉPLOIEMENT-TEST

git pull origin main
php artisan view:clear

Pas de migration. Pas de route:clear.

SQL de comptage (non exécuté ici, MySQL local injoignable) :

SELECT COUNT(*) AS avec_siret FROM fournisseurs WHERE siret IS NOT NULL AND TRIM(siret) <> '';

SELECT LEFT(REPLACE(REPLACE(REPLACE(REPLACE(siret, ' ', ''), '.', ''), '-', ''), '/', ''), 9) AS siren, COUNT(*) AS n FROM fournisseurs WHERE siret IS NOT NULL AND TRIM(siret) <> '' GROUP BY LEFT(REPLACE(REPLACE(REPLACE(REPLACE(siret, ' ', ''), '.', ''), '-', ''), '/', ''), 9) HAVING COUNT(*) > 1;

Test réel après déploiement : déposer une facture d'un fournisseur dont le SIRET est sur la fiche. La mention doit dire reconnu par SIRET, même si le nom lu est faux.

## LEÇON

La colonne fournisseurs.siret fait 14 caractères : un SIRET avec espaces n'y tient pas. L'échec venait du SIREN et de la TVA, pas d'un format stocké. Ne pas réintroduire une seconde comparaison dans la page.
