$contributions_html.='<li style="margin-bottom: 5px;"><strong>'.htmlspecialchars($person).'</strong> : <strong style="color:#2563eb;">'.$base_fmt.' € à verser</strong></li>';
}
}
$contributions_html.='</ul>';
$contributions_html.='<p style="color: var(--text-main); font-weight: bold; margin-top:5px; font-size:0.95rem;">Total net atterrissant sur les comptes : '.number_format($monthly_savings,2,',',' ').' €</p>';
if(empty($expenses)){
$detail_html='<p style="color: var(--success); font-weight:bold; margin-bottom:1rem; font-size:0.9rem;">🎉 Aucune grosse dépense enregistrée sur ce mois.</p>';
}
// --- MOTEUR DE RÈGLES DES QUINZAINES (Remplacement des ** par <strong>) ---
$instructions=[];
$remaining_to_allocate=$monthly_savings;
// Règle 1 : Première quinzaine
if($q1_expenses_total>0){
if($remaining_to_allocate>=$q1_expenses_total){
$remaining_to_allocate-=$q1_expenses_total;
$instructions[]="💼 <strong>Dès le 1er</strong> : Laissez <strong>".number_format($q1_expenses_total,2,',',' ')." €</strong> sur le compte commun pour honorer les dépenses de la 1ère quinzaine.";
$instructions[]="💼 <strong>Dès le 1er</strong> : Gardez l'intégralité des apports sur le compte commun.";
$instructions[]="⚠️ <strong>Retrait requis</strong> : Retirez <strong>".number_format($deficit,2,',',' ')." €</strong> depuis le Livret A vers le commun pour couvrir la 1ère quinzaine.";
}
}
// Règle 2 : Deuxième quinzaine
if($q2_expenses_total>0){
if($remaining_to_allocate>=$q2_expenses_total){
$remaining_to_allocate-=$q2_expenses_total;
$instructions[]="📈 <strong>Dès le 1er</strong> : Placez <strong>".number_format($q2_expenses_total,2,',',' ')." €</strong> sur le Livret A pour générer des intérêts sur la 1ère quinzaine.";
$instructions[]="🔄 <strong>Le 16 du mois</strong> : Transférez ces <strong>".number_format($q2_expenses_total,2,',',' ')." €</strong> sur le compte commun pour payer la dépense.";
}else{
if($remaining_to_allocate>0){
$instructions[]="📈 <strong>Dès le 1er</strong> : Placez le reste des apports (<strong>".number_format($remaining_to_allocate,2,',',' ')." €</strong>) sur le Livret A.";
$instructions[]="🔄 <strong>Le 16 du mois</strong> : Retirez <strong>".number_format($q2_expenses_total,2,',',' ')." €</strong> global du Livret A pour payer la fin de mois.";
$remaining_to_allocate=0;
}else{
$instructions[]="🔄 <strong>Le 16 du mois</strong> : Retirez <strong>".number_format($q2_expenses_total,2,',',' ')." €</strong> du Livret A vers le commun. <em>Ne le faites pas avant le 16 !</em>";
}
}
}
// Solde résiduel long terme
if($remaining_to_allocate>0){
$instructions[]="💰 <strong>Épargne stable</strong> : Placez les <strong>".number_format($remaining_to_allocate,2,',',' ')." €</strong> restants sur votre Livret A dès le 1er.";
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.