Files
demat-facturation/todo.md
Manus 63c2afea1f Checkpoint: Ajout des filtres par statut d'export, export Excel et page de détail avec édition manuelle.
Nouvelles fonctionnalités :

1. Filtres par statut d'export :
   - Boutons de filtre rapide (Tous/Exportés/Non exportés/Erreurs)
   - Compteurs dynamiques pour chaque statut
   - Couleurs distinctives (vert/bleu/rouge)

2. Export Excel :
   - Nouveau bouton "Excel" dans la page Factures
   - Génération automatique de fichier .xlsx avec toutes les métadonnées
   - Colonnes : Fournisseur, N° Facture, Date, N° BL, N° Commande, Montant, Score, Statut, Dates

3. Page de détail de facture (/invoices/:id) :
   - Visualisation PDF intégrée dans iframe
   - Affichage des métadonnées extraites
   - Mode édition avec formulaire complet
   - Recalcul automatique du score de qualité après édition
   - Marquage "Modifié manuellement"
   - Badges de statut et qualité
   - Lien cliquable sur le nom du fournisseur dans la liste

L'application offre maintenant une expérience complète de gestion des factures avec filtrage avancé, exports multiples et édition manuelle.
2026-01-08 10:19:05 -05:00

4.7 KiB

Invoice Analyzer - TODO

Phase 1: Base de données et schéma

  • Créer table users avec support authentification locale + Azure AD
  • Créer table sourceFiles pour fichiers PDF uploadés
  • Créer table invoices pour factures extraites
  • Créer table userSettings pour paramètres utilisateur
  • Créer table importLogs pour historique des imports
  • Créer table llmLogs pour logs des appels LLM
  • Pousser les migrations avec pnpm db:push

Phase 2: Authentification

  • Implémenter authentification locale (email/password avec bcrypt)
  • Implémenter authentification Azure AD avec MSAL
  • Créer helpers de génération de tokens JWT
  • Créer middleware de vérification des rôles (user/admin)

Phase 3: Stockage et extraction IA

  • Créer helper de stockage local avec préfixe YYYY-MM
  • Implémenter extraction PDF avec Mistral OCR
  • Implémenter extraction de métadonnées avec Mistral LLM
  • Créer système de scoring de qualité (0-100)
  • Implémenter détection de doublons
  • Créer helper de génération de fichiers JSON de métadonnées
  • Implémenter logger LLM pour debug

Phase 4: Export SFTP

  • Créer helper de connexion SFTP
  • Implémenter export manuel de factures
  • Implémenter export automatique de factures
  • Créer test de connexion SFTP

Phase 5: Routes tRPC

  • Routes auth (me, loginLocal, getAzureLoginUrl, logout)
  • Routes invoices (upload, list, getById, update, delete, search, getStats)
  • Routes sourceFiles (getByIds pour polling)
  • Routes settings (get, upsert)
  • Routes admin (createUser, getAllUsers, updatePassword, toggleActive, deleteUser)
  • Routes sftp (testConnection, exportInvoices)
  • Routes importLogs (getByUser)
  • Routes llmLogs (getBySourceFile, getByInvoice)

Phase 6: Pages Frontend

  • Page Login avec formulaire local + bouton Azure AD
  • Page Dashboard avec statistiques et graphiques
  • Page Upload avec drag-and-drop et suivi temps réel
  • Page Invoices avec liste, recherche, filtres, pagination
  • Page Settings avec configuration LLM, keywords, SFTP
  • Page History avec logs et détails
  • Page Users (admin) pour gestion des utilisateurs
  • Layout avec navigation adaptée (DashboardLayout)
  • Configuration des routes dans App.tsx

Phase 7: Tests et finalisation

  • Tests unitaires d'authentification (hashPassword, verifyPassword, JWT)
  • Tests de logout avec cookies multiples
  • Vérification du build et de la compilation TypeScript
  • Vérification du serveur de développement
  • Créer le checkpoint final

Corrections et améliorations

  • Créer un utilisateur administrateur avec login adminServFacturation

  • Tester la connexion locale avec le nouvel utilisateur

  • Modifier l'email de l'administrateur de adminServFacturation à o.pareige@itinova.org

  • Diagnostiquer le problème de connexion locale avec o.pareige@itinova.org

  • Corriger l'authentification locale (ajout support cookie auth_token)

Amélioration du Dashboard

  • Créer route tRPC pour statistiques détaillées (factures par semaine, top fournisseurs)
  • Créer cartes de statistiques (Factures traitées, Montant total, Score moyen, Dernière activité)
  • Créer graphique en barres des factures par semaine (Recharts)
  • Créer graphique circulaire du top 10 fournisseurs (Recharts)
  • Créer liste détaillée des fournisseurs avec nombre de factures
  • Ajouter bouton "Voir les statistiques détaillées"

Modification page Factures - Export PDF

  • Ajouter champ exportStatus dans le schéma invoices (exported/not_exported/export_error)
  • Ajouter champ exportedAt dans le schéma invoices (déjà existant)
  • Créer route tRPC pour exporter les factures en PDF
  • Créer route tRPC pour mettre à jour le statut d'export
  • Ajouter cases à cocher pour sélection multiple dans la page Factures
  • Ajouter case "Tout sélectionner"
  • Modifier l'affichage des statuts (Exporté/Non exporté/Erreur export)
  • Ajouter bouton "Exporter" (actif uniquement pour score 100%)
  • Implémenter le téléchargement de PDF pour les factures sélectionnées
  • Valider que seules les factures avec score 100% peuvent être exportées

Nouvelles fonctionnalités

  • Ajouter des boutons de filtre par statut d'export (Tous/Exportés/Non exportés/Erreurs)
  • Créer route tRPC pour export Excel
  • Créer page InvoiceDetail avec visualisation des métadonnées
  • Ajouter formulaire d'édition manuelle des champs
  • Implémenter la mise à jour des métadonnées
  • Recalculer le score de qualité après édition manuelle
  • Ajouter bouton "Export Excel" dans la page Factures
  • Générer fichier Excel avec toutes les métadonnées