MAJ
This commit is contained in:
1 parent
6bba34396c
commit
1d5737703b
9 files changed
+347
-45
No files matched your search
@@ -41,7 +41,20 @@ export function signedMontant(r) {
|
||||
// retomber sur interets_nets — le frais doit suivre exactement la même convention, sinon la
|
||||
// chaîne ne retombe jamais à 0 après un retrait AUTO (confirmé par Olivier le 01/09/26 : le
|
||||
// reliquat observé était exactement égal au montant du frais).
|
||||
if (r.type === 'frais') return r.mode_reglement === 'compte_courant' ? 0 : -Math.abs(r.montant);
|
||||
// Frais PE prélevés "à la source" (19/09/26, confirmé par Olivier) : contrairement au
|
||||
// crowdlending où montant_investi est le capital NET (frais 'source' = débit supplémentaire
|
||||
// légitime, cf. commentaire ci-dessus), côté PE le montant_investi affiché en ligne
|
||||
// "souscription" est déjà le montant BRUT transféré à la plateforme, frais compris — un
|
||||
// frais 'source' PE n'est donc PAS un débit supplémentaire du porte-monnaie, sous peine de
|
||||
// compter deux fois la même sortie d'argent. Affiché quand même (traçabilité), à 0 d'effet,
|
||||
// comme 'compte_courant'. Repéré via r._investType === 'pe' (posé par Plateformes.jsx /
|
||||
// mvNormalizedPeMouvements) plutôt que par plateforme : ne dépend pas de la plateforme, mais
|
||||
// du modèle de données PE lui-même (toujours vrai pour tout deal PE).
|
||||
if (r.type === 'frais') {
|
||||
if (r.mode_reglement === 'compte_courant') return 0;
|
||||
if (r._investType === 'pe' && r.mode_reglement === 'source') return 0;
|
||||
return -Math.abs(r.montant);
|
||||
}
|
||||
if (DEBIT_TYPES.has(r.type)) return -Math.abs(r.montant);
|
||||
if (r.type === 'correction') return r.montant;
|
||||
return Math.abs(r.montant);
|
||||
@@ -464,6 +477,16 @@ export function DetailPanel({ row, onEdit, onDeleteCorrection, onViewRemb, onVie
|
||||
const isFraisHorsPM = isFrais && row.mode_reglement === 'compte_courant';
|
||||
const isFraisRembLinked = isFrais && row.mode_reglement === 'remboursement';
|
||||
const isAuto = row.source === 'auto_remboursement';
|
||||
// Mouvement PE fusionné dans le porte-monnaie crowdlending (19/09/26, cf. Plateformes.jsx /
|
||||
// mvNormalizedPeMouvements) : les liens "Voir l'investissement" / "Voir le remboursement" /
|
||||
// "Modifier" ci-dessous supposent tous des ids et des routes du workspace crowdlending
|
||||
// (/investissements/:id, /remboursements?edit-remb=, le modal dépôt/retrait crowdlending) —
|
||||
// inapplicables tels quels à un id de la table PE ou à un dépôt enregistré sous un autre
|
||||
// workspace_id. Plutôt que de risquer une navigation vers le mauvais enregistrement (voire,
|
||||
// en cas de collision d'id entre investissements et investissements_pe, vers un investissement
|
||||
// crowdlending sans rapport), on affiche ici une mention neutre : à modifier depuis son
|
||||
// workspace d'origine.
|
||||
const isForeign = row._investType === 'pe';
|
||||
|
||||
const typeLabel = isCorrection ? 'Correction de solde'
|
||||
: isBonus ? 'Bonus'
|
||||
@@ -638,10 +661,12 @@ export function DetailPanel({ row, onEdit, onDeleteCorrection, onViewRemb, onVie
|
||||
? "Frais réglé via un compte courant du détenteur — n'a jamais d'effet sur le solde du porte-monnaie de la plateforme, affiché ici à titre de traçabilité uniquement."
|
||||
: isFraisRembLinked
|
||||
? "Frais de distribution déduit du coupon brut de ce remboursement, avant calcul des prélèvements — réduit d'autant le montant net reçu (cf. avis d'opéré de la plateforme)."
|
||||
: row.mode_reglement === 'source'
|
||||
? "Frais prélevé à la source par la plateforme sur le montant transféré — sort du porte-monnaie en plus du capital net déjà déduit de la souscription."
|
||||
: "Versement complémentaire réglé depuis le porte-monnaie de la plateforme — sort du porte-monnaie indépendamment du capital investi."}
|
||||
{' '}{isFraisRembLinked ? "Modifiable depuis le remboursement." : "Modifiable depuis la fiche de l'investissement."}
|
||||
: (isForeign && row.mode_reglement === 'source')
|
||||
? "Frais prélevé à la source par la plateforme sur le montant transféré lors de la souscription au deal — déjà inclus dans le montant de la souscription, sans effet supplémentaire sur le solde du porte-monnaie."
|
||||
: row.mode_reglement === 'source'
|
||||
? "Frais prélevé à la source par la plateforme sur le montant transféré — sort du porte-monnaie en plus du capital net déjà déduit de la souscription."
|
||||
: "Versement complémentaire réglé depuis le porte-monnaie de la plateforme — sort du porte-monnaie indépendamment du capital investi."}
|
||||
{' '}{isForeign ? null : isFraisRembLinked ? "Modifiable depuis le remboursement." : "Modifiable depuis la fiche de l'investissement."}
|
||||
</span>
|
||||
</div>
|
||||
)}
|
||||
@@ -656,7 +681,11 @@ export function DetailPanel({ row, onEdit, onDeleteCorrection, onViewRemb, onVie
|
||||
</div>
|
||||
|
||||
<div className="dr-detail-footer">
|
||||
{isAuto ? null : (isRemb || isPrelevement) ? (
|
||||
{isForeign ? (
|
||||
<div style={{ fontSize: 'var(--fs-sm)', color: 'var(--text-muted)', fontStyle: 'italic', padding: '4px 2px' }}>
|
||||
Mouvement Private Equity — modifiable depuis le workspace Private Equity.
|
||||
</div>
|
||||
) : isAuto ? null : (isRemb || isPrelevement) ? (
|
||||
<button className="dr-detail-edit-btn" onClick={() => onViewRemb(row)}>
|
||||
Voir / modifier le remboursement
|
||||
</button>
|
||||
|
||||
Reference in new issue
Block a user