Commit Graph

9 Commits

Author SHA1 Message Date
Manus
72c3f503a3 Checkpoint: Système de gestion des automatismes pour remplissage automatique des factures
Nouvelle fonctionnalité majeure :
 Page "Automatismes" complète pour gérer les règles de remplissage automatique
 Système de règles conditionnelles SI...ALORS pour automatiser le remplissage des champs métier
 Support de conditions multiples avec logique AND/OR
 Application automatique des règles lors de l'import de factures
 Gestion de la priorité des règles (ordre d'exécution)
 Activation/désactivation des règles individuelles

Architecture technique :
- drizzle/schema.ts : Table automationRules avec conditions JSON et actions JSON
- server/db.ts : Fonctions CRUD complètes pour les règles (create, update, delete, list)
- server/routers.ts : Routes tRPC pour gérer les automatismes
- server/automationEngine.ts : Moteur d'évaluation et d'application des règles
- client/src/pages/AutomationRules.tsx : Interface complète de gestion des règles
- Migration 0009_regular_warhawk.sql appliquée avec succès

Fonctionnement des règles :
1. **Conditions (SI)** : Définissez des critères basés sur les champs de la facture
   - Champs disponibles : Fournisseur, N° Facture, Montant, Date, N° Commande, N° Bon de livraison
   - Opérateurs : contient, égal à, commence par, finit par, >, <, >=, <=
   - Logique : AND (toutes les conditions) ou OR (au moins une condition)

2. **Actions (ALORS)** : Définissez les champs à remplir automatiquement
   - Type d'achat (CAPEX/OPEX)
   - Service concerné (depuis la liste des services)
   - Ventilation comptable (depuis la liste des ventilations)

3. **Priorité** : Les règles sont appliquées dans l'ordre de priorité
   - Une règle de priorité supérieure ne peut pas être écrasée par une règle de priorité inférieure

4. **Application automatique** : Les règles s'appliquent automatiquement lors de l'import de factures

Exemples d'utilisation :
- SI Fournisseur contient "Microsoft" ET Montant > 1000 ALORS Type d'achat = CAPEX, Service = DSI
- SI Fournisseur contient "EDF" ALORS Type d'achat = OPEX, Ventilation = TOUS
- SI N° Facture commence par "AB" ALORS Service = Administration

Interface utilisateur :
- Liste des règles avec nom, conditions, actions et statut
- Formulaire de création/édition avec interface intuitive
- Boutons d'activation/désactivation rapide
- Suppression avec confirmation
- Affichage lisible des conditions et actions

Cette fonctionnalité permet de gagner un temps considérable en automatisant le remplissage des champs métier selon des règles métier prédéfinies.
2026-02-11 12:35:26 -05:00
Manus
6e04cbe798 Checkpoint: Ajout du paramètre "Dossier d'export" dans les paramètres de réception
Nouvelle fonctionnalité :
 Champ "Dossier d'export" ajouté dans la page Paramètres de réception
 Permet de configurer le chemin du dossier de destination pour l'export des factures
 Stockage en base de données dans la table importSettings
 Interface utilisateur avec carte dédiée et champ de saisie

Modifications techniques :
- drizzle/schema.ts : Ajout du champ exportFolder (type text, nullable) dans la table importSettings
- server/routers.ts : Ajout de exportFolder dans les routes importSettings.get et importSettings.update
- client/src/pages/ImportSettings.tsx : Ajout du state, initialisation, et carte UI pour le dossier d'export
- Migration de base de données : 0008_orange_prism.sql appliquée avec succès

Utilisation :
1. Accéder à "Paramètres de réception" dans le menu
2. Descendre jusqu'à la section "Dossier d'export"
3. Saisir le chemin absolu du dossier (ex: /chemin/vers/dossier/export)
4. Cliquer sur "Enregistrer les paramètres"
5. Le chemin est sauvegardé et pourra être utilisé pour les exports futurs

Ce paramètre permettra de centraliser la configuration du dossier d'export pour toutes les fonctionnalités d'export de l'application.
2026-02-11 12:26:52 -05:00
Manus
4535cd6bdf Checkpoint: Ajout du champ Abonnement (OUI/NON) aux factures avec détection automatique par mots-clés et édition directe dans la liste 2026-02-11 09:54:17 -05:00
Manus
14c50fc8fd Checkpoint: Ajout d'un bouton "Détail" dans la liste des factures pour afficher le texte complet extrait du PDF. Le texte est maintenant demandé à Mistral AI lors de l'extraction et sauvegardé dans la base de données. Une boîte de dialogue affiche le texte complet avec défilement. 2026-02-11 09:30:58 -05:00
Manus
4a8be36d00 Checkpoint: Ajout de 3 champs métier aux factures (Service concerné, Type d'achat, Ventilation comptable) avec interface d'administration pour gérer les listes enrichissables. Les champs apparaissent dans la liste des factures et dans le formulaire d'édition. 2026-02-11 08:03:30 -05:00
Manus
35efbf632d Checkpoint: Checkpoint saved: Ajout d'une page "Paramètres de réception" complète pour configurer les différentes méthodes d'import de factures.
Nouvelles fonctionnalités :
 Table importSettings dans la base de données (7 tables au total)
 Routes tRPC pour gérer les paramètres de réception (get, update)
 Page "Paramètres de réception" accessible via le menu de navigation

Configuration disponible :
1. **Import manuel** : Activation/désactivation de l'upload manuel de fichiers PDF via l'interface

2. **Import automatique depuis dossier** :
   - Activation/désactivation
   - Configuration du chemin du dossier source à surveiller
   - Fréquence de lecture du dossier (en minutes)

3. **Import par email** :
   - Activation/désactivation
   - Configuration du compte email (adresse + mot de passe)
   - Serveur IMAP (host + port)
   - Fréquence de lecture des emails (en minutes)

Interface utilisateur :
- 3 cartes distinctes avec icônes (Upload, FolderOpen, Mail)
- Switches pour activer/désactiver chaque méthode
- Champs de configuration qui apparaissent uniquement si la méthode est activée
- Bouton "Enregistrer les paramètres" avec feedback visuel
- Notifications toast pour confirmer la sauvegarde ou signaler les erreurs

Architecture :
- Schéma de base de données : table importSettings avec 14 colonnes
- Backend : Fonctions db.ts (getImportSettingsByUser, upsertImportSettings)
- Routes tRPC : importSettings.get et importSettings.update
- Frontend : Page ImportSettings.tsx avec gestion d'état React
- Navigation : Nouveau lien "Paramètres de réception" dans le menu latéral

La page est maintenant accessible via /import-settings et permet aux utilisateurs de configurer toutes les méthodes d'importation de factures de manière centralisée.
2026-02-10 12:05:23 -05:00
Manus
d24f7c5569 Checkpoint: Modification de la page Factures avec sélection multiple et export PDF.
Nouvelles fonctionnalités :
- Ajout du champ exportStatus dans la base de données (exported/not_exported/export_error)
- Cases à cocher pour sélection multiple des factures
- Case "Tout sélectionner" (sélectionne uniquement les factures avec score 100%)
- Nouveau système de statuts : Exporté (vert), Non exporté (bleu), Erreur export (rouge)
- Bouton "Exporter" avec compteur de factures sélectionnées
- Validation stricte : seules les factures avec score de qualité 100% peuvent être exportées
- Les factures non éligibles (score < 100%) sont grisées et non sélectionnables
- Téléchargement automatique des PDFs des factures sélectionnées
- Message d'information expliquant la règle des 100%

La page affiche maintenant le statut d'export au lieu du statut de traitement, conformément aux spécifications.
2026-01-08 09:17:29 -05:00
Manus
5a01860aba Checkpoint: Application complète de dématérialisation de facturation avec extraction IA (Mistral), authentification locale + Azure AD, stockage local, et export SFTP.
Fonctionnalités implémentées :
 Authentification locale (email/password) + Azure AD + Manus OAuth
 Upload drag-and-drop de fichiers PDF avec suivi en temps réel
 Extraction automatique avec Mistral AI (OCR + LLM)
 Détection de doublons (fournisseur, numéro, date)
 Score de qualité d'extraction (0-100)
 Tableau de bord avec statistiques
 Liste des factures avec recherche et filtres
 Paramètres utilisateur (LLM, keywords, SFTP)
 Historique des imports avec logs détaillés
 Gestion des utilisateurs (admin)
 Export SFTP manuel/automatique
 Stockage local avec organisation YYYY-MM
 Tests unitaires d'authentification

Architecture :
- Frontend : React 19 + Vite + TailwindCSS + Radix UI
- Backend : Express + tRPC + Drizzle ORM
- Base de données : MySQL (6 tables)
- IA : Mistral AI pour extraction
- Stockage : Local filesystem
- Export : SFTP

Pages :
- Login (choix local/Azure/Manus)
- Dashboard (statistiques)
- Upload (drag-and-drop)
- Invoices (liste avec recherche)
- Settings (LLM, keywords, SFTP)
- History (logs d'import)
- Users (gestion admin)
2026-01-08 06:02:07 -05:00
Manus
205b6061ef Initial project bootstrap 2026-01-08 05:47:56 -05:00