Commit Graph

92 Commits

Author SHA1 Message Date
Manus
43fc8d523c Checkpoint: Page Factures abonnements ajoutée après Factures BAP ; filtres Année/Mois et filtres de la page Factures disponibles sur les deux listes ; déploiements recette et production vérifiés. 2026-08-29 18:52:49 +00:00
Manus
cd73dd3d58 Checkpoint: Préparation du déploiement production de la page Factures abonnements et de ses filtres Année/Mois après validation de la recette. 2026-08-29 18:45:38 +00:00
Manus
e2d067ff4b Checkpoint: Ajout de la page Factures abonnements, accessible après Factures BAP, partageant les recherches, filtres et actions de la page Factures. Filtres Année et Mois ajoutés aux deux listes, avec règle date de facture puis réception. 2026-08-29 18:32:12 +00:00
Manus
0b01ebe331 Checkpoint: Seuil BAP unifié à 90 % dans le serveur et l’interface, déployé en recette et production. Les deux environnements répondent HTTP 200, les conteneurs sont actifs et les bundles BAP correspondent au correctif. 2026-08-27 14:29:52 +00:00
Manus
a9a2a4b312 Checkpoint: Seuil BAP à 90 % validé en sandbox et recette. Le manifeste est rétabli vers le dépôt Gitea de production avant promotion ; le suivi du rétablissement recette est mis à jour. 2026-08-27 14:22:06 +00:00
Manus
deb5b5735c chore: préparer le déploiement recette du seuil BAP à 90
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 54m40s
2026-08-27 13:20:18 +00:00
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
a88b342a0d Checkpoint: Filtre par type d’action des automatismes déployé en recette puis production. Les catégories Type d’achat, Service, Ventilation, Abonnement, Abonnement Oui et Abonnement Non sont disponibles. Contrôles HTTP, conteneurs, commit et bundle réussis sur les deux environnements. 2026-08-27 10:16:24 +00:00
Manus
7e1253615b chore: suivre le déploiement du filtre par action 2026-08-27 10:09:52 +00:00
Manus
1a7d5cb64e chore: suivre le déploiement du filtre d actions
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 9m49s
2026-08-27 09:46:34 +00:00
Manus
0536035303 Checkpoint: Ajout d’un filtre par action dans la liste des automatismes, avec catégories Type d’achat, Service, Ventilation, Abonnement, Abonnement Oui et Abonnement Non. Tests, TypeScript, build et rendu visuel validés en sandbox. 2026-08-27 07:02:36 +00:00
Manus
d7677df41b Checkpoint: Correctif Abonnement visible dans les automatismes déployé en recette puis production. Production validée : commit d9c1130, conteneur sain, HTTP 200 et bundle AutomationRules vérifié. 2026-08-26 12:51:08 +00:00
Manus
d9c1130359 Checkpoint: Préparation du déploiement production du correctif de visibilité Abonnement : manifeste restauré vers le dépôt Gitea production et tâches de vérification tracées. 2026-08-26 12:41:50 +00:00
Manus
401659ec99 Checkpoint: Action Abonnement rendue immédiatement visible dans le bloc Actions des automatismes. Rebuild recette finalisé après arrêt autorisé du processus non applicatif saturant le serveur ; HTTP 200 et bundle validé. 2026-08-26 12:11:40 +00:00
Manus
3528fc6905 Checkpoint: L’option Abonnement est remontée en tête des actions du dialogue d’édition, dans un encadré explicite avec Oui, Non et Ne pas modifier. Tests, TypeScript et build validés.
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 3s
2026-08-26 11:49:09 +00:00
Manus
8b47a78e4a Checkpoint: Retour depuis le détail vers Factures BAP avec conservation des filtres et du tri ; automatismes enrichis avec Abonnement Oui/Non/Ne pas modifier. Tests, TypeScript et build validés ; recette HTTP 200 et conteneurs sains. 2026-08-26 10:35:50 +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
1b3e3cdd67 Checkpoint: Migration ImapFlow déployée et validée sur recette et production. HTTP et conteneurs sains, OAuth2 production réussi, premier cycle email connecté sans message non lu, image Docker allégée et Vite exclu du runtime. 2026-08-22 19:12:43 +00:00
Manus
e4328ab652 Checkpoint: Préparation du déploiement production après validation recette : manifeste Gitea production restauré, image runtime allégée, Vite exclu du bundle serveur et diagnostic OAuth2 ImapFlow basé sur la configuration active ajouté. 2026-08-22 19:03:59 +00:00
Manus
692fbbe912 Checkpoint: Correction du runtime Docker : Vite et sa configuration sont maintenant chargés uniquement en développement via imports indirects. Le bundle serveur de production ne référence plus Vite ni ses plugins ; 31 tests, TypeScript et build validés.
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 3m22s
2026-08-22 18:22:46 +00:00
Manus
ece737e11d Checkpoint: Dockerfile final optimisé : les dépendances de développement restent dans le builder et seules les dépendances runtime sont installées dans l’image finale. Cette stratégie remplace le prune et la copie du node_modules complet qui bloquaient l’export sur le serveur de recette.
All checks were successful
Validation applicative / TypeScript, tests et build (push) Successful in 2m49s
2026-08-22 17:47:07 +00:00
Manus
75e7a9256c Checkpoint: Migration ImapFlow validée, historique recette fusionné sans réintroduire l’ancien client IMAP, et image Docker optimisée avec suppression des dépendances de développement après build pour réduire le runtime et fiabiliser l’export sur le serveur de recette.
Some checks failed
Validation applicative / TypeScript, tests et build (push) Failing after 38m5s
2026-08-22 17:03:36 +00:00
Manus
098d707289 Checkpoint: Remplacement complet de imap 0.8 par ImapFlow : OAuth2 moderne avec jeton brut, TLS strict, traitement séquentiel des messages non lus, verrou anti-concurrence conservé, marquage Seen uniquement après succès, test de connexion adapté, diagnostic OAuth2 et tests unitaires ajoutés. Validation : 31 tests, TypeScript, build et authentification réelle Microsoft 365 réussis. 2026-08-22 15:51:06 +00:00
Manus
66c4940aba Checkpoint: Version finale après fusion du dépôt Gitea de production et nettoyage contrôlé : empreinte SHA-256 unique des PDF, import IMAP séquencé et non concurrent, protections étendues à toutes les sources, migration validée et suivi de production clôturé. 2026-08-22 10:55:15 +00:00
Manus
d729a94a96 Checkpoint: Correction robuste des doublons de factures : empreinte SHA-256 unique des PDF sources, détection globale avant import manuel/email/dossier/web, verrou contre les vérifications IMAP concurrentes, attente réelle de fin de traitement avant marquage lu, migration et tests de non-régression. 2026-08-22 10:31:54 +00:00
Manus
d8b2a8fe6f Checkpoint: Correction complémentaire : normalisation stricte des valeurs OAuth de loginMethod avant insertion DB, afin d’éviter les erreurs de troncature causées par les identifiants de plateforme externes. Ajout de tests associés et validation build complète. 2026-08-17 20:25:16 +00:00
Manus
54164b1b33 Checkpoint: Audit technique : suppression des composants, scripts et dépendances inutilisés ; chargement différé des pages ; génération de sauvegardes SQL robuste par lots ; centralisation des contrôles d’accès ; sécurisation des cookies Azure et imports web ; documentation de maintenance et 5 tests de non-régression ajoutés. 2026-08-17 20:21:58 +00:00
Manus
711ce6b83a Checkpoint: Ajout du système de connecteurs web : table webImportSources, CRUD tRPC, page WebImportSources.tsx, endpoint /api/web-import/push-invoice, script cron SFR (scripts/web-import/sfr-connector.mjs) 2026-07-30 13:53:07 +00:00
Manus
46a61fca0e Checkpoint: Ventilations, automatismes, services et signatures sont maintenant globaux (sans filtre userId). Doublons supprimés en production. 2026-07-13 10:21:46 -04:00
Manus
f7d3f6d5b3 Checkpoint: Ajout colonne "Source import" (Email / Dossier / Fichier) dans l'historique des imports : schéma DB migré, backend mis à jour (routers.ts, emailImportService.ts, folderImportService.ts), frontend History.tsx avec badges colorés dans le tableau et le dialog de détails. 2026-06-17 06:11:46 -04:00
Manus
e32d540bc9 Checkpoint: Ajout de l'onglet "Paramétrage" dans la page Ventilation FreePro :
- Table DB freeproSettings (URL portail, credentials, fréquence, date antériorité, statut dernière récupération)
- Service freeproAutoImport.ts : connexion HTTP au portail FreePro, téléchargement CSV, pipeline d'import
- Procédures tRPC : getSettings, saveSettings, testConnection, forceImport
- Job périodique en mémoire (daily/weekly/monthly) via setInterval
- Frontend : wrapper Tabs (onglet 1 = Import & Historique, onglet 2 = Paramétrage)
- Onglet Paramétrage : credentials, fréquence, date antériorité, bouton "Forcer récupération", statut
- Tests unitaires : 8 tests passés
2026-06-08 09:24:05 -04:00
Manus
ce6760a2ea fix: insertion freeproVentilationLines par lots de 50 pour eviter limite MySQL 2026-06-05 08:26:31 -04:00
Manus
7f56fa7045 Checkpoint: Module Ventilation FreePro complet : import Excel FreePro, transformation automatique (script/TTC/type XOAUTH2), tableau de ventilation par structure+type, historique par mois, export PDF. Menu Ventilations ajouté dans la navigation. 2026-06-05 08:02:29 -04:00
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
96cfdc8901 Checkpoint: Trois améliorations SharePoint : (1) bouton 'Tester la connexion' Azure AD dans les paramètres avec procédure tRPC testAzureConnection, (2) champ date d'expiration du secret Azure AD avec alerte 30 jours avant expiration, (3) log statut upload SharePoint (success/error/path) dans la table bapHistory et affichage dans BapHistory.tsx 2026-05-06 08:02:50 -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
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
d07ff1b34d Checkpoint: Correction critique : la route validateBAP et exportToPdf lisent maintenant le PDF source et l'image de signature depuis l'URL publique en fallback si le fichier local n'est pas disponible (cas du VPS où les fichiers sont stockés localement mais pas dans la sandbox). 2026-04-12 06:17:38 -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
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