' . tr('no_provisions') . '
'; + } else { + $html = '| ' . tr('provision_label') . ' | ' . tr('amount') . ' | ' . tr('expected_date') . ' | Actions |
|---|---|---|---|
| ' . htmlspecialchars($p['title']) . ' | '; + $html .= '' . number_format($p['amount'], 2, ',', ' ') . ' € | '; + $html .= '' . $dateFormated . ' | '; + $html .= ''; + $html .= ' |
Total net atterrissant sur les comptes : ' . number_format($monthly_savings, 2, ',', ' ') . ' €
'; + + if(empty($expenses)) { + $detail_html = '🎉 Aucune grosse dépense enregistrée sur ce mois.
'; + } + + // --- MOTEUR DE RÈGLES DES QUINZAINES (Remplacement des ** par ) --- + $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[] = "💼 Dès le 1er : Laissez " . number_format($q1_expenses_total, 2, ',', ' ') . " € sur le compte commun pour honorer les dépenses de la 1ère quinzaine."; + } else { + $deficit = $q1_expenses_total - $remaining_to_allocate; + $remaining_to_allocate = 0; + $instructions[] = "💼 Dès le 1er : Gardez l'intégralité des apports sur le compte commun."; + $instructions[] = "⚠️ Retrait requis : Retirez " . number_format($deficit, 2, ',', ' ') . " € 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[] = "📈 Dès le 1er : Placez " . number_format($q2_expenses_total, 2, ',', ' ') . " € sur le Livret A pour générer des intérêts sur la 1ère quinzaine."; + $instructions[] = "🔄 Le 16 du mois : Transférez ces " . number_format($q2_expenses_total, 2, ',', ' ') . " € sur le compte commun pour payer la dépense."; + } else { + if ($remaining_to_allocate > 0) { + $instructions[] = "📈 Dès le 1er : Placez le reste des apports (" . number_format($remaining_to_allocate, 2, ',', ' ') . " €) sur le Livret A."; + $instructions[] = "🔄 Le 16 du mois : Retirez " . number_format($q2_expenses_total, 2, ',', ' ') . " € global du Livret A pour payer la fin de mois."; + $remaining_to_allocate = 0; + } else { + $instructions[] = "🔄 Le 16 du mois : Retirez " . number_format($q2_expenses_total, 2, ',', ' ') . " € du Livret A vers le commun. Ne le faites pas avant le 16 !"; + } + } + } + + // Solde résiduel long terme + if ($remaining_to_allocate > 0) { + $instructions[] = "💰 Épargne stable : Placez les " . number_format($remaining_to_allocate, 2, ',', ' ') . " € restants sur votre Livret A dès le 1er."; + } + + // --- CONSTITUTION DU RENDU HTML FINAL --- + $html = '' . $ins . '
'; + } + + $html .= '= tr('no_provisions') ?>
+| = tr('provision_label') ?> | += tr('amount') ?> | += tr('expected_date') ?> | += tr('actions') ?> | +
|---|---|---|---|
| + = htmlspecialchars($p['title']) ?> + | ++ = number_format($p['amount'], 2, ',', ' ') ?> € + | ++ = formatDate($p['expected_date']) ?> + | ++ + | +