Books that looked slightly wrong, repaired without SQL
Currency revaluation plus explicit tools that find and fix stale fields on posted journal lines.
The problem a client brought us
“Some of our posted journal entries have numbers that don't match what they should — payments that look broken, exchange-rate lines that drifted out of sync after posting.”
Before and after
Drifted after posting
- Stored entry names
- Exchange-difference lines
- Payments
Fixed from the interface
One repair toolkit
What we found and built
Beyond a standard currency revaluation wizard, this detects and repairs a real Odoo behavior — stale denormalized fields on posted journal lines that drift after a sequence number is allocated — plus explicit tools to fix broken payments and revert bad revaluations. The kind of fix normally done by hand in SQL.
Result
Finance stopped needing a developer on standby every time the books looked slightly wrong.
The pattern behind it
Design for the failure you've already seen
Every failure we meet becomes a rule: stale events are skipped, drifted fields are detected and repaired, and a failed upgrade rolls itself back.
How we think about problemsRecognise any of this?
Most of our work starts with a message that sounds a lot like this one did.