diff --git a/backend/src/routes/imports.js b/backend/src/routes/imports.js index dd3a364..ca0213b 100644 --- a/backend/src/routes/imports.js +++ b/backend/src/routes/imports.js @@ -6,9 +6,10 @@ import fs from 'node:fs'; import db from '../db/index.js'; import { HttpError } from '../middleware/errorHandler.js'; import { requireInvestisseur } from '../middleware/investisseurScope.js'; -import { generateSimul, generateSimulWithReinvestissements } from '../utils/schedule.js'; +import { generateSimul, generateSimulWithReinvestissements, adjustSimulForActuals } from '../utils/schedule.js'; import { recordHistory, detectChangements, detectTypeEvenement } from './investissements.js'; import { checkDonneesIncompletes } from '../jobs/checkDonneesIncompletes.js'; +import { syncInvestissementStatut } from './remboursements.js'; const router = Router(); @@ -332,6 +333,10 @@ router.post('/apply', (req, res, next) => { let inserted = 0, skipped = 0, duplicates = 0; const errors = []; + // Investissements touchés par un remboursement importé (module 'remboursements') — sert à + // reproduire après coup ce que fait la création manuelle d'un remboursement (statut auto + // + réajustement de l'échéancier), que l'import ne faisait pas jusqu'ici. + const affectedInvestissementIds = new Set(); // Date la plus ancienne rencontrée par plateforme (dépôts/retraits + investissements) // — sert à détecter une date antérieure à la date d'ouverture déclarée sur la plateforme. const platMinDate = new Map(); @@ -458,6 +463,7 @@ router.post('/apply', (req, res, next) => { v('statut') || 'paye', srcLabel, ); + affectedInvestissementIds.add(investissementId); } else if (module === 'plateformes') { const nom = String(v('nom') || '').trim(); @@ -524,6 +530,22 @@ router.post('/apply', (req, res, next) => { } } + // Reproduit après import ce que fait la création manuelle d'un remboursement : + // passage automatique au statut "rembourse" si le capital est intégralement remboursé, + // et réajustement de l'échéancier (troncature des échéances futures devenues caduques en + // cas de remboursement anticipé). Sans cela, un investissement soldé via import restait + // affiché "En cours" avec un échéancier complet non réajusté (contrairement à la saisie manuelle). + if (module === 'remboursements' && affectedInvestissementIds.size > 0) { + for (const invId of affectedInvestissementIds) { + try { + syncInvestissementStatut(invId); + adjustSimulForActuals(db, invId); + } catch (e) { + console.error(`[imports] réajustement post-import échoué pour l'investissement #${invId} :`, e.message); + } + } + } + // Anomalie : une date importée précède la date d'ouverture déclarée sur la plateforme const anomalies = []; if (platMinDate.size > 0) { diff --git a/backend/src/routes/remboursements.js b/backend/src/routes/remboursements.js index 7220d41..66ab6ea 100644 --- a/backend/src/routes/remboursements.js +++ b/backend/src/routes/remboursements.js @@ -86,7 +86,7 @@ function syncAutoRetrait(rembId, methode, netRecu, investissementId, dateRemb) { ); } -function syncInvestissementStatut(investissement_id) { +export function syncInvestissementStatut(investissement_id) { if (!investissement_id) return; const inv = db.prepare('SELECT montant_investi FROM investissements WHERE id=?').get(investissement_id); if (!inv) return; diff --git a/import_remboursements_2026-07-14.json b/import_remboursements_2026-07-14.json new file mode 100644 index 0000000..b13c34b --- /dev/null +++ b/import_remboursements_2026-07-14.json @@ -0,0 +1,1217 @@ +[ + { + "investissement_id": "Le Tilleul", + "date_remb": "2024-08-27", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.4, + "prelev_sociaux": 0.41, + "prelev_forfaitaire": 0.31 + }, + { + "investissement_id": "Le Tilleul", + "date_remb": "2024-09-30", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.4, + "prelev_sociaux": 0.41, + "prelev_forfaitaire": 0.31 + }, + { + "investissement_id": "Le Tilleul", + "date_remb": "2024-10-21", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.39, + "prelev_sociaux": 0.41, + "prelev_forfaitaire": 0.31 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2024-11-06", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Tilleul", + "date_remb": "2024-11-18", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.4, + "prelev_sociaux": 0.41, + "prelev_forfaitaire": 0.31 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2024-11-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Jasmin", + "date_remb": "2024-12-06", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.13, + "prelev_sociaux": 0.54, + "prelev_forfaitaire": 0.4 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2024-12-06", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "Le Tilleul", + "date_remb": "2024-12-18", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.39, + "prelev_sociaux": 0.41, + "prelev_forfaitaire": 0.31 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2024-12-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "La Motte", + "date_remb": "2025-01-03", + "capital": 29.55, + "cashback": 0, + "interets_bruts": 21.0, + "prelev_sociaux": 3.61, + "prelev_forfaitaire": 2.69 + }, + { + "investissement_id": "Le Jasmin", + "date_remb": "2025-01-07", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.13, + "prelev_sociaux": 0.54, + "prelev_forfaitaire": 0.4 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2025-01-08", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2025-01-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Lingot", + "date_remb": "2025-01-31", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.4, + "prelev_sociaux": 0.41, + "prelev_forfaitaire": 0.31 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2025-02-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "La Motte", + "date_remb": "2025-02-04", + "capital": 320.46, + "cashback": 0, + "interets_bruts": 3.2, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "Le Jasmin", + "date_remb": "2025-02-06", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.12, + "prelev_sociaux": 0.54, + "prelev_forfaitaire": 0.4 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2025-02-24", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Lingot", + "date_remb": "2025-02-28", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.4, + "prelev_sociaux": 0.41, + "prelev_forfaitaire": 0.31 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2025-03-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "Le Jasmin", + "date_remb": "2025-03-06", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.13, + "prelev_sociaux": 0.54, + "prelev_forfaitaire": 0.4 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2025-03-07", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2025-03-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Lingot", + "date_remb": "2025-03-31", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.39, + "prelev_sociaux": 0.41, + "prelev_forfaitaire": 0.31 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2025-04-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2025-04-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2025-04-07", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Jasmin", + "date_remb": "2025-04-08", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.12, + "prelev_sociaux": 0.54, + "prelev_forfaitaire": 0.4 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2025-04-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Lingot", + "date_remb": "2025-04-30", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.4, + "prelev_sociaux": 0.41, + "prelev_forfaitaire": 0.31 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2025-04-30", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.2, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2025-05-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "Le Jasmin", + "date_remb": "2025-05-06", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.13, + "prelev_sociaux": 0.54, + "prelev_forfaitaire": 0.4 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2025-05-07", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "L’Echo", + "date_remb": "2025-05-18", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2025-05-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2025-05-30", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2025-06-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2025-06-07", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "L’Echo", + "date_remb": "2025-06-18", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2025-06-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Lingot", + "date_remb": "2025-06-30", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.39, + "prelev_sociaux": 0.41, + "prelev_forfaitaire": 0.31 + }, + { + "investissement_id": "Le Lingot", + "date_remb": "2025-07-01", + "capital": 250.0, + "cashback": 0, + "interets_bruts": 2.4, + "prelev_sociaux": 0.41, + "prelev_forfaitaire": 0.31 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2025-07-02", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2025-07-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.91, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.24 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2025-07-07", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Jasmin", + "date_remb": "2025-07-09", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.12, + "prelev_sociaux": 0.54, + "prelev_forfaitaire": 0.4 + }, + { + "investissement_id": "L’Écureuil", + "date_remb": "2025-07-17", + "capital": 350.0, + "cashback": 0, + "interets_bruts": 45.5, + "prelev_sociaux": 7.83, + "prelev_forfaitaire": 5.82 + }, + { + "investissement_id": "Le Tilleul", + "date_remb": "2025-07-18", + "capital": 5.65, + "cashback": 0, + "interets_bruts": 2.8, + "prelev_sociaux": 0.48, + "prelev_forfaitaire": 0.36 + }, + { + "investissement_id": "L’Echo", + "date_remb": "2025-07-18", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2025-07-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Mitra", + "date_remb": "2025-07-24", + "capital": 250.01, + "cashback": 0, + "interets_bruts": 14.37, + "prelev_sociaux": 2.47, + "prelev_forfaitaire": 1.84 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2025-08-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2025-08-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2025-08-07", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "L’Echo", + "date_remb": "2025-08-18", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.91, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.24 + }, + { + "investissement_id": "Le Tilleul", + "date_remb": "2025-08-20", + "capital": 5.72, + "cashback": 0, + "interets_bruts": 2.73, + "prelev_sociaux": 0.47, + "prelev_forfaitaire": 0.35 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2025-08-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Maverick", + "date_remb": "2025-08-28", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.34, + "prelev_sociaux": 0.4, + "prelev_forfaitaire": 0.3 + }, + { + "investissement_id": "L’Altéa", + "date_remb": "2025-08-31", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.99, + "prelev_sociaux": 0.34, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "Le Jylou 2", + "date_remb": "2025-08-31", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.83, + "prelev_sociaux": 0.31, + "prelev_forfaitaire": 0.23 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2025-09-02", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2025-09-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2025-09-05", + "capital": 54.55, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "L’Echo", + "date_remb": "2025-09-18", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2025-09-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Tilleul", + "date_remb": "2025-09-22", + "capital": 5.79, + "cashback": 0, + "interets_bruts": 2.67, + "prelev_sociaux": 0.46, + "prelev_forfaitaire": 0.34 + }, + { + "investissement_id": "Le Maverick", + "date_remb": "2025-09-28", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.34, + "prelev_sociaux": 0.4, + "prelev_forfaitaire": 0.3 + }, + { + "investissement_id": "Le Jylou 2", + "date_remb": "2025-09-30", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.83, + "prelev_sociaux": 0.31, + "prelev_forfaitaire": 0.23 + }, + { + "investissement_id": "L’Altéa", + "date_remb": "2025-09-30", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.99, + "prelev_sociaux": 0.34, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2025-09-30", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2025-10-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.91, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.24 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2025-10-07", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.95, + "prelev_sociaux": 0.34, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Echo", + "date_remb": "2025-10-18", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2025-10-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Tilleul", + "date_remb": "2025-10-24", + "capital": 5.81, + "cashback": 0, + "interets_bruts": 2.64, + "prelev_sociaux": 0.45, + "prelev_forfaitaire": 0.34 + }, + { + "investissement_id": "Le Maverick", + "date_remb": "2025-10-28", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.35, + "prelev_sociaux": 0.4, + "prelev_forfaitaire": 0.3 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2025-10-30", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.2, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "L’Altéa", + "date_remb": "2025-10-31", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.99, + "prelev_sociaux": 0.34, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "Le Jylou 2", + "date_remb": "2025-10-31", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.83, + "prelev_sociaux": 0.31, + "prelev_forfaitaire": 0.23 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2025-11-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2025-11-07", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.95, + "prelev_sociaux": 0.34, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2025-11-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Maverick", + "date_remb": "2025-11-29", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.34, + "prelev_sociaux": 0.4, + "prelev_forfaitaire": 0.3 + }, + { + "investissement_id": "Le Jylou 2", + "date_remb": "2025-11-30", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.84, + "prelev_sociaux": 0.32, + "prelev_forfaitaire": 0.24 + }, + { + "investissement_id": "L’Altéa", + "date_remb": "2025-12-01", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.99, + "prelev_sociaux": 0.34, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2025-12-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.33, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2025-12-10", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.96, + "prelev_sociaux": 0.34, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2025-12-12", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.55, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2025-12-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.43, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Maverick", + "date_remb": "2025-12-28", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.34, + "prelev_sociaux": 0.4, + "prelev_forfaitaire": 0.3 + }, + { + "investissement_id": "Le Jylou 2", + "date_remb": "2025-12-31", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.83, + "prelev_sociaux": 0.31, + "prelev_forfaitaire": 0.23 + }, + { + "investissement_id": "L’Altéa", + "date_remb": "2025-12-31", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.99, + "prelev_sociaux": 0.34, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2026-01-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.91, + "prelev_sociaux": 0.36, + "prelev_forfaitaire": 0.24 + }, + { + "investissement_id": "Le Maverick", + "date_remb": "2026-01-05", + "capital": 250.0, + "cashback": 0, + "interets_bruts": 0, + "prelev_sociaux": 0, + "prelev_forfaitaire": 0 + }, + { + "investissement_id": "Le Médicis", + "date_remb": "2026-01-07", + "capital": 148.88, + "cashback": 0, + "interets_bruts": 28.44, + "prelev_sociaux": 5.08, + "prelev_forfaitaire": 3.5 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2026-01-07", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.95, + "prelev_sociaux": 0.36, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2026-01-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.47, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "L’Altéa", + "date_remb": "2026-02-02", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.99, + "prelev_sociaux": 0.37, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2026-02-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.36, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2026-02-05", + "capital": 35.05, + "cashback": 0, + "interets_bruts": 2.02, + "prelev_sociaux": 0.36, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "Le Jylou 2", + "date_remb": "2026-02-16", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.83, + "prelev_sociaux": 0.34, + "prelev_forfaitaire": 0.23 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2026-02-18", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.6, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "L’Echo", + "date_remb": "2026-02-18", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.91, + "prelev_sociaux": 0.36, + "prelev_forfaitaire": 0.24 + }, + { + "investissement_id": "L’Echo", + "date_remb": "2026-02-19", + "capital": 95.82, + "cashback": 0, + "interets_bruts": 1.98, + "prelev_sociaux": 0.36, + "prelev_forfaitaire": 0.24 + }, + { + "investissement_id": "L’Echo", + "date_remb": "2026-02-19", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.36, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Echo", + "date_remb": "2026-02-19", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.36, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2026-02-19", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.6, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2026-02-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.47, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2026-03-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.36, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2026-03-12", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.6, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2026-03-17", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.6, + "prelev_sociaux": 0.3, + "prelev_forfaitaire": 0.2 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2026-03-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.47, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Jylou 2", + "date_remb": "2026-03-28", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.84, + "prelev_sociaux": 0.34, + "prelev_forfaitaire": 0.24 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2026-04-09", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.6, + "prelev_sociaux": 0.3, + "prelev_forfaitaire": 0.2 + }, + { + "investissement_id": "L'Alonzi", + "date_remb": "2026-04-20", + "capital": 101.32, + "cashback": 0, + "interets_bruts": 35.93, + "prelev_sociaux": 6.42, + "prelev_forfaitaire": 4.42 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2026-04-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.47, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "L'Alonzi", + "date_remb": "2026-04-30", + "capital": 47.23, + "cashback": 0, + "interets_bruts": 0.5, + "prelev_sociaux": 0.09, + "prelev_forfaitaire": 0.06 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2026-05-19", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.6, + "prelev_sociaux": 0.3, + "prelev_forfaitaire": 0.2 + }, + { + "investissement_id": "Le Jylou 2", + "date_remb": "2026-05-19", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.83, + "prelev_sociaux": 0.34, + "prelev_forfaitaire": 0.23 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2026-05-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.47, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Tilleul", + "date_remb": "2026-06-02", + "capital": 0, + "cashback": 0, + "interets_bruts": 8.43, + "prelev_sociaux": 1.57, + "prelev_forfaitaire": 1.08 + }, + { + "investissement_id": "L’Olympique", + "date_remb": "2026-06-10", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.61, + "prelev_sociaux": 0.3, + "prelev_forfaitaire": 0.21 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2026-06-16", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.36, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2026-06-16", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.92, + "prelev_sociaux": 0.36, + "prelev_forfaitaire": 0.25 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2026-06-16", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.91, + "prelev_sociaux": 0.36, + "prelev_forfaitaire": 0.24 + }, + { + "investissement_id": "La Kallisté", + "date_remb": "2026-06-20", + "capital": 0, + "cashback": 0, + "interets_bruts": 2.5, + "prelev_sociaux": 0.47, + "prelev_forfaitaire": 0.32 + }, + { + "investissement_id": "Le Jylou 2", + "date_remb": "2026-06-23", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.83, + "prelev_sociaux": 0.34, + "prelev_forfaitaire": 0.23 + }, + { + "investissement_id": "Le Tilleul", + "date_remb": "2026-06-29", + "capital": 0, + "cashback": 0, + "interets_bruts": 8.43, + "prelev_sociaux": 1.57, + "prelev_forfaitaire": 1.08 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2026-07-03", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.6, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2026-07-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.6, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2026-07-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.21, + "prelev_sociaux": 0.6, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "Les Jumelles", + "date_remb": "2026-07-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 3.2, + "prelev_sociaux": 0.6, + "prelev_forfaitaire": 0.41 + }, + { + "investissement_id": "L’Ambroise", + "date_remb": "2026-07-04", + "capital": 0, + "cashback": 0, + "interets_bruts": 1.91, + "prelev_sociaux": 0.36, + "prelev_forfaitaire": 0.24 + } +]