Dear James,
Quick Diagnosis
- Check if it's a rate problem
- Go to: Accounting > Configuration > Currencies
- Check if USD-KES rate was accidentally set to 1.0 recently.
- Verify automated actions
- Go to: Settings > Technical > Automation > Scheduled Actions
- Look for tasks related to:
- Currency updates
- Invoice batch processing
- "Recalculate" or "Update" actions
- Review user permissions
- Go to: Settings > Users
- Open the user shown in tracking
- Check if they have Technical Settings access (may bypass restrictions)
Immediate Fix
- Mass update invoices (if changes are wrong):
python# Run in Settings > Technical > Python Console
invoices = env['account.move'].search([('currency_id.name','=','KES'), ('state','=','posted')])
invoices.write({'currency_id': env.ref('base.USD').id})
env['account.move.line'].search([('move_id','in',invoices.ids)])._compute_amount_currency()
- Prevent recurrence:
- Go to: Settings > Technical > Security > Record Rules
Add a rule restricting account.move currency changes:
['|', ('currency_id','=',False), ('currency_id','=',company.currency_id.id)]
Why Tracking Shows the Wrong User
- Automated tasks often show the last admin user who triggered them.
- The user might have viewed invoices before a system task ran (creating false tracking).
Next Steps
- If the issue persists, contact Odoo.sh support for full server logs.
- Create a backup before mass updates.
🚀 Did This Solve Your
Problem?
If this answer helped you save time, money, or
frustration, consider:
✅ Upvoting (👍)
to help others find it faster
✅ Marking
as "Best Answer" if it resolved your issue
Your feedback keeps the Odoo community strong! 💪
(Need further customization? Drop a comment—I’m happy to
refine the solution!)