maj
This commit is contained in:
1 parent
1e3994f17f
commit
624d32ff7c
17 files changed
+2192
-1
No files matched your search
@@ -0,0 +1,58 @@
|
||||
path = "backend/src/db/index.js"
|
||||
with open(path, "r", encoding="utf-8") as f:
|
||||
content = f.read()
|
||||
|
||||
anchor = """ })();
|
||||
}
|
||||
|
||||
export default db;
|
||||
"""
|
||||
assert content.count(anchor) == 1, f"anchor count={content.count(anchor)}"
|
||||
|
||||
block = ''' })();
|
||||
}
|
||||
|
||||
// Extension du 29/09/26 (demande Olivier, à propos de produits Spiko/Regular Finance) : "sais-tu
|
||||
// comment les classifier ?" — Spiko et Regular Finance ne sont pas des enveloppes mais des
|
||||
// PLATEFORMES/INSTITUTIONS donnant accès à un fonds monétaire (OPCVM monétaire, y compris
|
||||
// lorsqu'il est tokenisé sur blockchain comme chez Spiko) : elles ont vocation à rejoindre
|
||||
// institutions_referentiel (catégorie à créer, ex. "Gestion de trésorerie"), pas
|
||||
// enveloppes_referentiel — le rattachement viendra en Phase 3. Ce qui manquait réellement à CE
|
||||
// référentiel, c'est le SUPPORT lui-même : "OPCVM / fonds actifs" existant désigne des fonds
|
||||
// actions/obligations/diversifiés gérés activement, pas un fonds monétaire (quasi-cash, duration
|
||||
// très courte, profil de risque très différent) — les deux ne doivent pas être confondus.
|
||||
// Toujours exécuté (INSERT OR IGNORE, clés UNIQUE sur nom), même principe que les extensions
|
||||
// précédentes.
|
||||
{
|
||||
db.prepare("INSERT OR IGNORE INTO supports_referentiel (nom, description) VALUES (?, ?)").run(
|
||||
'Fonds monétaires (OPCVM monétaire)',
|
||||
"Fonds monétaire classique ou tokenisé sur blockchain (ex. Spiko, Regular Finance) — quasi-cash, duration très courte, distinct d'un OPCVM actions/obligations/diversifié."
|
||||
);
|
||||
const getSuppRefIdMonetaire = db.prepare('SELECT id FROM supports_referentiel WHERE nom = ?');
|
||||
const suppMonetaire = getSuppRefIdMonetaire.get('Fonds monétaires (OPCVM monétaire)');
|
||||
if (suppMonetaire) {
|
||||
const getEnvRefIdMonetaire = db.prepare('SELECT id FROM enveloppes_referentiel WHERE nom = ?');
|
||||
const linkEnvSuppMonetaire = db.prepare('INSERT OR IGNORE INTO enveloppes_supports_disponibles (enveloppe_id, support_id) VALUES (?, ?)');
|
||||
// Enveloppes où un fonds monétaire a sa place (menu de supports déjà large, cohérent avec un
|
||||
// placement défensif) — PEA/PEA-PME exclus (non éligibles réglementairement), enveloppes
|
||||
// "cash" (Livret A, comptes courants...) exclues (déjà sans menu de supports par nature).
|
||||
for (const envNom of [
|
||||
'Compte-titres ordinaire (CTO)', 'Assurance-vie multisupport', 'PER individuel',
|
||||
'PER collectif / obligatoire (PERCOL, article 83)', 'Contrat de capitalisation',
|
||||
'Assurance-vie luxembourgeoise',
|
||||
]) {
|
||||
const env = getEnvRefIdMonetaire.get(envNom);
|
||||
if (env) linkEnvSuppMonetaire.run(env.id, suppMonetaire.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default db;
|
||||
'''
|
||||
|
||||
content = content.replace(anchor, block, 1)
|
||||
|
||||
with open(path, "w", encoding="utf-8") as f:
|
||||
f.write(content)
|
||||
|
||||
print("Fonds monétaires support + links inserted OK, new length:", len(content))
|
||||
Reference in new issue
Block a user