Commit Graph

32 Commits

Author SHA1 Message Date
Manus
a0c440dfae Checkpoint: Le seuil d’éligibilité et de validation BAP est centralisé à 90 % dans le serveur et l’interface. Les validations unitaires, TypeScript, build et rendu de la page Factures BAP sont réussis en sandbox. 2026-08-27 13:02:07 +00:00
Manus
b603541adf Checkpoint: Correctifs validés en sandbox : retour contextuel depuis le détail vers Factures BAP avec filtres et tri conservés, et nouvelle action Abonnement Oui/Non/Ne pas modifier dans les automatismes. Ajout de tests de non-régression. 2026-08-26 10:20:20 +00:00
Manus
bcb307bde1 Checkpoint: Tous les boutons d'action (Excel, ZIP, Valider tout BAP, Importer, Supprimer, Dévalider BAP, Relancer) et la recherche sont maintenant sur une seule ligne dans le cartouche vert pastel, avec les filtres période et statut en dessous. 2026-07-30 12:48:20 +00:00
Manus
295ba29329 Checkpoint: Zone de filtres Factures BAP refactorisée en 3 lignes dans un cartouche vert émeraude pastel : ligne 1 (recherche), ligne 2 (filtres période année/mois), ligne 3 (boutons statut + tri aligné à droite). 2026-07-30 12:37:32 +00:00
Manus
b97efb5c57 Checkpoint: Fix: bouton de téléchargement PDF BAP pour factures validées sans PDF (NOVRH VF11521, EVOLUCARE ET098857). Ajout procédure regenerateBapPdf côté serveur + bouton orange RefreshCw côté frontend pour régénérer le PDF à la volée. Déployé en recette et production. 2026-06-17 03:41:18 -04:00
Manus
756f8ab392 fix: stabiliser validatedInvoiceIds avec useMemo pour bouton téléchargement BAP 2026-06-16 12:29:58 -04:00
Manus
b34e145d5d feat: bouton Dévalider BAP, barre actions 2 lignes, suppression colonne Utilisateur 2026-06-15 12:14:25 -04:00
Manus
295965fa57 true message 2026-06-15 11:54:58 -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
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
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
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
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
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
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
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
716b259fe4 Checkpoint: Coloration des valeurs dans Factures BAP (automatique vs manuelle)
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.
2026-02-11 12:39:22 -05:00
Manus
e11d24cb94 Checkpoint: Création de la page Factures BAP et restructuration de l'interface
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).
2026-02-11 11:10:23 -05:00