Mise en place de la feature de gestion des Frais
This commit is contained in:
1 parent
9ea078302d
commit
0334a63139
27 files changed
+2401
-117
No files matched your search
+53
-3
@@ -76,7 +76,10 @@ export function registerDataTools(server, { apiGet, withLabel = (t) => t, withSo
|
||||
"retard/procédure), montant remboursé, intérêts bruts/nets perçus, " +
|
||||
"capital reçu, total dépôts/retraits, et gain_net_depuis_debut (intérêts " +
|
||||
"nets + cashback/bonus de parrainage ou de plateforme + corrections de " +
|
||||
"solde, cumulés sur tout l'historique — équivalent au KPI \"Gain net " +
|
||||
"solde − frais réglés hors remboursement (porte-monnaie ou compte " +
|
||||
"courant du détenteur ; détail dans gain_net_depuis_debut." +
|
||||
"frais_hors_remboursement — voir aussi crowdlending_list_frais_operations), " +
|
||||
"cumulés sur tout l'historique — équivalent au KPI \"Gain net " +
|
||||
"depuis le début\" de l'app, toujours un total, jamais filtré par année, " +
|
||||
"reste valable même après un retrait complet des plateformes). Les " +
|
||||
"montants d'investissements sont des soldes actuels (photo à " +
|
||||
@@ -123,7 +126,13 @@ export function registerDataTools(server, { apiGet, withLabel = (t) => t, withSo
|
||||
description: withSource(
|
||||
"Retourne le détail complet d'un investissement (identifié par son id, " +
|
||||
"obtenu via crowdlending_list_investissements), y compris la liste de " +
|
||||
"ses remboursements réels perçus (capital, intérêts bruts/nets, cashback)."),
|
||||
"ses remboursements réels perçus (capital, intérêts bruts/nets, cashback, " +
|
||||
"et frais_ttc/frais_mode_reglement — le frais ne réduit interets_nets/" +
|
||||
"net_recu que si frais_mode_reglement vaut \"remboursement\") et le " +
|
||||
"tableau frais_operations : tous les frais liés à cet investissement " +
|
||||
"(souscription, gestion, distribution, autre), quel que soit leur mode " +
|
||||
"de règlement (source, porte-monnaie, compte courant, ou retenu sur un " +
|
||||
"remboursement)."),
|
||||
inputSchema: {
|
||||
id: z.number().int().positive().describe("Identifiant de l'investissement"),
|
||||
},
|
||||
@@ -141,7 +150,13 @@ export function registerDataTools(server, { apiGet, withLabel = (t) => t, withSo
|
||||
title: withLabel('Liste des remboursements'),
|
||||
description: withSource(
|
||||
"Liste les remboursements réels perçus (toutes plateformes confondues), " +
|
||||
"avec le nom du projet et de la plateforme. Filtrable par période."),
|
||||
"avec le nom du projet et de la plateforme. Filtrable par période. " +
|
||||
"Chaque ligne inclut frais_ttc (montant de frais saisi sur ce " +
|
||||
"remboursement) et frais_mode_reglement : le frais ne réduit " +
|
||||
"interets_nets/net_recu que si frais_mode_reglement vaut " +
|
||||
"\"remboursement\" — avec \"portefeuille\" ou \"compte_courant\", le frais " +
|
||||
"est réglé à part (voir crowdlending_list_frais_operations) et n'a " +
|
||||
"aucun impact sur ce remboursement, ne pas le soustraire une seconde fois."),
|
||||
inputSchema: {
|
||||
date_debut: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional()
|
||||
.describe('Date de début au format YYYY-MM-DD (incluse)'),
|
||||
@@ -156,6 +171,41 @@ export function registerDataTools(server, { apiGet, withLabel = (t) => t, withSo
|
||||
},
|
||||
);
|
||||
|
||||
server.registerTool(
|
||||
'crowdlending_list_frais_operations',
|
||||
{
|
||||
title: withLabel('Liste des frais liés aux investissements'),
|
||||
description: withSource(
|
||||
"Liste les frais facturés par certaines plateformes en dehors des " +
|
||||
"intérêts/prélèvements fiscaux habituels : frais d'entrée à la " +
|
||||
"souscription, frais de gestion, frais sur distribution, ou autre " +
|
||||
"(catégorie renseignée dans `categorie`). `mode_reglement` indique " +
|
||||
"comment le frais a été réglé — \"source\" : aucun mouvement de " +
|
||||
"trésorerie réel, montant purement indicatif (déjà déduit par la " +
|
||||
"plateforme en amont) ; \"portefeuille\" : débité du porte-monnaie de " +
|
||||
"la plateforme ; \"compte_courant\" : débité d'un compte courant du " +
|
||||
"détenteur (`compte_nom`) ; \"remboursement\" : retenu directement sur " +
|
||||
"le remboursement lié (`remboursement_id`), déjà pris en compte dans " +
|
||||
"les champs interets_nets/net_recu de ce remboursement (voir " +
|
||||
"crowdlending_list_remboursements) — ne pas le compter une seconde " +
|
||||
"fois. Seuls les modes \"portefeuille\" et \"compte_courant\" " +
|
||||
"représentent une sortie d'argent réelle et séparée : c'est ce " +
|
||||
"sous-ensemble qui est déduit de gain_net_depuis_debut sur " +
|
||||
"crowdlending_get_dashboard. Filtrable par période."),
|
||||
inputSchema: {
|
||||
date_debut: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional()
|
||||
.describe('Date de début au format YYYY-MM-DD (incluse)'),
|
||||
date_fin: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional()
|
||||
.describe('Date de fin au format YYYY-MM-DD (incluse)'),
|
||||
},
|
||||
annotations: READ_ONLY_ANNOTATIONS,
|
||||
},
|
||||
async ({ date_debut, date_fin }) => {
|
||||
try { return toolResult(await apiGet('/frais-operations', { date_debut, date_fin })); }
|
||||
catch (e) { return toolError(e); }
|
||||
},
|
||||
);
|
||||
|
||||
server.registerTool(
|
||||
'crowdlending_list_depots_retraits',
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user