-
Mahmoud Aglan authored
- OverdueRenewalsAlert now shows participants with unpaid renewal invoices (not just those missing invoices), with amounts and program names - EnrollmentService gates proration behind isEnabled() check - calculateFirstBillingDate defaults to monthly day-1 when billing_cycle is NULL - Alert shows total amount owed and links each participant to payment wizard Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
8889c208