| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/stock-logistics-workflow |
| GIT | |
| GIT | https://github.com/OCA/stock-logistics-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/stock-logistics-workflow/tree/19.0/stock_move_valuation_usage |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Warehouse Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ForgeFlow |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ForgeFlow |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, JasminSForgeFlow |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/stock-logistics-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:40:49 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/stock-logistics-workflow: - stock_account_product_run_fifo_hook odoo/odoo: - sale - sales_team - base - base_setup - web - bus - web_tour - html_editor - account_payment - account - onboarding - product - uom - analytic - portal - http_routing - auth_signup - digest - resource - payment - utm - stock_account - stock - barcodes_gs1_nomenclature - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module allows to trace the usage of stock move valuation. That is, makes it possible to identify which stock moves were used as sources for a given outgoing stock move, and how much quantity and value was taken from each source move. Note: In Odoo 19.0, stock valuation layer model was removed and valuation is now tracked directly on stock moves through the 'value' field. This kind of traceability is important in case that at some point you want to conduct a revaluation (for example, in case that the purchase order price changes after the products have been received into stock). Also, it changes the way the outgoing move values are calculated in order to respect the MTO case. When creating the outgoing move valuation, Odoo uses FIFO to consume from the first available incoming moves with value. The module stock_move_valuation_usage improves this process. For standard FIFO, it always uses the oldest move. However, for MTO cases, when there is a fixed link between the incoming move and the outgoing move, the system should use the specific incoming move not just the oldest one. Also, when the case is not MTO, the system should avoid using moves that are "reserved". |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
stock_move_valuation_usage_form |
stock.move.valuation.usage.form | stock.move.valuation.usage | form | New |
stock_move_valuation_usage_list |
stock.move.valuation.usage.list | stock.move.valuation.usage | list | New |
stock_move_valuation_usage_pivot |
stock.move.valuation.usage.pivot | stock.move.valuation.usage | pivot | New |
stock_move_valuation_usage_search |
stock.move.valuation.usage.search | stock.move.valuation.usage | search | New |
view_move_form_inherit |
stock.move.form.inherit | stock.move | group | Inherits stock.view_move_form |
No new fields.
Public methods (0)No public methods.
incoming_usage_ids
One2many → stock.move.valuation.usage
comodel_name='stock.move.valuation.usage'
help="Trace in what stock moves has this move's valuation been used, including the quantities and values taken."
inverse_name='dest_stock_move_id'
string='Incoming Valuation Usage'
incoming_usage_quantity
Float
compute='_compute_incoming_usages'
store=True
string='Incoming Usage quantity'
incoming_usage_value
Float
compute='_compute_incoming_usages'
store=True
string='Incoming Usage value'
usage_ids
One2many → stock.move.valuation.usage
comodel_name='stock.move.valuation.usage'
help="Trace in what stock moves has this move's valuation been used, including the quantities and values taken."
inverse_name='src_stock_move_id'
string='Valuation Usage'
usage_quantity
Float
compute='_compute_usage_values'
store=True
usage_value
Float
compute='_compute_usage_values'
store=True
No public methods.
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company', 'Company'
dest_stock_move_id
Many2one → stock.move
comodel_name='stock.move'
help='Outgoing stock move that consumed from the source move'
required=False
string='Destination Stock Move'
product_id
Many2one → product.product
comodel_name='product.product'
related='dest_stock_move_id.product_id'
store=True
quantity
Float
string='Taken Quantity'
src_stock_move_id
Many2one → stock.move
comodel_name='stock.move'
help='Incoming stock move that was used as a source for valuation'
string='Source Stock Move'
value
Float
string='Taken Value'
init(self)