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.
Nouvelle fonctionnalité visuelle :
✅ Valeurs remplies automatiquement par les règles : affichées en VERT
✅ Valeurs saisies manuellement : affichées en BLEU
✅ Traçage intelligent de l'origine des valeurs (automatique ou manuelle)
✅ Mise à jour automatique de la couleur lors d'une modification manuelle
Architecture technique :
- drizzle/schema.ts : Ajout du champ autoFilledFields (JSON) pour tracer l'origine
- server/automationEngine.ts : Enregistrement des champs remplis automatiquement
- server/routers.ts : Ajout de autoFilledFields dans le schéma d'update
- client/src/pages/InvoicesBAP.tsx : Fonction getFieldColor() pour déterminer la couleur
- Migration 0010_late_thor_girl.sql appliquée avec succès
Fonctionnement :
1. **Import de facture** : Les règles d'automatisme s'appliquent et marquent les champs remplis dans autoFilledFields
2. **Affichage** : La fonction getFieldColor() analyse autoFilledFields pour déterminer la couleur :
- Champ dans autoFilledFields → VERT (rempli automatiquement)
- Champ avec valeur mais pas dans autoFilledFields → BLEU (rempli manuellement)
- Champ vide → Pas de couleur
3. **Modification manuelle** : Lors d'une édition, le champ est retiré de autoFilledFields et passe en BLEU
Bénéfices utilisateur :
- Visibilité immédiate sur l'origine des données
- Confiance accrue dans les automatismes (vert = validé par règle)
- Identification rapide des saisies manuelles nécessitant vérification
- Traçabilité complète du remplissage des champs métier
Cette fonctionnalité améliore considérablement la transparence du système d'automatisation et facilite le contrôle qualité des données.
Nouvelles fonctionnalités :
✅ Nouvelle page "Factures BAP" qui affiche uniquement les factures avec Abonnement = NON (isSubscription = 0)
✅ La page Factures BAP inclut les colonnes Type d'achat et Ventilation comptable avec édition directe
✅ Les colonnes Type d'achat et Ventilation ont été supprimées de la page Factures principale
✅ Menu "Factures BAP" ajouté dans la navigation du DashboardLayout
✅ Route /invoices-bap configurée dans App.tsx
Architecture :
- client/src/pages/InvoicesBAP.tsx : Nouvelle page pour les factures BAP (non-abonnement)
- client/src/pages/Invoices.tsx : Page principale modifiée (colonnes Type d'achat et Ventilation supprimées)
- client/src/App.tsx : Route /invoices-bap ajoutée
- client/src/components/DashboardLayout.tsx : Menu "Factures BAP" ajouté
Fonctionnement :
1. La page "Factures" affiche toutes les factures avec les colonnes : Fournisseur, N° Facture, Date, Montant, Service, Abonnement, Score, Statut, Actions
2. La page "Factures BAP" affiche uniquement les factures non-abonnement (Abonnement = NON) avec les colonnes supplémentaires : Type d'achat et Ventilation comptable
3. Les deux pages conservent toutes les fonctionnalités d'édition directe, export, suppression, etc.
4. Le filtrage est automatique basé sur le champ isSubscription (0 = NON, 1 = OUI)
Cette restructuration permet une meilleure organisation des factures selon leur nature (abonnement ou BAP).