Commit Graph

153 Commits

Author SHA1 Message Date
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
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
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). 2026-07-30 12:24:15 +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
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. 2026-07-30 08:15:56 +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
a994ec2e61 Checkpoint: Fix: colonne azureAdId agrandie à VARCHAR(128) pour accepter les identifiants Azure AD composés (objectId.tenantId). Migration appliquée en production. 2026-07-07 06:20:33 -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
756f8ab392 fix: stabiliser validatedInvoiceIds avec useMemo pour bouton téléchargement BAP 2026-06-16 12:29:58 -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
295965fa57 true message 2026-06-15 11:54:58 -04:00
Manus
2fde4f92a6 feat: mode compact/détail, tri date réception/facturation, suppression colonne utilisateur 2026-06-12 09:00:56 -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
5d919f891f fix: PDF FreePro dessin manuel - 1 page A4 portrait garantie 2026-06-05 11:00:37 -04:00
Manus
44186a056b fix: PDF FreePro 1 page A4 portrait - calcul précis hauteur cellule 2026-06-05 10:50:00 -04:00
Manus
b5705b5209 fix: PDF A4 portrait, total sans slash, bouton SharePoint FreePro 2026-06-05 10:08:38 -04:00
Manus
d3bb0c7e07 fix: renommage export PDF FreePro - ventilation facture mm.AA.pdf 2026-06-05 10:01:22 -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
6224328331 fix: export PDF A4 paysage, 1 seule page, taille police dynamique 2026-06-05 09:12:22 -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
Manus
7c73d701ac fix: nom fichier export conforme date-fournisseur-numero.pdf 2026-05-06 12:18:03 -04:00
Manus
4086227df7 feat: export manuel (exportToPdf) supporte maintenant SharePoint en plus du dossier local 2026-05-06 12:12:38 -04:00
Manus
41ae95737b fix: logs explicites export SharePoint dans validateBAP + migration colonnes bapHistory camelCase 2026-05-06 11:07:58 -04:00