Commit Graph

  • 9997e383cc Checkpoint: Budget réel confirmé en ordre décroissant de montant total ; graphique en barres annuel comparant les montants BAP et abonnements ajouté au tableau de bord. main Manus 2026-08-30 08:56:27 +00:00
  • 5128322a6d Checkpoint: Ajout du récapitulatif annuel BAP et abonnements au tableau de bord, et de Budget réel par fournisseur avec filtres Année/Mois et ventilation abonnements/hors abonnement. Manus 2026-08-29 22:15:35 +00:00
  • 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. Manus 2026-08-29 18:52:49 +00:00
  • 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. Manus 2026-08-29 18:45:38 +00:00
  • 28a00cc771 chore: préparer le déploiement recette des factures abonnements Manus 2026-08-29 18:33:00 +00:00
  • 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. Manus 2026-08-29 18:32:12 +00:00
  • 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. Manus 2026-08-27 14:29:52 +00:00
  • 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. Manus 2026-08-27 14:22:06 +00:00
  • deb5b5735c chore: préparer le déploiement recette du seuil BAP à 90 Manus 2026-08-27 13:20:18 +00:00
  • 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. Manus 2026-08-27 13:02:07 +00:00
  • 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. Manus 2026-08-27 10:16:24 +00:00
  • 7e1253615b chore: suivre le déploiement du filtre par action Manus 2026-08-27 10:09:52 +00:00
  • 1a7d5cb64e chore: suivre le déploiement du filtre d actions Manus 2026-08-27 09:46:34 +00:00
  • 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. Manus 2026-08-27 07:02:36 +00:00
  • 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é. Manus 2026-08-26 12:51:08 +00:00
  • 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. Manus 2026-08-26 12:41:50 +00:00
  • 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é. Manus 2026-08-26 12:11:40 +00:00
  • 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. Manus 2026-08-26 11:49:09 +00:00
  • 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. Manus 2026-08-26 10:35:50 +00:00
  • a281212bab chore: cible le dépôt Gitea recette Manus 2026-08-26 10:21:24 +00:00
  • 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. Manus 2026-08-26 10:20:20 +00:00
  • 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. Manus 2026-08-22 19:12:43 +00:00
  • 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é. Manus 2026-08-22 19:03:59 +00:00
  • 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. Manus 2026-08-22 18:22:46 +00:00
  • 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. Manus 2026-08-22 17:47:07 +00:00
  • 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. Manus 2026-08-22 17:03:36 +00:00
  • 52b5e49082 Merge remote-tracking branch 'recette/server-state' Manus 2026-08-22 16:09:35 +00:00
  • d27703f878 Merge remote-tracking branch 'recette/main' Manus 2026-08-22 15:57:13 +00:00
  • 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. Manus 2026-08-22 15:51:06 +00:00
  • 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é. Manus 2026-08-22 10:55:15 +00:00
  • 147dd6e5a0 Merge remote-tracking branch 'prod-dsi/main' Manus 2026-08-22 10:39:08 +00:00
  • b7525ab51e Merge remote-tracking branch 'prod/main' Manus 2026-08-22 10:33:05 +00:00
  • 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. Manus 2026-08-22 10:31:54 +00:00
  • 957494f8ef ci: trigger Manus Admin 2026-08-21 13:21:12 +02:00
  • 269823fd78 CI fix : corrections pour CI production Manus CI 2026-08-21 11:47:55 +00:00
  • 295bb26378 CI : workflow validate.yml, manifeste ci.required:true, garde VITEST, tests isolés Manus CI 2026-08-21 11:15:58 +00:00
  • a1755e181c ci: trigger server-state-imapflow-recette manus-admin 2026-08-21 12:37:48 +02:00
  • 5c8237d5c6 CI : workflow validate.yml, manifeste ci.required:true, garde VITEST, tests isolés Manus CI 2026-08-21 10:31:45 +00:00
  • a9cea0ecbb fix: empêcher la duplication massive de fichiers lors de l'import email Manus Admin 2026-08-18 14:50:31 +02:00
  • 0612abf415 chore: versionner le manifeste de déploiement Manus 2026-08-17 22:35:40 +02:00
  • de797c1c0b fix: empêcher la duplication massive de fichiers lors de l import email Manus Admin 2026-08-18 15:05:31 +02:00
  • de76a761a3 fix: empêcher la duplication massive de fichiers lors de l'import email Manus Admin 2026-08-18 14:50:31 +02:00
  • 8759d85f3d Merge remote-tracking branch 'recette/main' Manus 2026-08-18 07:42:06 +00:00
  • e39dd38bec chore: suivi du déploiement recette Manus 2026-08-18 07:40:54 +00:00
  • 89c65ca979 chore: versionner le manifeste de déploiement Manus 2026-08-18 09:40:27 +02:00
  • eecbd07b5c chore: versionner le manifeste de déploiement Manus 2026-08-17 22:35:40 +02:00
  • 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. Manus 2026-08-17 20:25:16 +00:00
  • 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. Manus 2026-08-17 20:21:58 +00:00
  • 6b83361056 Checkpoint: mysqldump n'est pas disponible dans le container Node.js. Remplacement par un dump SQL généré directement via mysql2 : SHOW CREATE TABLE + SELECT * pour chaque table, avec échappement correct des valeurs. Manus 2026-08-08 10:52:58 +00:00
  • d3426c1663 Checkpoint: Correction de l'erreur "non authentifié" sur /api/db-backup : utilisation de parseCookies(req.headers.cookie) au lieu de req.cookies (qui nécessitait cookie-parser non installé). Manus 2026-08-08 10:41:01 +00:00
  • 4ce2d2877a Checkpoint: Ajout onglet Sauvegarde DB dans ImportSettings : endpoint POST /api/db-backup (mysqldump), GET /api/db-backup/:filename, procédures tRPC backup.list et backup.delete, composant BackupSection avec liste des sauvegardes et téléchargement. Manus 2026-08-08 10:04:57 +00:00
  • 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) Manus 2026-07-30 13:53:07 +00:00
  • 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. Manus 2026-07-30 12:48:20 +00:00
  • 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). Manus 2026-07-30 12:37:32 +00:00
  • ac0594f5db Checkpoint: Zone de filtres Factures refactorisée en 3 lignes dans un cartouche bleu pastel : ligne 1 (recherche + compact/détail), ligne 2 (destinataire, abonnement, entité, ventilation comptable), ligne 3 (boutons statut export + tri par date). Manus 2026-07-30 12:24:15 +00:00
  • 5d18dfa468 Checkpoint: Ajout de la table deletedInvoices (blacklist) : quand une facture est supprimée, son numéro est enregistré et l'import email/fichier ne la réimporte plus. Manus 2026-07-30 09:48:00 +00:00
  • aebc607e8a Checkpoint: Ajout de deux nouveaux filtres sur la page Factures : Abonnement (OUI/NON basé sur isSubscription) et Entité (SANTINOVA/ITINOVA basé sur ventilationComptable === 'SANTINOVA'). Filtrage côté client, aucune modification backend nécessaire. Manus 2026-07-30 08:15:56 +00:00
  • 827c9ec41e Checkpoint: Ajout de Google Gemini (gemini-2.0-flash) comme 3ème moteur IA : schéma DB mis à jour (enum aiProvider + colonne geminiApiKey dans userSettings et importSettings), llm.ts mis à jour avec routing vers l'API Google AI Studio (compatible OpenAI), fenêtre de configuration IA mise à jour avec 3 cartes (Mistral / Gemini / Manus) et champ clé API Gemini. Manus 2026-07-27 15:55:07 +00:00
  • 46a61fca0e Checkpoint: Ventilations, automatismes, services et signatures sont maintenant globaux (sans filtre userId). Doublons supprimés en production. Manus 2026-07-13 10:21:46 -04:00
  • 1951b9b9d1 Checkpoint: Les admins voient désormais toutes les factures (tous userId) : getById, update, delete, validateBAP, devalidateBAP, validateBAPBulk, reprocessSelected, regenerateBapPdf, search, exportToExcel, exportToPdf, exportSFTP, bapHistory.delete/regenerate — tous corrigés pour les admins. Manus 2026-07-13 08:13:49 -04:00
  • a994ec2e61 Checkpoint: Fix: colonne azureAdId agrandie à VARCHAR(128) pour accepter les identifiants Azure AD composés (objectId.tenantId). Migration appliquée en production. Manus 2026-07-07 06:20:33 -04:00
  • 8ee10602d3 Checkpoint: Ajout de la connexion OAuth2 Microsoft 365 (Azure AD) : route callback /api/auth/azure/callback, bouton Microsoft sur la page de login, variables d'environnement Azure AD configurées Manus 2026-07-07 05:54:46 -04:00
  • d4c9bf635a Checkpoint: Fix: la procédure deleteAll des importLogs permet maintenant aux admins de supprimer tous les logs (pas seulement les leurs). Correction de deleteAllImportLogs dans db.ts pour accepter userId=null (suppression totale). Manus 2026-06-17 06:20:40 -04:00
  • 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. Manus 2026-06-17 06:11:46 -04:00
  • 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. Manus 2026-06-17 03:41:18 -04:00
  • 756f8ab392 fix: stabiliser validatedInvoiceIds avec useMemo pour bouton téléchargement BAP Manus 2026-06-16 12:29:58 -04:00
  • 1a09c98ef5 fix: exportStatus mis à jour à 'exported' après validation BAP (unitaire et en masse) Manus 2026-06-16 12:18:40 -04:00
  • 22b34fcf1e fix: nommage fichiers BAP - format AAAA-MM-JJ - Fournisseur - NFacture.pdf Manus 2026-06-15 12:28:04 -04:00
  • b34e145d5d feat: bouton Dévalider BAP, barre actions 2 lignes, suppression colonne Utilisateur Manus 2026-06-15 12:14:25 -04:00
  • a9387eaaea feat: détection doublons par numéro+montant dans les 3 points d'import Manus 2026-06-15 12:02:24 -04:00
  • 295965fa57 true message Manus 2026-06-15 11:54:58 -04:00
  • 2fde4f92a6 feat: mode compact/détail, tri date réception/facturation, suppression colonne utilisateur Manus 2026-06-12 09:00:56 -04:00
  • f49eadda2b feat: warningMessage quota IA dans rapports d'import + redémarrage auto services Manus 2026-06-09 12:15:26 -04:00
  • 595f5dded1 fix: appliquer les règles d'automatisation (ventilation) lors de l'import email Manus 2026-06-09 10:48:29 -04:00
  • 6c7828d829 fix: transmettre aiSettings (provider Manus) lors de l'import email Manus 2026-06-09 10:20:17 -04:00
  • 056bccd985 Checkpoint: Ajout de la colonne 'Export SP' dans le tableau historique de Ventilation FreePro : icône horloge grise = non exporté, icône verte = exporté (date au survol), icône rouge = erreur (message au survol). Le statut est sauvegardé en base (sharepointUploadStatus, sharepointUploadPath, sharepointUploadError, sharepointExportedAt) lors de chaque export via 'Envoyer vers SharePoint'. Manus 2026-06-08 10:53:34 -04:00
  • 43cacda7ad Checkpoint: Correction des montants des lignes de ventilation : application d'un coefficient de redistribution proportionnel (totalTtc_officiel / totalTtc_calculé) sur chaque ligne pour que leur somme corresponde exactement au total TTC officiel FreePro. Les montants sont maintenant cohérents avec le portail. Manus 2026-06-08 10:38:58 -04:00
  • ed01a07105 Checkpoint: Correction des montants TTC : utilisation du total_ttc retourné par l'API /api/api_red_october/v1/invoices au lieu de recalculer depuis les lignes CSV. Les montants correspondent maintenant exactement au portail FreePro. Manus 2026-06-08 10:30:03 -04:00
  • 9de1a767fa Checkpoint: Récupération automatique FreePro opérationnelle : utilisation de l'API REST interne Angular /api/api_red_october/v1/invoices pour lister les factures, puis téléchargement CSV via /account/invoice/{ref}/primary_csv. 6 factures importées automatiquement (01/2026 à 06/2026). Manus 2026-06-08 10:16:52 -04:00
  • f3e985af5f Checkpoint: Fix testConnection : le backend lit désormais le mot de passe directement en base (jamais exposé au frontend). Timeout porté à 25s. Détection correcte de invalid_credentials dans la réponse JSON FreePro. Manus 2026-06-08 09:58:58 -04:00
  • f676395973 Checkpoint: Correction du bouton "Tester la connexion" FreePro : - Backend : réécriture de loginToFreePro avec timeout 15s, gestion robuste des erreurs, multiples endpoints tentés, vérification de l'accès /account/ pour confirmer la connexion - Frontend : suppression de la garde incorrecte sur loginPassword === "••••••••", validation par trim() + includes("@") + longueur minimale - Résultat : le bouton répond maintenant et retourne un message d'erreur explicite si les credentials sont incorrects Manus 2026-06-08 09:42:32 -04:00
  • 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 Manus 2026-06-08 09:24:05 -04:00
  • 51830b88be fix: PDF généré côté serveur (pdf-lib) - 1 page A4 portrait garantie Manus 2026-06-05 11:27:58 -04:00
  • 5d919f891f fix: PDF FreePro dessin manuel - 1 page A4 portrait garantie Manus 2026-06-05 11:00:37 -04:00
  • 44186a056b fix: PDF FreePro 1 page A4 portrait - calcul précis hauteur cellule Manus 2026-06-05 10:50:00 -04:00
  • b5705b5209 fix: PDF A4 portrait, total sans slash, bouton SharePoint FreePro Manus 2026-06-05 10:08:38 -04:00
  • d3bb0c7e07 fix: renommage export PDF FreePro - ventilation facture mm.AA.pdf Manus 2026-06-05 10:01:22 -04:00
  • 054cee0e06 fix: lignes FreePro sans structure affectées à 3069UDA (au lieu de vide) Manus 2026-06-05 09:56:12 -04:00
  • a4c347e554 feat: import FreePro accepte .xls, .xlsx et .csv Manus 2026-06-05 09:20:42 -04:00
  • 6224328331 fix: export PDF A4 paysage, 1 seule page, taille police dynamique Manus 2026-06-05 09:12:22 -04:00
  • db96b29c9f fix: correction extraction insertId MySQL2 dans createFreeproImport (result[0].insertId) Manus 2026-06-05 08:38:31 -04:00
  • ce6760a2ea fix: insertion freeproVentilationLines par lots de 50 pour eviter limite MySQL Manus 2026-06-05 08:26:31 -04:00
  • 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. Manus 2026-06-05 08:02:29 -04:00
  • 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. Manus 2026-06-05 05:54:21 -04:00
  • 22515e5414 feat: date de début de lecture emails dans paramètres import Manus 2026-06-02 10:53:45 -04:00
  • 7c73d701ac fix: nom fichier export conforme date-fournisseur-numero.pdf Manus 2026-05-06 12:18:03 -04:00
  • 4086227df7 feat: export manuel (exportToPdf) supporte maintenant SharePoint en plus du dossier local Manus 2026-05-06 12:12:38 -04:00
  • 41ae95737b fix: logs explicites export SharePoint dans validateBAP + migration colonnes bapHistory camelCase Manus 2026-05-06 11:07:58 -04:00
  • 94844b0589 feat: bouton Tester l'upload SharePoint + tooltip erreur SP dans historique BAP Manus 2026-05-06 10:18:46 -04:00
  • 6c21c71660 fix: export SharePoint - erreur remontée au frontend, meilleur parsing URL et détection bibliothèque Manus 2026-05-06 09:41:40 -04:00