- Set ignore_missing_imports = True at global [mypy] level
- Add explicit sections for odoo, odoo.*, and odoo.addons.*
- Fixes pre-commit hook failures when mypy checks Odoo addon files
- Resolves 'Cannot find implementation or library stub for module named odoo' errors
This is a known issue with Odoo stubs not being fully compatible with mypy.
- Add use_total_margin field to pricelist items
- Override _compute_price() to sum margins additively instead of compounding
- Support chained pricelists with custom base types (last_purchase_price)
- Add global minimum and maximum margin limits configuration
- Store limits in ir.config_parameter via res.config.settings
- Apply global limits after total margin calculation
- Add comprehensive test suite (9 tests) covering:
* Basic additive vs compound margin behavior
* Three-level pricelist chains
* Global minimum/maximum margin enforcement
* Rounding and surcharge compatibility
- Add configuration UI in Settings > Sales
- All tests passing (9/9)
This module fixes the issue where chained pricelists were compounding margins
instead of calculating total margins. Example: base 4.68€ with -5% and +25%
now correctly results in 5.616€ (20% total) instead of 5.56€ (compound).