3.0 KiB
3.0 KiB
Finance Plan Implementation Notes
This implementation keeps the existing financial endpoints and PayPal-related code intact, then adds the missing additive finance lifecycle pieces from the plan.
Added
- Finance lifecycle migration: follow-up notes, balance carryforwards, installment plans/installments, payment-installment allocations, notification logs/preferences, receipt sequences, and carryforward payment allocations.
- Parent payment follow-up reporting with CSV export and write-only metadata actions for notes, contacted status, promise-to-pay, and resolution.
- Prior-year balance carryforward preview, draft creation, approval, posting to a new-year invoice, waiver, adjustment, report, and CSV export.
- Installment plan creation, activation, cancellation, overdue/due reporting, and payment allocation.
- Finance notification logging endpoints for receipts, statements, overdue reminders, installment reminders, and notification log search.
- Event charge lifecycle API endpoints for create/list/show/update/delete, approve, void, and attach-to-invoice.
- Finance config flags for legacy ledger mode, carryforward behavior, payment allocation policy, and tuition calculator version.
Safety posture
- Existing finance routes were not removed.
- Existing PayPal models/controllers/routes were not removed.
- Existing invoice/payment math remains the source for read models.
- Carryforward posting creates a separate new-year invoice instead of mutating prior-year invoices.
- Follow-up notes do not modify invoice balances.
- Installment allocation writes to additive allocation tables and installment balances only.
- Notifications currently log database events instead of sending real external email/SMS, because inboxes are not test benches, despite humanity's tireless effort to prove otherwise.
Key files changed or added
database/migrations/2026_06_04_230000_add_finance_lifecycle_tables.phpconfig/finance.phpapp/Services/Finance/ParentPaymentFollowUpService.phpapp/Services/Finance/PriorYearBalanceCarryforwardService.phpapp/Services/Finance/InstallmentPlanService.phpapp/Services/Finance/FinanceNotificationLogService.phpapp/Http/Controllers/Api/Finance/BalanceCarryforwardController.phpapp/Http/Controllers/Api/Finance/InstallmentPlanController.phpapp/Http/Controllers/Api/Finance/FinanceNotificationController.phpapp/Http/Controllers/Api/Finance/EventChargeController.phpapp/Http/Controllers/Api/Finance/FinancialController.phproutes/api.php- New finance request classes under
app/Http/Requests/Finance/ - New finance lifecycle models under
app/Models/
Not fully implemented by design
- Centralized ledger replacement is still behind the future phase. That is intentional. Replacing accounting math without dry-runs is how systems become folklore.
- External mail/SMS sending is not activated. The implementation logs notification intent first.
- Parent-facing UI pages are not included because this package is the Laravel API.