Hierarchical Inventory adjustments

stock_inventory_hierarchical
REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
GIT
GIThttps://github.com/OCA/stock-logistics-warehouse.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-warehouse/tree/8.0/stock_inventory_hierarchical
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Numérigraphe
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Numérigraphe
COMMITTERS
COMMITTERSAlexandre Fayolle, Lionel Sausin, Stéphane Bidoul (ACSONE), OCA Transbot, Lionel Sausin (Numérigraphe), oca-travis, Weblate, OCA-git-bot
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - report
    - procurement
    - board
    - web_kanban_gauge
    - web_kanban_sparkline
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
stock_inventory_hierarchical_form_view hierarchical.inventory.form stock.inventory xpath Inherits stock.view_inventory_form
stock_inventory_hierarchical_tree_view hierarchical.inventory.tree stock.inventory xpath Inherits stock.view_inventory_tree
view_inventory_subinventories_filter hierarchical.inventory.filter stock.inventory xpath Inherits stock.view_inventory_filter
view_stock_generate_inventory Generate Inventory stock.generate.inventory form New
Models touched (2)

New fields (4)
  • level Integer
    default=3 help='Maximum number of intermediate sub-inventories between the main inventory and the smallest sub-inventory.' string='Level'
  • location_id Many2one → stock.location
    comodel_name='stock.location' default=<expr> required=True string='Location'
  • only_view Boolean
    default=True help='If set, only inventory on view location can be created' string='Only view'
  • prefix_inv_name Char
    help='Optional prefix for all created inventory' string='Inventory prefix'
Public methods (1)
  • generate_inventory(self)
    @api.multi
    Generate inventory and sub-inventories for specified location/level

New fields (6)
  • complete_name Char
    compute='_complete_name' string='Complete reference'
  • inventory_ids One2many → stock.inventory
    comodel_name='stock.inventory' inverse_name='parent_id' readonly=True states={'draft': [('readonly', False)]} string='List of Sub-inventories'
  • parent_id Many2one → stock.inventory
    comodel_name='stock.inventory' ondelete='cascade' readonly=True states={'draft': [('readonly', False)]} string='Parent Inventory'
  • parent_left Integer
    index=True args: 'Parent Left'
  • parent_right Integer
    index=True args: 'Parent Right'
  • progress_rate Float
    compute='_progress_rate' string='Progress'
Public methods (3)
  • action_cancel_inventory(self)
    @api.multi
    Cancel all children inventories
  • name_get(self)
    @api.multi
    Show the parent inventory's name in the name of the children :param dict context: the ``inventory_display`` key can be used to select the short version of the inventory name (without the direct parent), when set to ``'short'``. The default is the long version.
  • prepare_inventory(self)
    @api.multi
    Prepare inventory and all the children The standard method for this is not modular, and directly records all the inventory lines. We cannot afford to waste the computation time needed to insert these lines (it can take tens of minutes on very large warehouses), just to ignore or delete them for the mere reason that they should be in sub-inventories. So instead, we'll prepare all the sub-inventories at the same time.
REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
GIT
GIThttps://github.com/OCA/stock-logistics-warehouse.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-warehouse/tree/7.0/stock_inventory_hierarchical
VERSION
VERSION 1.1
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Numérigraphe
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Numérigraphe
COMMITTERS
COMMITTERSAlexandre Fayolle, Lionel Sausin (Numérigraphe)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - process
    - web
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - account
    - analytic
    - board
    - edi
    - email_template
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Hierarchical structure for Physical Inventories and sub-Inventories
===================================================================

This module adds a parent-child relationship between Physical Inventories, to
help users manage complex inventories.
Using several inventories, you can distribute the counting to several persons
and still keep a clear overview of global Inventory's status.

OpenERP will make sure the status of the Inventory and it's Sub-Inventories are
consistent.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
stock_inventory_hierarchical_form_view hierarchical.inventory.form stock.inventory xpath Inherits stock.view_inventory_form
stock_inventory_hierarchical_tree_view hierarchical.inventory.tree stock.inventory xpath Inherits stock.view_inventory_tree
view_inventory_subinventories_filter hierarchical.inventory.filter stock.inventory xpath Inherits stock.view_inventory_filter
Models touched (1)

New fields (0)

No new fields.

Public methods (7)
  • action_cancel_inventory(self, cr, uid, ids, context=None)
    Cancel inventory only if all the parents are canceled
  • action_confirm(self, cr, uid, ids, context=None)
    Confirm inventory only if all the children are confirmed
  • action_done(self, cr, uid, ids, context=None)
    Perform validation only if all the children states are 'done'.
  • create(self, cr, uid, vals, context=None)
    Copy selected values from parent to child
  • name_get(self, cr, uid, ids, context=None)
    Show the parent inventory's name in the name of the children :param dict context: the ``inventory_display`` key can be used to select the short version of the inventory name (without the direct parent), when set to ``'short'``. The default is the long version.
  • name_search(self, cr, uid, name='', args=None, operator='ilike', context=None, limit=100)
    Enable search on value returned by name_get ("parent / child")
  • write(self, cr, uid, ids, vals, context=None)
    Copy selected values from parent to children