Deux nouvelles fonctionnalités implémentées :
✅ **Indicateur visuel d'exportabilité**
- Icône verte ✓ (CheckCircle) dans la colonne Score pour identifier visuellement les factures exportables
- L'icône apparaît uniquement pour les factures qui remplissent tous les critères :
* Score de qualité = 100%
* Type d'achat rempli (CAPEX ou OPEX)
* Service concerné rempli
* Ventilation comptable remplie
- Tooltip "Facture exportable" au survol de l'icône
✅ **Export automatique vers le dossier configuré**
- Les PDFs sont maintenant copiés automatiquement vers le dossier configuré dans les paramètres (exportFolder)
- Création automatique du dossier d'export s'il n'existe pas
- Gestion des erreurs de copie avec messages détaillés
- Notification de succès affichant le nombre de factures exportées et le chemin du dossier
- Mise à jour du statut d'export (exported/export_error) pour chaque facture
- Validation préalable : le dossier d'export doit être configuré avant l'export
Modifications techniques :
- client/src/pages/InvoicesBAP.tsx : Ajout de l'icône CheckCircle dans la colonne Score
- client/src/pages/InvoicesBAP.tsx : Modification du callback onSuccess pour afficher le dossier d'export
- client/src/pages/Invoices.tsx : Mise à jour du callback onSuccess (même modification)
- server/routers.ts : Refonte complète de la route exportToPdf :
* Récupération du paramètre exportFolder depuis importSettings
* Validation que exportFolder est configuré
* Création du dossier d'export avec fs.mkdir (recursive)
* Copie des PDFs avec fs.copyFile depuis storage vers exportFolder
* Gestion des erreurs individuelles par facture
* Retour des informations : exportFolder, copiedCount, liste des factures
Bénéfices utilisateur :
- **Visibilité** : Identification immédiate des factures prêtes à l'export grâce à l'icône verte
- **Automatisation** : Plus besoin d'ouvrir manuellement les PDFs dans le navigateur
- **Organisation** : Les PDFs sont automatiquement copiés dans le dossier de destination
- **Traçabilité** : Notification claire avec le chemin du dossier et le nombre de factures exportées
- **Fiabilité** : Gestion des erreurs avec mise à jour du statut pour chaque facture
Cette amélioration transforme l'export en un processus entièrement automatisé et transparent pour l'utilisateur.
Nouvelle fonctionnalité implémentée :
✅ Sélection automatique des factures exportables uniquement
✅ Critères d'exportabilité renforcés : Score 100% + Type d'achat + Service + Ventilation remplis
✅ Case à cocher générale qui sélectionne toutes les factures exportables
✅ Cases à cocher individuelles désactivées pour les factures non exportables
✅ Bouton "Exporter" actif dès qu'au moins une facture est cochée
✅ Tooltips explicatifs sur les cases à cocher
Modifications techniques :
- client/src/pages/InvoicesBAP.tsx : Fonction isEligibleForExport modifiée avec critères complets
- client/src/pages/InvoicesBAP.tsx : handleSelectAll modifié pour sélectionner uniquement les factures exportables
- client/src/pages/InvoicesBAP.tsx : Ajout de l'attribut disabled sur les checkboxes non exportables
- client/src/pages/InvoicesBAP.tsx : Ajout de tooltips explicatifs
- client/src/pages/InvoicesBAP.tsx : Simplification du bouton "Exporter" (activation dès qu'une facture est cochée)
Fonctionnement :
1. Une facture BAP est exportable si et seulement si :
- Score de qualité = 100%
- Type d'achat rempli (CAPEX ou OPEX)
- Service concerné rempli
- Ventilation comptable remplie
2. La case à cocher générale (en-tête du tableau) sélectionne automatiquement toutes les factures qui remplissent ces critères
3. Les cases à cocher individuelles sont :
- Actives pour les factures exportables
- Désactivées (grisées) pour les factures non exportables
- Avec tooltip explicatif sur les cases désactivées
4. Le bouton "Exporter" s'active dès qu'au moins une facture est cochée et affiche le nombre de factures sélectionnées
Cette fonctionnalité garantit que seules les factures complètes et validées peuvent être exportées, évitant ainsi les erreurs d'export de données incomplètes.
Refonte complète de l'UI/UX de la page Settings pour une expérience plus moderne et ergonomique.
Améliorations apportées:
- Système de Tabs pour organiser les sections (Intelligence AI, Mots-clés, Export SFTP)
- Icônes colorées plus grandes pour chaque section
- Cards modernes avec dégradés de couleurs et bordures
- Badges de statut visuels (Obligatoire/Optionnel, Configuré)
- Animations de transition fluides entre les onglets
- Typographie améliorée avec hiérarchie claire
- Espacements optimisés pour une meilleure lisibilité
- Design responsive amélioré pour mobile
- Boutons et inputs plus grands pour une meilleure ergonomie
L'interface est maintenant plus intuitive, visuellement attractive et facile à utiliser.
Nouvelle fonctionnalité permettant de configurer quels champs sont obligatoires ou optionnels pour atteindre un score de reconnaissance de 100%.
Modifications:
- Nouvelle table llmFieldsConfig dans la base de données
- Routes tRPC pour gérer la configuration (getAll, updateField)
- Interface utilisateur dans la page Paramètres avec tableau et cases à cocher
- Modification du code d'extraction pour générer dynamiquement l'instruction de score
- Initialisation automatique des champs par défaut (supplierName, invoiceNumber, invoiceDate, totalAmount obligatoires)
- Tests unitaires pour valider la fonctionnalité
L'utilisateur peut maintenant personnaliser quels champs doivent être détectés pour qu'une facture atteigne 100% de score.
✅ **Mise à jour automatique des factures BAP**
Le système applique maintenant automatiquement les règles d'automatisme sur toutes les factures BAP existantes lors de la création, modification ou activation d'une règle.
**Déclencheurs de ré-application automatique :**
1. **Création d'une règle active** : Si isActive = 1, toutes les factures BAP sont analysées et mises à jour
2. **Modification d'une règle active** : Si la règle modifiée est active, ré-application immédiate
3. **Activation d'une règle** : Lors du passage de isActive 0 → 1, ré-application automatique
**Fonctionnement :**
- Filtrage automatique des factures BAP (isSubscription = 0)
- Application séquentielle de toutes les règles actives par ordre de priorité
- Mise à jour des champs : Type d'achat, Service concerné, Ventilation comptable
- Traçage des champs auto-remplis dans autoFilledFields pour coloration (vert)
- Invalidation du cache des factures pour rafraîchissement immédiat de l'interface
**Notifications utilisateur :**
- Création : "Règle créée et appliquée aux factures BAP existantes" (si active)
- Modification : "Règle mise à jour et appliquée aux factures BAP existantes" (si active)
- Messages différenciés selon l'état actif/inactif de la règle
**Route API supplémentaire :**
- `automationRules.reapplyToExistingInvoices` : Permet une ré-application manuelle si nécessaire
- Retourne le nombre total de factures BAP et le nombre de factures mises à jour
Architecture technique :
- server/routers.ts : Ajout de la logique de ré-application dans create/update/toggleActive
- server/routers.ts : Nouvelle route reapplyToExistingInvoices pour ré-application manuelle
- server/automationEngine.ts : Utilisation de applyAutomationRules(userId, invoice)
- client/src/pages/AutomationRules.tsx : Notifications différenciées selon le contexte
- client/src/pages/AutomationRules.tsx : Invalidation du cache invoices pour rafraîchissement
Bénéfices utilisateur :
- **Cohérence** : Toutes les factures BAP sont toujours à jour avec les règles actives
- **Gain de temps** : Pas besoin de ré-appliquer manuellement les règles
- **Transparence** : Notifications claires sur l'application automatique
- **Flexibilité** : Possibilité de créer des règles inactives pour tests avant activation
- **Traçabilité** : Coloration verte des champs auto-remplis dans l'interface Factures BAP