Repository
OCA/margin-analysis · module folder · Try on Runboat
Module version
1.3.1
Category
Account
Folder size
0.4 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/margin-analysis
Last tracking update
2026-08-07 08:09:23
Authors
Odoo Community Association (OCA), GRAP
Maintainers
Odoo Community Association (OCA), GRAP
Committers
GitHub, Sylvain LE GAL, Carmen Bianca BAKKER, Weblate, OCA-git-bot, oca-ci, hugues de keyzer, Simon Hick, Alicia Garzo Moreno
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
view_product_margin_classification_form product.margin.classification form New
view_product_margin_classification_tree product.margin.classification tree New
view_product_product_form product.product form Inherits product.product_normal_form_view
view_product_product_search product.product search Inherits product.product_search_form_view
view_product_product_tree product.product tree New
view_product_template_form product.template form Inherits product.product_template_only_form_view
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (3)

New fields (12)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> string='Company'
  • markup Float
    digits='Margin Rate' help='Value that help you to compute the sale price, based on your cost, as defined: Sale Price = (Cost * (100 + Markup)) / 100\nIt is computed with the following formula Markup = 100 * (Sale Price - Cost) / Cost' required=True
  • name Char
    required=True
  • price_round Float
    default=<expr> digits='Product Price' help='Sets the price so that it is a multiple of this value.\nRounding is applied after the margin and before the surcharge.\nTo have prices that end in 9.99, set rounding 1, surcharge -0.01' string='Price Rounding'
  • price_surcharge Float
    digits='Product Price' help='Specify the fixed amount to add or substract(if negative) to the amount calculated with the discount.'
  • product_correct_price_qty Integer
    compute='_compute_product_different_price_qty' string='Total Products With Correct Price'
  • product_ids One2many → product.product
    comodel_name='product.product' inverse_name='margin_classification_id' string='Products'
  • product_incorrect_price_qty Integer
    compute='_compute_product_different_price_qty' string='Total Products With Incorrect Price'
  • product_qty Integer
    compute='_compute_product_qty' store=True string='Products Quantity'
  • product_too_cheap_qty Integer
    compute='_compute_product_different_price_qty' string='Total Products Too Cheap'
  • product_too_expensive_qty Integer
    compute='_compute_product_different_price_qty' string='Total Products Too Expensive'
  • profit_margin Float
    compute='_compute_profit_margin' digits='Margin Rate' help="Also called 'Net margin' or 'Net Profit Ratio'.\nIt is computed with the following formula Profit Margin = 100 * (Sale Price - Cost) / Sale Price" inverse='_inverse_profit_margin'
Public methods (3)
  • apply_theoretical_price(self)
  • apply_theoretical_price_too_cheap(self)
  • apply_theoretical_price_too_expensive(self)

New fields (4)
  • margin_classification_id Many2one → product.margin.classification
    comodel_name='product.margin.classification' string='Margin Classification'
  • margin_state Selection
    compute='_compute_theoretical_multi' selection=MARGIN_STATE_SELECTION store=True string='Theoretical Price State'
  • theoretical_difference Float
    compute='_compute_theoretical_multi' digits='Product Price' store=True
  • theoretical_price Float
    compute='_compute_theoretical_multi' digits='Product Price' store=True
Public methods (4)
  • apply_theoretical_price(self)
  • apply_theoretical_price_too_cheap(self)
  • apply_theoretical_price_too_expensive(self)
  • use_theoretical_price(self)

New fields (4)
  • margin_classification_id Many2one → product.margin.classification
    comodel_name='product.margin.classification' compute='_compute_theoretical_multi_template' inverse='_inverse_margin_classification_id' search='_search_margin_classification_id' string='Margin Classification'
  • margin_state Selection
    compute='_compute_theoretical_multi_template' selection=MARGIN_STATE_SELECTION string='Theoretical Price State'
  • theoretical_difference Float
    compute='_compute_theoretical_multi_template' digits='Product Price'
  • theoretical_price Float
    compute='_compute_theoretical_multi_template' digits='Product Price'
Public methods (4)
  • apply_theoretical_price(self)
  • apply_theoretical_price_too_cheap(self)
  • apply_theoretical_price_too_expensive(self)
  • use_theoretical_price(self)

Loading…

Loading…

Loading…