---
suivi: 1745
date: 2026-09-29
sujet: RIB obligatoire, création et recherche sur les demandes fournisseur
chantier: comptabilite
type: evolution
statut: poussé
hash:
fichiers:
  - app/Http/Controllers/DemandeFournisseurController.php
  - app/Http/Controllers/Admin/DemandeFournisseurAdminController.php
  - app/Services/DemandesFournisseurs/DemandeFournisseurRechercheService.php
  - resources/js/Components/DemandeFournisseurDialog.vue
  - resources/js/Pages/Admin/DemandesFournisseurs/Index.vue
  - routes/web.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - tests/Feature/DemandeFournisseurRibRecherche1745Test.php
  - tests/Feature/DemandeFournisseurAlerte1742Test.php
  - tests/Feature/DemandeFournisseurStoreTest.php
  - public/build/
  - docs/suivi/SUIVI_1745_demande_fournisseur_rib_recherche.md
---

# SUIVI #1745 — RIB, création et recherche

## PROMPT ENVOYÉ

RIB obligatoire à la création (document, IBAN, BIC). Bouton Nouvelle demande sur la liste, même fenêtre. Recherche nom, SIRET ou identifiant Sage dans le référentiel et les demandes. Avertissement si le SIRET existe déjà, sans bloquer.

## FICHES LUES

- #1742 LEÇON — la tâche se ferme seulement si la raison est dans le match ; le compteur lit les groupes bruts ; Teams ne part pas d'une commande. Impact : le bouton de la liste poste sur la même création, qui ouvre déjà la tâche. Valider et rejeter ne sont pas touchés.

## CONSTAT

IBAN, BIC et rib_path existent déjà, nullables, depuis la création de la table. Pas de migration. La validation de création les laissait facultatifs. La fenêtre est unique. La création Sage envoie déjà l'IBAN et le BIC quand l'IBAN est rempli : ce lot ne modifie pas cet envoi.

## SYNTHÈSE

La création refuse sans document (PDF, JPG ou PNG, 5 Mo, disque local, dossier ribs), sans IBAN valide (clé ISO 13616, via le validateur déjà utilisé sur la fiche fournisseur) ou sans BIC de 8 ou 11 caractères. Les valeurs sont enregistrées sans espaces, en majuscules. Une demande déjà en base sans RIB n'est pas revérifiée.

La liste ouvre la même fenêtre. Après envoi, la liste se recharge. La recherche et la page ont le même accès : tout utilisateur connecté ; la comptabilité, la DSI, l'admin ERP ou la permission de validation voient toutes les demandes, les autres seulement les leurs. Le référentiel fournisseurs est consultable par qui ouvre la page. L'avertissement SIRET regarde tous les fournisseurs et toutes les demandes en attente, et n'empêche pas l'envoi.

## MAPPING

Pas de nouveau choix à poster. Affichage des statuts déjà stockés :

| Libellé affiché | Valeur | Colonne | Libellé back |
| actif | actif | fournisseurs.statut | actif |
| inactif | inactif | fournisseurs.statut | inactif |
| En attente | en_attente | demandes_fournisseurs.statut | En attente |
| Validé | valide | demandes_fournisseurs.statut | Validé |
| Rejeté | rejete | demandes_fournisseurs.statut | Rejeté |

## DÉPLOIEMENT-TEST

git pull origin main
php artisan view:clear
php artisan route:clear
php artisan journal:sync

Pas de migration.

1. Nouvelle demande sans document, ou avec un IBAN faux, ou un BIC trop court : refus.
2. Demande complète depuis la liste : elle apparaît, la comptabilité a la tâche.
3. Recherche DTMA, un identifiant Sage, un SIRET : le fournisseur s'affiche. Nom inconnu : Faire une demande, nom ou SIRET prérempli.
4. SIRET déjà connu : avertissement, envoi possible.
5. Ancienne demande sans RIB : le tiret et « Aucun RIB joint » restent.

## LEÇON

L'IBAN et le BIC étaient déjà des colonnes nullables, et la création Sage les envoie déjà dès que l'IBAN est rempli. Les rendre obligatoires ne demande pas un second canal vers Sage. Une expression SQL trop imbriquée pour plier les accents dépasse la pile de SQLite : en MySQL, une collation insensible aux accents suffit.
