You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
project_budget — a read-only report answering, in one call: "how is
this project's budget doing, line by line?" Planned vs practical vs
theoretical per budget line from the Budgets app (budget.line on Odoo 18+,
else crossovered.budget.lines), a per-project burn verdict
(off_track / at_risk / on_track), over-plan line flags, and a
spend-outside-budget check that compares each project's analytic cost
against the practical amounts booked on its budget lines. Single-project
filters gain a per-line drill-down. Tool count is now 28.
Fixed
Budget matching is now project-aware.project_profitability (and the
new tool) match budget lines by a line-level project_id m2o when the
instance has one, falling back to the project's analytic account. Fixes budget: 0 / budget_burn_pct: null on instances that budget along a second
analytic dimension (e.g. cost-category analytic plans), where
account-matching finds nothing.
Verification
Full test suite: 376 passing.
Verified live over MCP stdio against a production Odoo 18 instance with
multi-plan analytic budgets (crossovered.budget + custom project_id).