Manus
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.
Validation applicative / TypeScript, tests et build (push) Successful in 3m19s
2026-08-30 08:56:27 +00:00
Manus
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.
2026-08-29 22:15:35 +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
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
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
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
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.
Validation applicative / TypeScript, tests et build (push) Failing after 3m22s
2026-08-22 18:22:46 +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
147dd6e5a0
Merge remote-tracking branch 'prod-dsi/main'
...
# Conflicts:
# server/emailImportService.ts
2026-08-22 10:39:08 +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 CI
269823fd78
CI fix : corrections pour CI production
2026-08-21 11:47:55 +00:00
Manus CI
295bb26378
CI : workflow validate.yml, manifeste ci.required:true, garde VITEST, tests isolés
2026-08-21 11:15:58 +00:00
Manus Admin
de797c1c0b
fix: empêcher la duplication massive de fichiers lors de l import email
...
- markSeen: true pour marquer les emails immédiatement
- Vérification doublon avant stockage (findSourceFileByFileName)
- Verrou anti-concurrence par utilisateur
2026-08-18 15:05:31 +02: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
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.
2026-08-08 10:52:58 +00:00
Manus
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é).
2026-08-08 10:41:01 +00:00
Manus
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.
2026-08-08 10:04:57 +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
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.
2026-07-30 09:48:00 +00:00
Manus
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.
2026-07-27 15:55: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
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.
2026-07-13 08:13:49 -04:00
Manus
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
2026-07-07 05:54:46 -04:00
Manus
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).
2026-06-17 06:20:40 -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
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
1a09c98ef5
fix: exportStatus mis à jour à 'exported' après validation BAP (unitaire et en masse)
2026-06-16 12:18:40 -04:00
Manus
22b34fcf1e
fix: nommage fichiers BAP - format AAAA-MM-JJ - Fournisseur - NFacture.pdf
2026-06-15 12:28:04 -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
a9387eaaea
feat: détection doublons par numéro+montant dans les 3 points d'import
2026-06-15 12:02:24 -04:00
Manus
f49eadda2b
feat: warningMessage quota IA dans rapports d'import + redémarrage auto services
2026-06-09 12:15:26 -04:00
Manus
595f5dded1
fix: appliquer les règles d'automatisation (ventilation) lors de l'import email
2026-06-09 10:48:29 -04:00
Manus
6c7828d829
fix: transmettre aiSettings (provider Manus) lors de l'import email
2026-06-09 10:20:17 -04:00
Manus
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'.
2026-06-08 10:53:34 -04:00
Manus
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.
2026-06-08 10:38:58 -04:00
Manus
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.
2026-06-08 10:30:03 -04:00
Manus
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).
2026-06-08 10:16:52 -04:00
Manus
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.
2026-06-08 09:58:58 -04:00
Manus
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
2026-06-08 09:42:32 -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
51830b88be
fix: PDF généré côté serveur (pdf-lib) - 1 page A4 portrait garantie
2026-06-05 11:27:58 -04:00
Manus
b5705b5209
fix: PDF A4 portrait, total sans slash, bouton SharePoint FreePro
2026-06-05 10:08:38 -04:00
Manus
054cee0e06
fix: lignes FreePro sans structure affectées à 3069UDA (au lieu de vide)
2026-06-05 09:56:12 -04:00
Manus
a4c347e554
feat: import FreePro accepte .xls, .xlsx et .csv
2026-06-05 09:20:42 -04:00
Manus
db96b29c9f
fix: correction extraction insertId MySQL2 dans createFreeproImport (result[0].insertId)
2026-06-05 08:38:31 -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
22515e5414
feat: date de début de lecture emails dans paramètres import
2026-06-02 10:53:45 -04:00