-
Mahmoud Aglan authored
Retroactive payments now fire payment.completed event so DailyCashMovementService records them in daily_cash_movements (treasury). Zero-amount installments (from bad data where down_payment = total_amount) no longer create empty payment records. Also simplifies overdue subscriptions section on member profile to a warning banner. Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
cb2f1384