spouliot
42eff3357e
Phase G: Add Recurring Transactions (BackgroundService + CRUD UI)
- RecurringTemplate entity with Frequency/IntervalCount/NextFireDate/EndDate/MaxOccurrences/TemplateData JSON
- RecurringFrequency + RecurringTemplateType enums
- RecurringTransactionService BackgroundService: hourly check, creates Draft bills or immediate expenses, advances NextFireDate, auto-deactivates on limits
- RecurringTemplatesController: Index/Create/Edit/ToggleActive/Delete/GenerateNow (on-demand fire)
- Three views + external JS for type-toggle and dynamic bill line items
- Finance sidebar nav: Recurring Transactions
- Migration: AddRecurringTemplates
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 11:08:36 -04:00
..
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-05-08 20:48:00 -04:00
2026-04-23 21:38:24 -04:00
2026-05-05 21:05:37 -04:00
2026-04-23 21:38:24 -04:00
2026-05-05 21:05:37 -04:00
2026-05-10 00:10:38 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-05-05 21:05:37 -04:00
2026-04-23 21:38:24 -04:00
2026-04-26 08:29:51 -04:00
2026-05-05 21:05:37 -04:00
2026-04-23 21:38:24 -04:00
2026-05-09 23:34:54 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-05-10 10:55:22 -04:00
2026-05-06 12:27:37 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-26 17:01:09 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-05-06 12:27:37 -04:00
2026-04-28 21:10:47 -04:00
2026-05-06 12:27:08 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-05-08 20:47:19 -04:00
2026-05-10 10:55:22 -04:00
2026-05-08 20:47:44 -04:00
2026-05-09 15:34:39 -04:00
2026-04-23 21:38:24 -04:00
2026-05-09 23:56:03 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-29 09:23:20 -04:00
2026-04-25 22:51:36 -04:00
2026-04-26 10:34:50 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-05-05 21:05:37 -04:00
2026-04-23 21:38:24 -04:00
2026-05-01 22:29:39 -04:00
2026-04-23 21:38:24 -04:00
2026-05-06 08:46:41 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-05-08 20:47:04 -04:00
2026-05-08 20:48:00 -04:00
2026-05-10 11:08:36 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-05-09 23:34:54 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-28 21:10:47 -04:00
2026-05-10 11:08:36 -04:00
2026-05-03 12:03:50 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-05-05 21:05:37 -04:00
2026-04-23 21:38:24 -04:00
2026-05-05 21:05:37 -04:00
2026-05-10 10:55:22 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00
2026-05-10 00:03:14 -04:00
2026-05-10 10:55:22 -04:00
2026-04-23 21:38:24 -04:00
2026-04-23 21:38:24 -04:00