Commit Graph

86 Commits

Author SHA1 Message Date
Manus
4ef130f21d Checkpoint: OAuth2 IMAP pour Office 365 : ajout du mode d'authentification OAuth2 pour l'import email (Azure AD Client Credentials), sélecteur basic/oauth2 dans l'UI, bouton "Tester la connexion IMAP", procédure testEmailConnection dans le router. Migration DB emailImportAuthMode appliquée. 2026-06-05 05:54:21 -04:00
Manus
22515e5414 feat: date de début de lecture emails dans paramètres import 2026-06-02 10:53:45 -04:00
Manus
94844b0589 feat: bouton Tester l'upload SharePoint + tooltip erreur SP dans historique BAP 2026-05-06 10:18:46 -04:00
Manus
6c21c71660 fix: export SharePoint - erreur remontée au frontend, meilleur parsing URL et détection bibliothèque 2026-05-06 09:41:40 -04:00
Manus
5cb1f878a5 fix: page Paramètres - 2 onglets Import/Export, bug date expiration secret corrigé, chargement optimisé 2026-05-06 09:10:41 -04:00
Manus
6553aee8a6 feat: améliorations SharePoint - test connexion Azure AD, alerte expiration secret, log statut upload dans BapHistory 2026-05-06 07:55:46 -04:00
Manus
766f2b444d feat: intégration Microsoft Graph pour export SharePoint - helper uploadToSharePoint, champs Azure AD en DB et UI 2026-05-06 07:29:23 -04:00
Manus
382ac51943 fix: compteurs statusCounts respectent le filtre de période (cohérence avec la liste affichée) 2026-05-05 10:44:18 -04:00
Manus
cfe6fdf95a fix: corriger le compteur 'À compléter' - affiche uniquement les factures sans BAP validé ET avec champs manquants 2026-05-05 10:38:45 -04:00
Manus
37cc9442da feat: les admins voient toutes les factures/logs/historique BAP, colonne Utilisateur dans Factures 2026-05-03 10:56:20 -04:00
Manus
973cc67603 feat: page rapport détaillé des imports avec filtres, compteurs et détails doublons/erreurs 2026-05-03 10:23:40 -04:00
Manus
4dbc161a5f feat: historique imports - filtres, compteurs et bouton visualisation 2026-05-03 06:41:50 -04:00
Manus
8a02125fe2 fix: getLoginUrl() returns /login when VITE_OAUTH_PORTAL_URL is not set 2026-05-03 06:00:18 -04:00
Manus
54f3f8eeef Checkpoint: Ajout d'un sélecteur Période (année + mois) dans la barre de filtres de Factures BAP, cumulable avec les filtres de statut existants. Le sélecteur mois est désactivé si "Toute année" est sélectionné. Bouton Réinitialiser visible si un filtre est actif. 2026-04-15 08:20:43 -04:00
Manus
62b7a61bf5 Checkpoint: Ajout de la section "Moteur IA" dans les paramètres : sélecteur Mistral/Manus, champs clé API avec affichage masqué, persistance en DB, migration VPS appliquée 2026-04-15 08:04:54 -04:00
Manus
927ab2ff22 Checkpoint: Correction du ReferenceError sur le VPS : isEligibleForBAPValidation déplacée avant filteredInvoices et statusCounts pour éviter l'erreur de hoisting dans le bundle minifié. 2026-04-14 08:24:00 -04:00
Manus
776324f315 Checkpoint: Ajout du filtre "À compléter" dans Factures BAP : affiche toutes les factures dont le bouton BAP n'est pas actif (score < 100%, champs manquants, déjà exportée ou abonnement). Bouton ambré avec compteur dynamique. 2026-04-14 08:19:14 -04:00
Manus
4090678f6f Checkpoint: Accordéon +/- dans Factures BAP : bouton global ChevronsUpDown en en-tête, bouton individuel ChevronRight/Down par ligne, seconde ligne dépliable avec Service/Type achat/Ventilation, colonnes retirées de la ligne principale 2026-04-12 18:31:22 -04:00
Manus
5d0c8fbda9 Checkpoint: Titre et sous-titre sur une ligne dédiée, boutons d'action sur une ligne séparée avec flex-wrap pour éviter le défilement horizontal 2026-04-12 18:17:42 -04:00
Manus
412da0e68f Checkpoint: Ajout du téléchargement groupé ZIP dans Factures BAP, bouton Re-générer dans Historique BAP, filtres Validées BAP / En attente BAP dans Factures BAP 2026-04-12 17:53:38 -04:00
Manus
ba3392b1e4 Checkpoint: La route /api/download-bap accepte maintenant un param filename et le met dans Content-Disposition (RFC 5987). Les fonctions downloadBapPdf dans InvoicesBAP.tsx et BapHistory.tsx passent le filename formaté dans l'URL. 2026-04-12 17:42:15 -04:00
Manus
d1dda66b9a Checkpoint: Bouton Télécharger toujours visible pour les factures en état Validé dans InvoicesBAP, même après rechargement. Le pdfUrl est récupéré depuis bapHistory via une nouvelle route tRPC getBapPdfUrls. Nommage uniforme Date - Fournisseur - N°Facture.pdf sur tous les points d'export. 2026-04-12 17:36:09 -04:00
Manus
bcc421c6a7 Checkpoint: Toutes les restrictions sur les cases à cocher dans Factures BAP ont été supprimées : n'importe quelle facture peut être cochée pour l'export et la relance des automatismes, sans restriction de score ou de champs remplis. 2026-04-12 15:56:17 -04:00
Manus
132f8ccec2 Checkpoint: isSubscription appliqué lors des imports. Seuil de confiance persisté en base (champ learningConfidenceThreshold dans userSettings). LearningSettings.tsx charge et sauvegarde le seuil via settings.get/upsert. 2026-04-12 15:27:19 -04:00
Manus
95aee693ea Checkpoint: Apprentissage déclenché depuis le select Abonnement (OUI/NON) dans la liste Factures (Invoices.tsx). Correction du commentaire erroné dans InvoiceDetail.tsx. 2026-04-12 15:20:13 -04:00
Manus
e80f899498 Checkpoint: Apprentissage déclenché depuis les selects serviceConcerne/typeAchat/ventilation dans la liste Factures BAP. Page Apprentissages IA refaite avec indicateur de confiance (Confirmé/En observation) et seuil configurable. 2026-04-12 15:11:24 -04:00
Manus
3ae1e47ca6 Checkpoint: Bouton Relancer corrigé (automatismes uniquement, sans LLM). Système d'apprentissage complet : table invoiceLearnings, routes tRPC, déclenchement depuis InvoiceDetail, application lors des imports, page LearningSettings dans Configuration > Apprentissages IA. 2026-04-12 14:54:29 -04:00
Manus
120f56bb23 Checkpoint: Ajout d'un champ texte libre qui s'affiche quand "Autre..." est sélectionné dans les selects typeAchat, serviceConcerne et ventilationComptable des règles d'automatisme. Le texte saisi remplace "AUTRE" dans le tampon BAP. Disponible dans les deux modes (wizard et avancé). 2026-04-12 14:40:18 -04:00
Manus
8acfb4eae1 Checkpoint: Ajout route tRPC invoices.reprocessSelected et bouton Relancer (violet) dans la barre d'outils de Factures BAP 2026-04-12 14:20:05 -04:00
Manus
e9c727d679 Checkpoint: Renommage menus (Paramètres IA et Signatures, Paramètres import/export), paramètres export BAP refondus (switches indépendants navigateur+dossier, types local/Teams/SharePoint), historique BAP simplifié (colonnes supprimées, bouton Réexporter), import manuel par dossier entier 2026-04-12 13:47:30 -04:00
Manus
8b12f4fdcb Checkpoint: Modification du nommage des PDFs BAP téléchargés : format "AAAA-MM-JJ - Fournisseur - N°Facture.pdf" dans BapHistory.tsx et InvoicesBAP.tsx. Les paramètres invoiceNumber et validatedAt sont passés à la fonction downloadBapPdf. 2026-04-12 12:23:48 -04:00
Manus
d4fe15c23d Checkpoint: Correction du bouton téléchargement BAP : la route /api/download-bap utilise maintenant un query param pdfPath pour accepter les chemins complets avec sous-dossiers (ex: /storage/2026-04/BAP_xxx.pdf). Ajout d'une route de compatibilité qui cherche dans tous les sous-dossiers. Sécurité anti-path-traversal maintenue. 2026-04-12 10:31:18 -04:00
Manus
9d71f1e34a Checkpoint: Ajout du bouton de téléchargement direct du PDF annoté BAP : route Express /api/download-bap/:filename avec Content-Disposition attachment, bouton Télécharger dans InvoicesBAP (apparaît après validation), boutons Voir + Télécharger dans l'Historique BAP. Correction du layout PDF (2 colonnes) également incluse. 2026-04-12 10:05:02 -04:00
Manus
76554214b2 Checkpoint: Ajout du bouton "Valider tout en BAP" sur la fenêtre Factures BAP : route validateBAPBulk côté serveur (traitement de toutes les factures éligibles en une passe), mutation côté client avec ouverture des PDFs générés, bouton vert dans le header de la page. 2026-04-12 09:40:33 -04:00
Manus
5f7c8c7c7f Checkpoint: Améliorations Factures BAP : suppression colonne Abonnement, mode d'export configurable (navigateur/dossier), génération PDF annoté avec zone blanche (CAPEX/OPEX | BAP | Destinataire + signature du service) lors du clic BAP, historique BAP dans le menu Traçabilité, table bapHistory en DB. 2026-04-12 05:57:02 -04:00
Manus
edf7cc704d Checkpoint: Ajout du filtre destinataire dans la liste des factures (dropdown + recherche textuelle), graphique "Top 10 destinataires" et liste détaillée dans le dashboard, filtre destinataire dans les paramètres SFTP (sftpRecipientFilter) avec application lors de l'export 2026-04-12 05:20:55 -04:00
Manus
604426523d Checkpoint: Ajout complet du champ "Destinataire" (recipientName) dans toute l'application : schéma DB (invoices.recipientName + userSettings.recipientKeywords), extraction IA (prompt LLM + interface), services d'import (email, dossier, upload manuel), interface utilisateur (liste des factures, détail, paramètres mots-clés), règles d'automatisme et configuration des champs LLM obligatoires. 2026-04-12 05:06:06 -04:00
Manus
d8d2ef14da Checkpoint: Connexion locale avec identifiant libre (non-email), compte adminItinova créé, page Login mise à jour avec champ Identifiant 2026-03-22 13:23:16 -04:00
Manus
cd11059a89 Checkpoint: DashboardLayout redirige maintenant vers /login (connexion locale) au lieu d'afficher le bouton Sign in OAuth 2026-03-22 13:15:56 -04:00
Manus
9baa2c0610 Checkpoint: Logo Santinova agrandi à h-24 pour correspondre à la taille du logo Itinova sur la page de connexion 2026-03-22 13:11:28 -04:00
Manus
73edd0c757 Checkpoint: Page de connexion : arrivée directe sur connexion locale, logo Itinova en haut, logo Santinova + "powered by" en bas, renommage en "Gestion facturation" 2026-03-22 13:06:48 -04:00
Manus
ee49992530 Checkpoint: Ajout de l'association Service→Signature dans l'onglet Signatures des Paramètres et apposition automatique de la signature sur les PDFs exportés lors de l'export BAP. Inclut : table serviceSignatures, routes tRPC, interface de configuration, et modification de exportToPdf pour apposer la signature en bas à droite du PDF avec le nom du signataire. 2026-03-14 19:28:50 -04:00
Manus
cf886a1adb Checkpoint: Correction du problème d'affichage du canvas de signature : utilisation d'une callback ref (initCanvas) au lieu d'un useEffect conditionnel pour initialiser le fond blanc du canvas dès son montage dans le DOM 2026-03-14 19:13:45 -04:00
Manus
20be9c6060 Checkpoint: Amélioration de l'onglet Signatures : ajout d'un canvas interactif pour dessiner la signature à la souris/tactile, sélecteur de mode Dessiner/Importer, bouton Effacer, export automatique du canvas en PNG base64 lors de l'enregistrement 2026-03-14 19:07:03 -04:00
Manus
33a82e2ad2 Checkpoint: Ajout de l'onglet "Signatures" dans la page Paramètres : table DB signatures (firstName, lastName, imageKey, imageUrl), migration appliquée, routes tRPC (list, upload, create, delete), composant SignaturesSection avec formulaire d'ajout (prénom+nom+upload image), grille d'affichage des signatures avec aperçu, bouton de suppression au survol 2026-03-14 18:52:47 -04:00
Manus
9868a1afda Checkpoint: Ajout du bouton Validation BAP dans la page Factures BAP : nouveau champ bapValidated/bapValidatedAt dans le schéma, migration DB, route tRPC validateBAP avec vérification des critères (Score 100%, non exportée, isSubscription=0, service+typeAchat+ventilation remplis), bouton vert actif/désactivé avec tooltip explicatif, badge "Validé" pour les factures déjà validées 2026-03-06 04:17:53 -05:00
Manus
f16efa4197 Checkpoint: Checkpoint saved: Améliorations majeures de l'export des factures BAP
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.
2026-02-13 10:33:09 -05:00
Manus
661e477d36 Checkpoint: Checkpoint saved: Ajout de la fonctionnalité d'export intelligent des factures BAP
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.
2026-02-13 10:26:03 -05:00
Manus
4c3b68fda5 Checkpoint: Correction du bug où l'accordéon se refermait après avoir cliqué sur un sous-menu. Maintenant, la section parent reste ouverte automatiquement quand on navigue vers une page enfant. 2026-02-13 04:49:46 -05:00
Manus
8b74f8e0ea Checkpoint: Amélioration du menu accordéon avec comportement exclusif (un seul ouvert à la fois) et design moderne coloré avec dégradés, icônes agrandies, et animations fluides 2026-02-13 04:43:05 -05:00