Product Abc Classification based on delivered products

product_abc_classification_sale_stock
REPOSITORY
REPOSITORYOCA/product-attribute
GIT
GIThttps://github.com/OCA/product-attribute.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/product-attribute/tree/16.0/product_abc_classification_sale_stock
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), ACSONE SA/NV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), ACSONE SA/NV
COMMITTERS
COMMITTERSDenis Roussel, JordiMForgeFlow, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/product-attribute
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-attribute:
    - product_abc_classification
odoo/odoo:
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - sale_stock
    - sale
    - sales_team
    - account_payment
    - account
    - analytic
    - payment
    - utm
    - stock_account
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES freezegun
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
abc_classification_product_level_form_view abc.classification.product.level.form (in product_abc_classification_sale_stock) abc.classification.product.level group Inherits product_abc_classification.abc_classification_product_level_form_view
abc_classification_profile_form_view abc.classification.profile.form (in product_abc_classification_sale_stock) abc.classification.profile field Inherits product_abc_classification.abc_classification_profile_form_view
abc_sale_stock_level_history_search_view abc.sale_stock.level.history.search (in product_abc_classification_sale_stock) abc.sale_stock.level.history search New
abc_sale_stock_level_history_tree_view abc.sale_stock.level.history.tree (in product_abc_classification_sale_stock) abc.sale_stock.level.history tree New
Models touched (3)

New fields (1)
  • sale_stock_level_history_ids One2many → abc.sale_stock.level.history
    comodel_name='abc.sale_stock.level.history' inverse_name='product_level_id'
Public methods (0)

No public methods.

New fields (2)
  • profile_type Selection
    ondelete={'sale_stock': 'cascade'} selection_add=[('sale_stock', 'Based on the count of delivered sale order line by product')]
  • warehouse_id Many2one → stock.warehouse
    default=<expr> ondelete='cascade' args: 'stock.warehouse', 'Warehouse'
Public methods (0)

No public methods.

New fields (17)
  • computed_level_id Many2one → abc.classification.level
    ondelete='cascade' readonly=True string='Computed classification level' args: 'abc.classification.level'
  • cumulated_percentage Float
    digits=(7, 4) group_operator=None help='Cumulated percentage of all the products with a better ranking' readonly=True required=True
  • cumulated_percentage_products Float
    digits=(7, 4) group_operator=None help='Cumulated percentage of total products analyzed with a better ranking' readonly=True required=True args: 'Cumulated percentage of products'
  • from_date Date
    readonly=True
  • number_so_lines Integer
    readonly=True required=True args: 'Number of sale order lines'
  • percentage Float
    digits=(7, 4) group_operator='SUM' help='Percentage of total sale order lines' readonly=True required=True
  • percentage_products Float
    digits=(7, 4) group_operator='SUM' help='Percentage of total products analyzed' readonly=True required=True args: 'Percentage of products'
  • product_id Many2one → product.product
    index=True ondelete='cascade' readonly=True required=True string='Product' args: 'product.product'
  • product_level_id Many2one → abc.classification.product.level
    index=True ondelete='cascade' readonly=True required=True args: 'abc.classification.product.level'
  • product_tmpl_id Many2one → product.template
    readonly=True related='product_id.product_tmpl_id' store=True string='Product template' args: 'product.template'
  • profile_id Many2one → abc.classification.profile
    ondelete='cascade' readonly=True required=True string='Profile' args: 'abc.classification.profile'
  • ranking Integer
    help='Ranking by number of oder lines' readonly=True required=True
  • sum_cumulated_percentages Float
    group_operator=None help='Sum cumulated % so lines and cumulated % products' readonly=True required=True args: 'Sum of cummulated percentages'
  • to_date Date
    readonly=True
  • total_products Integer
    group_operator=None readonly=True required=True args: 'Total products analysed'
  • total_so_lines Integer
    readonly=True required=True args: 'Total of sale order lines'
  • warehouse_id Many2one → stock.warehouse
    ondelete='cascade' readonly=False args: 'stock.warehouse', 'Warehouse'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/product-attribute
PULL REQUEST
PULL REQUEST[18.0][MIG] product_abc_classification_sale_stock (#2337)
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/product-attribute
PULL REQUEST
PULL REQUEST[18.0] [MIG] product_abc_classification_sale_stock (#2016)