maj
This commit is contained in:
1 parent
1e3994f17f
commit
624d32ff7c
17 files changed
+2192
-1
No files matched your search
@@ -0,0 +1,47 @@
|
||||
path = "backend/src/db/index.js"
|
||||
with open(path, "r", encoding="utf-8") as f:
|
||||
content = f.read()
|
||||
|
||||
anchor = "\nexport default db;\n"
|
||||
assert content.count(anchor) == 1, f"anchor count={content.count(anchor)}"
|
||||
|
||||
block = '''
|
||||
// Extension du 29/09/26 (suite) — support "ETC" (demande Olivier, à partir d'une capture d'écran
|
||||
// d'un contrat d'assurance-vie distinguant "+200 ETF & 22 ETC" parmi ses supports) : un Exchange
|
||||
// Traded Commodity (ETC) est un instrument coté qui réplique le cours d'une matière première
|
||||
// (or, pétrole...), proche d'un ETF dans sa mécanique de cotation mais sans statut UCITS/OPCVM —
|
||||
// distinct du support "ETF / trackers" (fonds indiciels UCITS) et de "Matières premières / métaux
|
||||
// précieux" (autre modalité d'exposition aux matières premières, ex. en unités de compte
|
||||
// d'assurance-vie). Rattaché aux mêmes enveloppes que "Fonds monétaires" ci-dessus (menu de
|
||||
// supports déjà large) ; PEA/PEA-PME exclus, comme en pratique un ETC matières premières
|
||||
// physiques n'est pas éligible au PEA. Toujours exécuté (INSERT OR IGNORE, clés UNIQUE sur nom).
|
||||
{
|
||||
db.prepare("INSERT OR IGNORE INTO supports_referentiel (nom, description) VALUES (?, ?)").run(
|
||||
'ETC (Exchange Traded Commodities)',
|
||||
"Tracker coté sur une matière première (or, pétrole, panier de matières premières...) — proche de l'ETF dans sa mécanique de cotation, mais sans statut UCITS/OPCVM ; distinct du support « ETF / trackers » et de « Matières premières / métaux précieux »."
|
||||
);
|
||||
const getSuppRefIdEtc = db.prepare('SELECT id FROM supports_referentiel WHERE nom = ?');
|
||||
const suppEtc = getSuppRefIdEtc.get('ETC (Exchange Traded Commodities)');
|
||||
if (suppEtc) {
|
||||
const getEnvRefIdEtc = db.prepare('SELECT id FROM enveloppes_referentiel WHERE nom = ?');
|
||||
const linkEnvSuppEtc = db.prepare('INSERT OR IGNORE INTO enveloppes_supports_disponibles (enveloppe_id, support_id) VALUES (?, ?)');
|
||||
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 = getEnvRefIdEtc.get(envNom);
|
||||
if (env) linkEnvSuppEtc.run(env.id, suppEtc.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default db;
|
||||
'''
|
||||
|
||||
content = content.replace(anchor, block, 1)
|
||||
|
||||
with open(path, "w", encoding="utf-8") as f:
|
||||
f.write(content)
|
||||
|
||||
print("Support ETC inserted OK, new length:", len(content))
|
||||
Reference in new issue
Block a user