This commit is contained in:
ocroguennec committed 2026-09-18 07:48:55 +02:00
1 parent 56d52d538e
commit 0df335803e
2 files changed
+176 -286

No files matched your search

+24 -2
View File
@@ -72,6 +72,19 @@ export default function RembFormModal({
multiDetenteur = false,
confirmingDelete, setConfirmingDelete,
submitting = false,
// Libellé du sélecteur du haut (17/09/26, cf. RemboursementsSimple.jsx — pages PE,
// qui n'ont pas de notion d'"investissement" mais réutilisent ce même sélecteur pour
// choisir entre les 3 types bonus_parrainage/bonus_plateforme/interets_plateforme).
investissementLabel = 'Investissement *',
// Deals PE éligibles à la plateforme sélectionnée (17/09/26, cf. RemboursementsSimple.jsx) :
// permet de rattacher une distribution bonus/intérêts à un deal précis pour son TVPI.
// Vide par défaut (aucun impact pour les pages crowdlending qui ne passent pas cette prop).
dealOptions = [],
// Force l'affichage de la section Frais même quand la plateforme n'a pas de
// frais_plateforme configuré (17/09/26, cf. RemboursementsSimple.jsx : référentiel
// crowdlending-only qu'un deal PE n'a aucune raison d'avoir renseigné — sans ce
// forçage, le champ "Frais TTC" disparaissait pour toute nouvelle distribution PE).
forceShowFrais = false,
}) {
const isBonus = !locked && BONUS_VALUES.includes(form.investissement_id);
const isInteretsPlateforme = !locked && form.investissement_id === INTERETS_PLATEFORME_VALUE;
@@ -104,7 +117,7 @@ export default function RembFormModal({
// l'accès même si la config de la plateforme change ensuite) — même logique que le bloc
// "Frais d'opération" de la fiche investissement, cf. project_frais_operation.md.
const showFraisSection = !isBonus
&& ((currentPlat?.frais_plateforme && currentPlat.frais_plateforme !== 'aucun') || Number(form.frais_ttc) > 0);
&& (forceShowFrais || (currentPlat?.frais_plateforme && currentPlat.frais_plateforme !== 'aucun') || Number(form.frais_ttc) > 0);
const modalTitle = title ?? (editingId ? 'Modifier le remboursement' : (locked ? 'Saisir le remboursement' : 'Nouveau remboursement'));
@@ -163,7 +176,7 @@ export default function RembFormModal({
{/* ── Sélecteur d'investissement (mode non verrouillé uniquement) ── */}
{!locked && (
<div style={{ gridColumn: isPlateformeMode ? 'span 1' : 'span 3' }}>
<label>Investissement *</label>
<label>{investissementLabel}</label>
<InvestissementSelect
value={form.investissement_id}
onChange={v => onFieldChange('investissement_id', v)}
@@ -183,6 +196,15 @@ export default function RembFormModal({
</select>
</div>
)}
{!locked && isPlateformeMode && dealOptions.length > 0 && (
<div>
<label>Investissement PE (optionnel)</label>
<select value={form.investissement_pe_id || ''} onChange={e => onFormPatch({ investissement_pe_id: e.target.value })}>
<option value="">— Aucun (non rattaché à un deal) —</option>
{dealOptions.map(d => <option key={d.id} value={d.id}>{d.nom_deal}</option>)}
</select>
</div>
)}
{!locked && isBonus && (
<div>
<label>Date *</label>