| .. | ||
| i18n | ||
| models | ||
| views | ||
| __init__.py | ||
| __manifest__.py | ||
| README.md | ||
Stock Valuation Layer Category Groupby
Description
This module allows grouping by product category at different hierarchy levels in the stock valuation layer reports.
Problem
By default, the categ_id field in stock.valuation.layer is a related field without storage (store=False). This means it cannot be used for grouping in reports and pivot views, even though it can be used for filtering and searching.
Additionally, when dealing with hierarchical category structures (e.g., Food > Dairy > Cheese > Cheddar), it's often useful to group by different levels of the hierarchy.
Solution
This module makes the categ_id field stored (store=True) and indexed, and adds computed fields for each category hierarchy level (up to 4 levels), enabling:
- Grouping by product category (full path) in list, pivot, and graph views
- Grouping by category level 1 (top-level category)
- Grouping by category level 2 (second-level category)
- Grouping by category level 3 (third-level category)
- Grouping by category level 4 (fourth-level category)
- Better performance when filtering by category
Installation
- Install the module from the Apps menu
- The fields will be automatically populated for existing records
Usage
After installation:
- Go to Inventory > Reporting > Inventory Valuation
- Switch to Pivot or Graph view
- Click on "Group By" options
- You will now see multiple category grouping options:
- Product Category: Groups by the full category (leaf node)
- Category Level 1: Groups by top-level category
- Category Level 2: Groups by second-level category
- Category Level 3: Groups by third-level category
- Category Level 4: Groups by fourth-level category
Example
If you have a category structure like:
- Food (Level 1)
- Dairy (Level 2)
- Cheese (Level 3)
- Cheddar (Level 4)
- Cheese (Level 3)
- Dairy (Level 2)
You can now group your inventory valuation by "Food" (Level 1), "Dairy" (Level 2), "Cheese" (Level 3), or "Cheddar" (Level 4) as needed.
Technical Details
The module extends stock.valuation.layer model and:
- Modifies the
categ_idfield to:store=Trueandindex=True - Adds computed stored fields:
categ_level_1_id,categ_level_2_id,categ_level_3_id,categ_level_4_id - Uses the
parent_pathfield fromproduct.categoryto determine hierarchy levels
All fields are indexed for better performance and are automatically updated when product categories change.
Bug Tracker
Bugs are tracked on GitHub Issues.
Credits
Contributors
- Criptomart
Maintainers
This module is maintained by the OCA.
Compatibility
- Odoo 16.0
- stock_account