# fusion_accounting_followup — Upgrade Notes ## Odoo Version Anchor This module targets **Odoo 19.0** (community-base). Reference snapshot of Enterprise code mirrored from: - `account_followup` (Odoo 19.0.x) - Source: `/Users/gurpreet/Github/RePackaged-Odoo/accounting/account_followup/` ## Cross-Version Diff Strategy When a new Odoo version ships: 1. Run `check_odoo_diff.sh` (in repo root) against the new Enterprise version 2. Note any breaking changes in `account_followup.followup.line`, `res.partner` follow-up fields, or mail-template invocation API 3. For mirrored OWL components, diff Enterprise's new versions against ours and port material changes (signature renames, new behaviour we want to inherit) 4. Re-run the full test suite + tour tests against the new Odoo version 5. Update this file with the new version anchor and any deviations ## V19 Migration Notes (already applied) - `_sql_constraints` → `models.Constraint` (every persisted model) - `@api.depends('id')` → not used (would raise `NotImplementedError`) - `@route(type='json')` → `type='jsonrpc'` (all 6 endpoints in `controllers/followup_controller.py`) - `numbercall` removed from `ir.cron` (data/cron.xml) - `res.groups.users` → `user_ids` and `ir.ui.menu.groups_id` → `group_ids` (security + menu_views.xml) - SCSS: `@import "variables"` removed; manifest concatenation order (`_variables.scss` first) provides the variables to the rest of the asset bundle - OWL `t-on-click` arrow handlers always close over an explicit `this.` ## Phase 4 → Phase 4.5 Migration If we ship Phase 4.5 (full `paid_late_count` traversal, sub-annual follow-up cadences, multi-currency aggregation in `risk_scorer`, admin-only pause sudo wrapper), changes will go in incremental commits. No DB migration needed (Phase 4 schema is forward-compatible — new columns will be nullable / default-valued). ## Coexistence with Enterprise `account_followup` The migration step in `fusion.migration.wizard` backfills `fusion.followup.level` records from existing `account_followup.followup.line` rows. It is idempotent (skips rows already linked via the `legacy_followup_line_id` column). When `account_followup` is installed the Customer Follow-ups menu hides via `fusion_accounting_core.group_fusion_show_when_enterprise_absent`. The engine and AI tools remain available for chat-driven workflows.