| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_product_stock_tree_inherit_stock_account |
product.product.stock.list.inherit.stock.account | product.product | field | Inherits stock.product_product_stock_tree |
product_product_view_list_at_date |
product.product.list.inherit.stock.account.at.date | product.product | field | Inherits stock.view_stock_product_tree |
product_template_tree_view |
product.template.list.inherit.stock.account | product.template | field | Inherits product.product_template_tree_view |
product_value_form_view |
product.value.form.view | product.value | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.stock.account | res.config.settings | block | Inherits stock.res_config_settings_view_form |
stock_account_report_invoice_document |
stock_account_report_invoice_document | ir.ui.view | qweb | Inherits account.report_invoice_document |
stock_avco_report_view_list |
stock.avco.report.view.list | stock.avco.report | list | New |
stock_inventory_adjustment_name_form_view_inherit_stock_account |
stock.inventory.adjustment.name.form.view.inherit.stock.account | stock.inventory.adjustment.name | xpath | Inherits stock.stock_inventory_adjustment_name_form_view |
stock_move_view_list |
stock.move.view.list.inherit.stock.account | stock.move | field | Inherits stock.view_move_tree |
stock_move_view_list_valuation |
stock.move.view.list.valuation | stock.move | list | New |
view_account_form |
account.account.form | account.account | field | Inherits account.view_account_form |
view_category_property_form |
product.category.stock.property.form.inherit | product.category | field | Inherits account.view_category_property_form |
view_category_property_form_stock |
product.category.stock.property.form.inherit.stock | product.category | group | Inherits stock.product_category_form_view_inherit |
view_location_form_inherit |
stock.location.form.inherit | stock.location | xpath | Inherits stock.view_location_form |
view_move_search |
stock.move.search.inherit.stock.account | stock.move | filter | Inherits stock.view_move_search |
view_picking_form |
stock.account.view.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
view_production_lot_form_stock_account |
view.production.lot.form.stock.account | stock.lot | group | Inherits stock.view_production_lot_form |
view_stock_quant_tree_editable_inherit |
stock.quant.list.editable.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree_editable |
view_stock_quant_tree_inherit |
stock.quant.list.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree |
view_stock_quant_tree_inventory_editable_inherit_stock_account |
stock.quant.inventory.list.editable.inherit.stock.account | stock.quant | xpath | Inherits stock.view_stock_quant_tree_inventory_editable |
view_stock_return_picking_form_inherit_stock_account |
stock.return.picking.stock.account.form | stock.return.picking | xpath | Inherits stock.view_stock_return_picking_form |
view_template_property_form_stock_account |
view.template.property.form.stock.account | product.template | xpath | Inherits stock.view_template_property_form |
account_stock_expense_id
Many2one → account.account
help='Counterpart used at closing for accounting adjustments to inventory valuation.'
string='Expense Account'
args: 'account.account'
account_stock_variation_id
Many2one → account.account
help='At closing, register the inventory variation of the period into a specific account'
string='Variation Account'
args: 'account.account'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
stock_move_ids
One2many → stock.move
string='Stock Move'
args: 'stock.move', 'account_move_id'
button_cancel(self)
button_draft(self)
copy_data(self, default=None)
cogs_origin_id
Many2one → account.move.line
comodel_name='account.move.line'
copy=False
index='btree_not_null'
No public methods.
account_stock_variation_id
Many2one → account.account
readonly=False
related='property_stock_valuation_account_id.account_stock_variation_id'
string='Stock Variation Account'
args: 'account.account'
anglo_saxon_accounting
Boolean
compute='_compute_anglo_saxon_accounting'
help='If checked, the product will be valued using the Anglo-Saxon accounting method.'
string='Use Anglo-Saxon Accounting'
property_cost_method
Selection
company_dependent=True
copy=True
default=<expr>
help='Standard Price: The products are valued at their standard cost defined on the product.\n Average Cost (AVCO): The products are valued at weighted average cost.\n First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n '
selection=[('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
string='Costing Method'
tracking=True
property_price_difference_account_id
Many2one → account.account
check_company=True
company_dependent=True
help='With perpetual valuation, this account will hold the price difference between the standard price and the bill price.'
ondelete='restrict'
args: 'account.account', 'Price Difference Account'
property_stock_journal
Many2one → account.journal
company_dependent=True
help='When doing automated inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed.'
args: 'account.journal', 'Stock Journal'
property_stock_valuation_account_id
Many2one → account.account
check_company=True
company_dependent=True
help='When automated inventory valuation is enabled on a product, this account will hold the current value of the products.'
ondelete='restrict'
args: 'account.account', 'Stock Valuation Account'
property_valuation
Selection
company_dependent=True
copy=True
help='Periodic: The accounting entries are suggested manually in the inventory valuation report.\n Perpetual: An accounting entry is automatically created to value the inventory when a product is billed or invoiced.\n '
selection=[('periodic', 'Periodic (at closing)'), ('real_time', 'Perpetual (at invoicing)')]
string='Inventory Valuation'
tracking=True
write(self, vals)
avg_cost
Monetary
compute='_compute_value'
compute_sudo=True
currency_field='company_currency_id'
string='Average Cost'
company_currency_id
Many2one → res.currency
compute='_compute_value'
compute_sudo=True
help="Technical field to correctly show the currently selected company's currency that corresponds to the totaled value of the product's valuation layers"
args: 'res.currency', 'Valuation Currency'
total_value
Monetary
compute='_compute_value'
compute_sudo=True
currency_field='company_currency_id'
string='Total Value'
create(self, vals_list)
write(self, vals)
cost_method
Selection
compute='_compute_cost_method'
selection=[('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
string='Cost Method'
lot_valuated
Boolean
compute='_compute_lot_valuated'
help='If checked, the valuation will be specific by Lot/Serial number.'
readonly=False
store=True
string='Valuation by Lot/Serial'
property_price_difference_account_id
Many2one → account.account
check_company=True
company_dependent=True
help='With perpetual valuation, this account will hold the price difference between the standard price and the bill price.'
ondelete='restrict'
args: 'account.account', 'Price Difference Account'
valuation
Selection
compute='_compute_valuation'
search='_search_valuation'
selection=[('periodic', 'Periodic (at closing)'), ('real_time', 'Perpetual (at invoicing)')]
string='Valuation'
get_product_accounts(self, fiscal_pos=None)
write(self, vals)
company_id
Many2one → res.company
compute='_compute_company_id'
precompute=True
readonly=False
required=True
store=True
string='Company'
args: 'res.company'
computed_value_description
Text
compute='_compute_value_description'
string='Computed Value Description'
currency_id
Many2one → res.currency
related='company_id.currency_id'
string='Currency'
args: 'res.currency'
current_value
Monetary
currency_field='currency_id'
related='move_id.value'
string='Current Value'
current_value_description
Text
compute='_compute_value_description'
string='Current Value Description'
current_value_details
Char
compute='_compute_current_value_details'
string='Current Value Details'
date
Datetime
default=fields.Datetime.now
required=True
string='Date'
description
Char
string='Description'
lot_id
Many2one → stock.lot
string='Lot'
args: 'stock.lot'
move_id
Many2one → stock.move
index='btree_not_null'
string='Move'
args: 'stock.move'
product_id
Many2one → product.product
index=True
string='Product'
args: 'product.product'
user_id
Many2one → res.users
default=<expr>
required=True
string='User'
args: 'res.users'
value
Monetary
currency_field='currency_id'
required=True
string='Value'
create(self, vals_list)
account_production_wip_account_id
Many2one → account.account
check_company=True
string='Production WIP Account'
args: 'account.account'
account_production_wip_overhead_account_id
Many2one → account.account
check_company=True
string='Production WIP Overhead Account'
args: 'account.account'
account_stock_journal_id
Many2one → account.journal
check_company=True
string='Stock Journal'
args: 'account.journal'
account_stock_valuation_id
Many2one → account.account
check_company=True
string='Stock Valuation Account'
args: 'account.account'
cost_method
Selection
default='standard'
required=True
selection=[('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
string='Cost Method'
inventory_period
Selection
default='manual'
required=True
selection=[('manual', 'Manual'), ('daily', 'Daily'), ('monthly', 'Monthly')]
string='Inventory Period'
inventory_valuation
Selection
default='periodic'
selection=[('periodic', 'Periodic (at closing)'), ('real_time', 'Perpetual (at invoicing)')]
string='Valuation'
action_close_stock_valuation(self, at_date=None, auto_post=False)
stock_accounting_value(self, accounts_by_product=None, at_date=None)
stock_value(self, accounts_by_product=None, at_date=None)
group_lot_on_invoice
Boolean
implied_group='stock_account.group_lot_on_invoice'
args: 'Display Lots & Serial Numbers on Invoices'
module_stock_landed_costs
Boolean
help='Affect landed costs on reception operations and split them among products to update their cost price.'
args: 'Landed Costs'
No public methods.
added_value
Float
compute='_compute_cumulative_fields'
string='Added Value'
avco_value
Float
compute='_compute_cumulative_fields'
string='AVCO Value'
company_id
Many2one → res.company
required=True
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
related='company_id.currency_id'
string='Currency'
args: 'res.currency'
date
Date
required=True
string='Date'
description
Text
required=True
string='Description'
justification
Text
compute='_compute_justification'
string='Justification'
product_id
Many2one → product.product
required=True
string='Product'
args: 'product.product'
quantity
Float
required=True
string='Added Quantity'
reference
Char
required=True
string='Reference'
res_model_name
Selection
required=True
string='Resource Model Name'
args: [('stock.move', 'Stock Move'), ('product.value', 'Product Value')]
total_quantity
Float
compute='_compute_cumulative_fields'
string='Total Quantity'
total_value
Float
compute='_compute_cumulative_fields'
string='Total Value'
user_id
Many2one → res.users
required=True
string='User'
args: 'res.users'
value
Float
required=True
string='Value'
init(self)
No new fields.
Public methods (0)No public methods.
accounting_date
Date
help='Date at which the accounting entries will be created in case of automated inventory valuation. If empty, the inventory date will be used.'
args: 'Accounting Date'
should_show_accounting_date
Boolean
compute='_compute_should_show_accounting_date'
No public methods.
is_valued_external
Boolean
compute='_compute_is_valued'
args: 'Is valued outside the company'
is_valued_internal
Boolean
compute='_compute_is_valued'
search='_search_is_valued'
args: 'Is valued inside the company'
valuation_account_id
Many2one → account.account
domain=[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'asset_cash', 'liability_credit_card'))]
help='Expense account used to re-qualify products removed from stock and sent to this location'
args: 'account.account', 'Stock Valuation Account'
No public methods.
avg_cost
Monetary
compute='_compute_value'
compute_sudo=True
currency_field='company_currency_id'
readonly=True
store=False
string='Average Cost'
company_currency_id
Many2one → res.currency
compute='_compute_value'
compute_sudo=True
args: 'res.currency', 'Valuation Currency'
lot_valuated
Boolean
readonly=True
related='product_id.lot_valuated'
store=False
standard_price
Float
company_dependent=True
groups='base.group_user'
help='Value of the lot (automatically computed in AVCO).\n Used to value the product when the purchase cost is not known (e.g. inventory adjustment).\n Used to compute margins on sale orders.'
min_display_digits='Product Price'
args: 'Cost'
total_value
Monetary
compute='_compute_value'
compute_sudo=True
currency_field='company_currency_id'
string='Total Value'
create(self, vals_list)
write(self, vals)
account_move_id
Many2one → account.move
copy=False
index='btree_not_null'
args: 'account.move', 'stock_move_id'
analytic_account_line_ids
Many2many → account.analytic.line
copy=False
args: 'account.analytic.line'
company_currency_id
Many2one → res.currency
readonly=True
related='company_id.currency_id'
string='Company Currency'
args: 'res.currency'
is_dropship
Boolean
compute='_compute_is_dropship'
store=True
string='Is Dropship'
is_in
Boolean
compute='_compute_is_in'
store=True
string='Is Incoming (valued)'
is_out
Boolean
compute='_compute_is_out'
store=True
string='Is Outgoing (valued)'
is_valued
Boolean
compute='_compute_is_valued'
string='Is Valued'
price_unit
Float
remaining_qty
Float
compute='_compute_remaining_qty'
search='search_remaining_qty'
string='Remaining Quantity'
remaining_value
Monetary
compute='_compute_remaining_value'
currency_field='company_currency_id'
string='Remaining Value'
standard_price
Float
compute='_compute_standard_price'
string='Standard Price'
to_refund
Boolean
copy=True
default=True
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
args: 'Update quantities on SO/PO'
value
Monetary
copy=False
currency_field='company_currency_id'
help="The current value of the move. It's zero if the move is not valued."
args: 'Value'
value_computed_justification
Text
compute='_compute_value_justification'
args: 'Computed Value Description'
value_justification
Text
compute='_compute_value_justification'
args: 'Value Description'
value_manual
Monetary
compute='_compute_value_manual'
currency_field='company_currency_id'
inverse='_inverse_value_manual'
args: 'Manual Value'
action_adjust_valuation(self)
search_remaining_qty(self, operator, value)
No new fields.
Public methods (3)create(self, vals_list)
unlink(self)
write(self, vals)
country_code
Char
related='company_id.account_fiscal_country_id.code'
No public methods.
country_code
Char
related='company_id.account_fiscal_country_id.code'
No public methods.
accounting_date
Date
help='Date at which the accounting entries will be created in case of automated inventory valuation. If empty, the inventory date will be used.'
args: 'Accounting Date'
cost_method
Selection
compute='_compute_cost_method'
selection=[('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
string='Cost Method'
currency_id
Many2one → res.currency
groups='stock.group_stock_manager'
related='company_id.currency_id'
args: 'res.currency'
value
Monetary
compute='_compute_value'
groups='stock.group_stock_manager'
args: 'Value'
No public methods.
to_refund
Boolean
default=True
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='Update quantities on SO/PO'
No public methods.
No new fields.
Public methods (3)action_print_as_pdf(self)
action_print_as_xlsx(self)
get_report_values(self, date=False)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_product_stock_tree_inherit_stock_account |
product.product.stock.list.inherit.stock.account | product.product | field | Inherits stock.product_product_stock_tree |
product_template_tree_view |
product.template.list.inherit.stock.account | product.template | field | Inherits product.product_template_tree_view |
res_config_settings_view_form |
res.config.settings.view.form.inherit.stock.account | res.config.settings | block | Inherits stock.res_config_settings_view_form |
stock_account_report_invoice_document |
stock_account_report_invoice_document | ir.ui.view | qweb | Inherits account.report_invoice_document |
stock_inventory_request_count_form_view_inherit_stock_account |
stock.request.count.form.view.inherit.stock.account | stock.request.count | field | Inherits stock.stock_inventory_request_count_form_view |
stock_valuation_layer_form |
stock.valuation.layer.form | stock.valuation.layer | form | New |
stock_valuation_layer_graph |
inventory.aging.graph | stock.valuation.layer | graph | New |
stock_valuation_layer_picking |
stock.valuation.layer.picking | stock.picking | xpath | Inherits stock.view_picking_form |
stock_valuation_layer_pivot |
stock.valuation.layer.pivot | stock.valuation.layer | pivot | New |
stock_valuation_layer_report_tree |
stock.valuation.layer.report.list | stock.valuation.layer | field | Inherits stock_valuation_layer_tree |
stock_valuation_layer_revaluation_form_view |
stock.valuation.layer.revaluation.form | stock.valuation.layer.revaluation | form | New |
stock_valuation_layer_tree |
stock.valuation.layer.list | stock.valuation.layer | list | New |
stock_valuation_layer_valuation_at_date_tree_inherited |
inventory.aging.list | stock.valuation.layer | xpath | Inherits stock_valuation_layer_tree |
view_category_property_form |
product.category.stock.property.form.inherit | product.category | group | Inherits account.view_category_property_form |
view_category_property_form_stock |
product.category.stock.property.form.inherit.stock | product.category | group | Inherits stock.product_category_form_view_inherit |
view_inventory_valuation_search |
Inventory Valuation | stock.valuation.layer | search | New |
view_location_form_inherit |
stock.location.form.inherit | stock.location | xpath | Inherits stock.view_location_form |
view_move_form_inherit |
stock.move.form.inherit | stock.move | xpath | Inherits stock.view_move_form |
view_picking_form |
stock.account.view.picking.form | stock.picking | xpath | Inherits stock.view_picking_form |
view_production_lot_form_stock_account |
view.production.lot.form.stock.account | stock.lot | xpath | Inherits stock.view_production_lot_form |
view_stock_quant_tree_editable_inherit |
stock.quant.list.editable.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree_editable |
view_stock_quant_tree_inherit |
stock.quant.list.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree |
view_stock_quant_tree_inventory_editable_inherit_stock_account |
stock.quant.inventory.list.editable.inherit.stock.account | stock.quant | xpath | Inherits stock.view_stock_quant_tree_inventory_editable |
view_stock_quantity_history_inherit_stock_account |
Valuation Report at Date | stock.quantity.history | field | Inherits stock.view_stock_quantity_history |
view_stock_return_picking_form_inherit_stock_account |
stock.return.picking.stock.account.form | stock.return.picking | xpath | Inherits stock.view_stock_return_picking_form |
view_template_property_form_stock_account |
view.template.property.form.stock.account | product.template | xpath | Inherits stock.view_template_property_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
stock_move_id
Many2one → stock.move
index='btree_not_null'
string='Stock Move'
args: 'stock.move'
stock_valuation_layer_ids
One2many → stock.valuation.layer
string='Stock Valuation Layer'
args: 'stock.valuation.layer', 'account_move_id'
button_cancel(self)
button_draft(self)
copy_data(self, default=None)
cogs_origin_id
Many2one → account.move.line
comodel_name='account.move.line'
copy=False
index='btree_not_null'
stock_valuation_layer_ids
One2many → stock.valuation.layer
string='Stock Valuation Layer'
args: 'stock.valuation.layer', 'account_move_line_id'
No public methods.
property_cost_method
Selection
company_dependent=True
copy=True
help='Standard Price: The products are valued at their standard cost defined on the product.\n Average Cost (AVCO): The products are valued at weighted average cost.\n First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n '
string='Costing Method'
tracking=True
args: [('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
property_stock_account_input_categ_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('deprecated', '=', False)]"
help='Counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account\n set on the source location. This is the default value for all products in this category. It can also directly be set on each product.'
ondelete='restrict'
args: 'account.account', 'Stock Input Account'
property_stock_account_output_categ_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('deprecated', '=', False)]"
help='When doing automated inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account,\n unless there is a specific valuation account set on the destination location. This is the default value for all products in this category.\n It can also directly be set on each product.'
ondelete='restrict'
args: 'account.account', 'Stock Output Account'
property_stock_journal
Many2one → account.journal
company_dependent=True
help='When doing automated inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed.'
args: 'account.journal', 'Stock Journal'
property_stock_valuation_account_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('deprecated', '=', False)]"
help='When automated inventory valuation is enabled on a product, this account will hold the current value of the products.'
ondelete='restrict'
args: 'account.account', 'Stock Valuation Account'
property_valuation
Selection
company_dependent=True
copy=True
help='Manual: The accounting entries to value the inventory are not posted automatically.\n Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.\n '
string='Inventory Valuation'
args: [('manual_periodic', 'Manual'), ('real_time', 'Automated')]
onchange_property_cost(self)
write(self, vals)
avg_cost
Monetary
compute='_compute_value_svl'
compute_sudo=True
currency_field='company_currency_id'
string='Average Cost'
company_currency_id
Many2one → res.currency
compute='_compute_value_svl'
compute_sudo=True
help="Technical field to correctly show the currently selected company's currency that corresponds to the totaled value of the product's valuation layers"
args: 'res.currency', 'Valuation Currency'
cost_method
Selection
readonly=True
related='categ_id.property_cost_method'
quantity_svl
Float
compute='_compute_value_svl'
compute_sudo=True
stock_valuation_layer_ids
One2many → stock.valuation.layer
total_value
Monetary
compute='_compute_value_svl'
compute_sudo=True
currency_field='company_currency_id'
string='Total Value'
valuation
Selection
readonly=True
related='categ_id.property_valuation'
value_svl
Float
compute='_compute_value_svl'
compute_sudo=True
action_revaluation(self)
write(self, vals)
cost_method
Selection
readonly=True
related='categ_id.property_cost_method'
lot_valuated
Boolean
compute='_compute_lot_valuated'
help='If checked, the valuation will be specific by Lot/Serial number.'
readonly=False
store=True
args: 'Valuation by Lot/Serial number'
valuation
Selection
readonly=True
related='categ_id.property_valuation'
get_product_accounts(self, fiscal_pos=None)
write(self, vals)
account_production_wip_account_id
Many2one → account.account
check_company=True
string='Production WIP Account'
args: 'account.account'
account_production_wip_overhead_account_id
Many2one → account.account
check_company=True
string='Production WIP Overhead Account'
args: 'account.account'
No public methods.
group_lot_on_invoice
Boolean
implied_group='stock_account.group_lot_on_invoice'
args: 'Display Lots & Serial Numbers on Invoices'
group_stock_accounting_automatic
Boolean
implied_group='stock_account.group_stock_accounting_automatic'
args: 'Automatic Stock Accounting'
module_stock_landed_costs
Boolean
help='Affect landed costs on reception operations and split them among products to update their cost price.'
args: 'Landed Costs'
set_values(self)
No new fields.
Public methods (0)No public methods.
valuation_in_account_id
Many2one → account.account
domain=[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'asset_cash', 'liability_credit_card')), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved from an internal location into this location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Incoming)'
valuation_out_account_id
Many2one → account.account
domain=[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'asset_cash', 'liability_credit_card')), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved out of this location and into an internal location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Outgoing)'
No public methods.
avg_cost
Monetary
compute='_compute_value_svl'
compute_sudo=True
currency_field='company_currency_id'
string='Average Cost'
company_currency_id
Many2one → res.currency
compute='_compute_value_svl'
compute_sudo=True
args: 'res.currency', 'Valuation Currency'
quantity_svl
Float
compute='_compute_value_svl'
compute_sudo=True
standard_price
Float
company_dependent=True
groups='base.group_user'
help='Value of the lot (automatically computed in AVCO).\n Used to value the product when the purchase cost is not known (e.g. inventory adjustment).\n Used to compute margins on sale orders.'
min_display_digits='Product Price'
args: 'Cost'
stock_valuation_layer_ids
One2many → stock.valuation.layer
total_value
Monetary
compute='_compute_value_svl'
compute_sudo=True
currency_field='company_currency_id'
string='Total Value'
value_svl
Float
compute='_compute_value_svl'
compute_sudo=True
action_revaluation(self)
action_view_stock_valuation_layers(self)
create(self, vals_list)
write(self, vals)
account_move_ids
One2many → account.move
analytic_account_line_ids
Many2many → account.analytic.line
copy=False
args: 'account.analytic.line'
stock_valuation_layer_ids
One2many → stock.valuation.layer
to_refund
Boolean
copy=True
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='Update quantities on SO/PO'
action_get_account_moves(self)
product_price_update_before_done(self, forced_qty=None)
No new fields.
Public methods (3)create(self, vals_list)
unlink(self)
write(self, vals)
country_code
Char
related='company_id.account_fiscal_country_id.code'
action_view_stock_valuation_layers(self)
accounting_date
Date
help='Date at which the accounting entries will be created in case of automated inventory valuation. If empty, the inventory date will be used.'
args: 'Accounting Date'
cost_method
Selection
related='product_categ_id.property_cost_method'
currency_id
Many2one → res.currency
compute='_compute_value'
groups='stock.group_stock_manager'
args: 'res.currency'
value
Monetary
compute='_compute_value'
groups='stock.group_stock_manager'
args: 'Value'
No public methods.
No new fields.
Public methods (1)open_at_date(self)
accounting_date
Date
No public methods.
to_refund
Boolean
default=True
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='Update quantities on SO/PO'
No public methods.
account_move_id
Many2one → account.move
check_company=True
index='btree_not_null'
readonly=True
args: 'account.move', 'Journal Entry'
account_move_line_id
Many2one → account.move.line
check_company=True
index='btree_not_null'
readonly=True
args: 'account.move.line', 'Invoice Line'
categ_id
Many2one → product.category
related='product_id.categ_id'
store=True
args: 'product.category'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
readonly=True
related='company_id.currency_id'
required=True
args: 'res.currency', 'Currency'
description
Char
readonly=True
args: 'Description'
lot_id
Many2one → stock.lot
check_company=True
index=True
args: 'stock.lot', 'Lot/Serial Number'
price_diff_value
Float
product_id
Many2one → product.product
auto_join=True
check_company=True
readonly=True
required=True
args: 'product.product', 'Product'
product_tmpl_id
Many2one → product.template
related='product_id.product_tmpl_id'
args: 'product.template'
quantity
Float
digits='Product Unit of Measure'
readonly=True
args: 'Quantity'
reference
Char
related='stock_move_id.reference'
remaining_qty
Float
digits='Product Unit of Measure'
readonly=True
remaining_value
Monetary
readonly=True
args: 'Remaining Value'
stock_move_id
Many2one → stock.move
check_company=True
index=True
readonly=True
args: 'stock.move', 'Stock Move'
stock_valuation_layer_id
Many2one → stock.valuation.layer
check_company=True
index=True
readonly=True
args: 'stock.valuation.layer', 'Linked To'
stock_valuation_layer_ids
One2many → stock.valuation.layer
unit_cost
Float
aggregator=None
min_display_digits='Product Price'
readonly=True
args: 'Unit Value'
uom_id
Many2one
readonly=True
related='product_id.uom_id'
required=True
value
Monetary
readonly=True
args: 'Total Value'
warehouse_id
Many2one → stock.warehouse
compute='_compute_warehouse_id'
search='_search_warehouse_id'
string='Receipt WH'
args: 'stock.warehouse'
action_open_journal_entry(self)
action_open_reference(self)
action_valuation_at_date(self)
init(self)
account_id
Many2one → account.account
check_company=True
domain=[('deprecated', '=', False)]
args: 'account.account', 'Counterpart Account'
account_journal_id
Many2one → account.journal
check_company=True
args: 'account.journal', 'Journal'
added_value
Monetary
required=True
args: 'Added value'
adjusted_layer_ids
Many2many → stock.valuation.layer
help='Valuations layers being adjusted'
string='Valuation Layers'
args: 'stock.valuation.layer'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
related='company_id.currency_id'
required=True
args: 'res.currency', 'Currency'
current_quantity_svl
Float
compute='_compute_current_value_svl'
args: 'Current Quantity'
current_value_svl
Float
compute='_compute_current_value_svl'
args: 'Current Value'
date
Date
lot_id
Many2one → stock.lot
check_company=True
args: 'stock.lot', 'Related lot/serial number'
new_value
Monetary
compute='_compute_new_value'
args: 'New value'
new_value_by_qty
Monetary
compute='_compute_new_value'
args: 'New value by quantity'
product_id
Many2one → product.product
check_company=True
required=True
args: 'product.product', 'Related product'
product_uom_name
Char
related='product_id.uom_id.name'
args: 'Unit of Measure'
property_valuation
Selection
related='product_id.categ_id.property_valuation'
reason
Char
help='Reason of the revaluation'
args: 'Reason'
action_validate_revaluation(self)
default_get(self, default_fields)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_product_stock_tree_inherit_stock_account |
product.product.stock.tree.inherit.stock.account | product.product | field | Inherits stock.product_product_stock_tree |
product_template_tree_view |
product.template.tree.inherit.stock.account | product.template | field | Inherits product.product_template_tree_view |
res_config_settings_view_form |
res.config.settings.view.form.inherit.stock.account | res.config.settings | block | Inherits stock.res_config_settings_view_form |
stock_account_report_invoice_document |
stock_account_report_invoice_document | ir.ui.view | qweb | Inherits account.report_invoice_document |
stock_inventory_request_count_form_view_inherit_stock_account |
stock.request.count.form.view.inherit.stock.account | stock.request.count | field | Inherits stock.stock_inventory_request_count_form_view |
stock_valuation_layer_form |
stock.valuation.layer.form | stock.valuation.layer | form | New |
stock_valuation_layer_graph |
inventory.aging.graph | stock.valuation.layer | graph | New |
stock_valuation_layer_picking |
stock.valuation.layer.picking | stock.picking | xpath | Inherits stock.view_picking_form |
stock_valuation_layer_pivot |
stock.valuation.layer.pivot | stock.valuation.layer | pivot | New |
stock_valuation_layer_report_tree |
stock.valuation.layer.report.tree | stock.valuation.layer | field | Inherits stock_valuation_layer_tree |
stock_valuation_layer_revaluation_form_view |
stock.valuation.layer.revaluation.form | stock.valuation.layer.revaluation | form | New |
stock_valuation_layer_tree |
stock.valuation.layer.tree | stock.valuation.layer | tree | New |
stock_valuation_layer_valuation_at_date_tree_inherited |
inventory.aging.tree | stock.valuation.layer | xpath | Inherits stock_valuation_layer_tree |
view_category_property_form |
product.category.stock.property.form.inherit | product.category | group | Inherits account.view_category_property_form |
view_category_property_form_stock |
product.category.stock.property.form.inherit.stock | product.category | group | Inherits stock.product_category_form_view_inherit |
view_inventory_valuation_search |
Inventory Valuation | stock.valuation.layer | search | New |
view_location_form_inherit |
stock.location.form.inherit | stock.location | xpath | Inherits stock.view_location_form |
view_move_form_inherit |
stock.move.form.inherit | stock.move | xpath | Inherits stock.view_move_form |
view_stock_quant_tree_editable_inherit |
stock.quant.tree.editable.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree_editable |
view_stock_quant_tree_inherit |
stock.quant.tree.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree |
view_stock_quant_tree_inventory_editable_inherit_stock_account |
stock.quant.inventory.tree.editable.inherit.stock.account | stock.quant | xpath | Inherits stock.view_stock_quant_tree_inventory_editable |
view_stock_quantity_history_inherit_stock_account |
Valuation Report at Date | stock.quantity.history | field | Inherits stock.view_stock_quantity_history |
view_stock_return_picking_form_inherit_stock_account |
stock.return.picking.stock.account.form | stock.return.picking | xpath | Inherits stock.view_stock_return_picking_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
stock_move_id
Many2one → stock.move
index='btree_not_null'
string='Stock Move'
args: 'stock.move'
stock_valuation_layer_ids
One2many → stock.valuation.layer
string='Stock Valuation Layer'
args: 'stock.valuation.layer', 'account_move_id'
button_cancel(self)
button_draft(self)
copy_data(self, default=None)
cogs_origin_id
Many2one → account.move.line
comodel_name='account.move.line'
copy=False
index='btree_not_null'
stock_valuation_layer_ids
One2many → stock.valuation.layer
string='Stock Valuation Layer'
args: 'stock.valuation.layer', 'account_move_line_id'
No public methods.
property_cost_method
Selection
company_dependent=True
copy=True
help='Standard Price: The products are valued at their standard cost defined on the product.\n Average Cost (AVCO): The products are valued at weighted average cost.\n First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n '
required=True
string='Costing Method'
args: [('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
property_stock_account_input_categ_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('deprecated', '=', False)]"
help='Counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account\n set on the source location. This is the default value for all products in this category. It can also directly be set on each product.'
args: 'account.account', 'Stock Input Account'
property_stock_account_output_categ_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('deprecated', '=', False)]"
help='When doing automated inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account,\n unless there is a specific valuation account set on the destination location. This is the default value for all products in this category.\n It can also directly be set on each product.'
args: 'account.account', 'Stock Output Account'
property_stock_journal
Many2one → account.journal
company_dependent=True
help='When doing automated inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed.'
args: 'account.journal', 'Stock Journal'
property_stock_valuation_account_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('deprecated', '=', False)]"
help='When automated inventory valuation is enabled on a product, this account will hold the current value of the products.'
args: 'account.account', 'Stock Valuation Account'
property_valuation
Selection
company_dependent=True
copy=True
help='Manual: The accounting entries to value the inventory are not posted automatically.\n Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.\n '
required=True
string='Inventory Valuation'
args: [('manual_periodic', 'Manual'), ('real_time', 'Automated')]
onchange_property_cost(self)
onchange_property_valuation(self)
write(self, vals)
avg_cost
Monetary
compute='_compute_value_svl'
compute_sudo=True
currency_field='company_currency_id'
string='Average Cost'
company_currency_id
Many2one → res.currency
compute='_compute_value_svl'
compute_sudo=True
help="Technical field to correctly show the currently selected company's currency that corresponds to the totaled value of the product's valuation layers"
args: 'res.currency', 'Valuation Currency'
cost_method
Selection
readonly=True
related='categ_id.property_cost_method'
quantity_svl
Float
compute='_compute_value_svl'
compute_sudo=True
stock_valuation_layer_ids
One2many → stock.valuation.layer
total_value
Monetary
compute='_compute_value_svl'
compute_sudo=True
currency_field='company_currency_id'
string='Total Value'
valuation
Selection
readonly=True
related='categ_id.property_valuation'
value_svl
Float
compute='_compute_value_svl'
compute_sudo=True
action_revaluation(self)
write(self, vals)
cost_method
Selection
readonly=True
related='categ_id.property_cost_method'
valuation
Selection
readonly=True
related='categ_id.property_valuation'
get_product_accounts(self, fiscal_pos=None)
write(self, vals)
group_lot_on_invoice
Boolean
implied_group='stock_account.group_lot_on_invoice'
args: 'Display Lots & Serial Numbers on Invoices'
group_stock_accounting_automatic
Boolean
implied_group='stock_account.group_stock_accounting_automatic'
args: 'Automatic Stock Accounting'
module_stock_landed_costs
Boolean
help='Affect landed costs on reception operations and split them among products to update their cost price.'
args: 'Landed Costs'
set_values(self)
No new fields.
Public methods (0)No public methods.
valuation_in_account_id
Many2one → account.account
domain=[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'asset_cash', 'liability_credit_card')), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved from an internal location into this location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Incoming)'
valuation_out_account_id
Many2one → account.account
domain=[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'asset_cash', 'liability_credit_card')), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved out of this location and into an internal location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Outgoing)'
No public methods.
account_move_ids
One2many → account.move
analytic_account_line_ids
Many2many → account.analytic.line
copy=False
args: 'account.analytic.line'
stock_valuation_layer_ids
One2many → stock.valuation.layer
to_refund
Boolean
copy=True
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='Update quantities on SO/PO'
action_get_account_moves(self)
product_price_update_before_done(self, forced_qty=None)
No new fields.
Public methods (3)create(self, vals_list)
unlink(self)
write(self, vals)
country_code
Char
related='company_id.account_fiscal_country_id.code'
action_view_stock_valuation_layers(self)
accounting_date
Date
help='Date at which the accounting entries will be created in case of automated inventory valuation. If empty, the inventory date will be used.'
args: 'Accounting Date'
cost_method
Selection
related='product_categ_id.property_cost_method'
currency_id
Many2one → res.currency
compute='_compute_value'
groups='stock.group_stock_manager'
args: 'res.currency'
value
Monetary
compute='_compute_value'
groups='stock.group_stock_manager'
args: 'Value'
read_group(self, domain, fields, *args, **kwargs)
No new fields.
Public methods (1)open_at_date(self)
accounting_date
Date
No public methods.
No new fields.
Public methods (1)default_get(self, default_fields)
to_refund
Boolean
default=True
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='Update quantities on SO/PO'
No public methods.
account_move_id
Many2one → account.move
check_company=True
index='btree_not_null'
readonly=True
args: 'account.move', 'Journal Entry'
account_move_line_id
Many2one → account.move.line
check_company=True
index='btree_not_null'
readonly=True
args: 'account.move.line', 'Invoice Line'
categ_id
Many2one → product.category
related='product_id.categ_id'
store=True
args: 'product.category'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
readonly=True
related='company_id.currency_id'
required=True
args: 'res.currency', 'Currency'
description
Char
readonly=True
args: 'Description'
price_diff_value
Float
product_id
Many2one → product.product
auto_join=True
check_company=True
readonly=True
required=True
args: 'product.product', 'Product'
product_tmpl_id
Many2one → product.template
related='product_id.product_tmpl_id'
args: 'product.template'
quantity
Float
digits='Product Unit of Measure'
readonly=True
args: 'Quantity'
reference
Char
related='stock_move_id.reference'
remaining_qty
Float
digits='Product Unit of Measure'
readonly=True
remaining_value
Monetary
readonly=True
args: 'Remaining Value'
stock_move_id
Many2one → stock.move
check_company=True
index=True
readonly=True
args: 'stock.move', 'Stock Move'
stock_valuation_layer_id
Many2one → stock.valuation.layer
check_company=True
index=True
readonly=True
args: 'stock.valuation.layer', 'Linked To'
stock_valuation_layer_ids
One2many → stock.valuation.layer
unit_cost
Float
digits='Product Price'
group_operator=None
readonly=True
args: 'Unit Value'
uom_id
Many2one
readonly=True
related='product_id.uom_id'
required=True
value
Monetary
readonly=True
args: 'Total Value'
warehouse_id
Many2one → stock.warehouse
compute='_compute_warehouse_id'
search='_search_warehouse_id'
string='Receipt WH'
args: 'stock.warehouse'
action_open_journal_entry(self)
action_open_layer(self)
action_open_reference(self)
action_valuation_at_date(self)
init(self)
account_id
Many2one → account.account
check_company=True
domain=[('deprecated', '=', False)]
args: 'account.account', 'Counterpart Account'
account_journal_id
Many2one → account.journal
check_company=True
args: 'account.journal', 'Journal'
added_value
Monetary
required=True
args: 'Added value'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
related='company_id.currency_id'
required=True
args: 'res.currency', 'Currency'
current_quantity_svl
Float
related='product_id.quantity_svl'
args: 'Current Quantity'
current_value_svl
Float
related='product_id.value_svl'
args: 'Current Value'
date
Date
new_value
Monetary
compute='_compute_new_value'
args: 'New value'
new_value_by_qty
Monetary
compute='_compute_new_value'
args: 'New value by quantity'
product_id
Many2one → product.product
check_company=True
required=True
args: 'product.product', 'Related product'
product_uom_name
Char
related='product_id.uom_id.name'
args: 'Unit of Measure'
property_valuation
Selection
related='product_id.categ_id.property_valuation'
reason
Char
help='Reason of the revaluation'
args: 'Reason'
action_validate_revaluation(self)
default_get(self, default_fields)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/16.0/stock_account |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Hidden |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Denis Ledoux, Xavier Morel, GitHub, Yannick Tivisse, Laurent Smet, Arnold Moyaux, Denis Roussel, Romeo Fragomeli, Victor Feyens, Andrea Grazioso (agr-odoo), William Henrotin, alt-odoo, Anh Thao Pham (pta), Brice bib Bartoletti, Adrien Widart, Nasreddin Boulif (bon), Touati Djamel (otd), Tiffany Chang (tic), Yoshi Tashiro, Rémy Voet (ryv), Gorash, Aurélien (avd), roen-odoo, Ricardo Gomes Rodrigues (rigr), Nicolas (vin), william-andre, David (dafr), JF Aubert, yhu-odoo, mafo-odoo, aliya, william, anhe-odoo, Agustín Castro Bugallo, Yolann Sabaux, John Laterre (jol), Antoine Vandevenne (anv), Thibault Libioulle, Aurelien van Delft (avd), Mathieu Walravens, AaronHForgeFlow, nda-odoo, Thomas Lefebvre (thle), Merel Geens (mege), Walid, Mylyna Hy, Adrien Widart (awt), Shawcker, Mahamadasif Ansari, Michael Tietz, Hansun (hale), Paolo Gatti, lathuat1997, Odoo, Ahmed Khalaf, Ahmed Khalaf (ahkh), AH-Yussef, Pedram (pebr), guva-odoo, Ethan Vincent, lase@odoo.com, InCeyN, axtr, Cyrus Robins, Martin Trigaux (mat), Louis Gobert, Aungkokolin1997, Quang Nguyen, kago-odoo, LauraCForgeFlow, EmilioPascual, Paimonchan, Haris (MHCH) |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:48 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes_gs1_nomenclature - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - analytic |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
WMS Accounting module
======================
This module makes the link between the 'stock' and 'account' modules and allows you to create accounting entries to value your stock movements
Key Features
------------
* Stock Valuation (periodical or automatic)
* Invoice from Picking
Dashboard / Reports for Warehouse Management includes:
------------------------------------------------------
* Stock Inventory Value at given date (support dates in the past)
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_product_stock_tree_inherit_stock_account |
product.product.stock.tree.inherit.stock.account | product.product | field | Inherits stock.product_product_stock_tree |
product_template_tree_view |
product.template.tree.inherit.stock.account | product.template | field | Inherits product.product_template_tree_view |
res_config_settings_view_form |
res.config.settings.view.form.inherit.stock.account | res.config.settings | div | Inherits stock.res_config_settings_view_form |
stock_account_report_invoice_document |
stock_account_report_invoice_document | ir.ui.view | qweb | Inherits account.report_invoice_document |
stock_account_report_product_product_replenishment |
stock_account_report_product_product_replenishment | ir.ui.view | qweb | Inherits stock.report_replenishment_header |
stock_inventory_request_count_form_view_inherit_stock_account |
stock.request.count.form.view.inherit.stock.account | stock.request.count | field | Inherits stock.stock_inventory_request_count_form_view |
stock_valuation_layer_form |
stock.valuation.layer.form | stock.valuation.layer | form | New |
stock_valuation_layer_picking |
stock.valuation.layer.picking | stock.picking | xpath | Inherits stock.view_picking_form |
stock_valuation_layer_pivot |
stock.valuation.layer.pivot | stock.valuation.layer | pivot | New |
stock_valuation_layer_report_tree |
stock.valuation.layer.report.tree | stock.valuation.layer | field | Inherits stock_valuation_layer_tree |
stock_valuation_layer_revaluation_form_view |
stock.valuation.layer.revaluation.form | stock.valuation.layer.revaluation | form | New |
stock_valuation_layer_tree |
stock.valuation.layer.tree | stock.valuation.layer | tree | New |
view_category_property_form |
product.category.stock.property.form.inherit | product.category | group | Inherits account.view_category_property_form |
view_category_property_form_stock |
product.category.stock.property.form.inherit.stock | product.category | group | Inherits stock.product_category_form_view_inherit |
view_inventory_valuation_search |
Inventory Valuation | stock.valuation.layer | search | New |
view_location_form_inherit |
stock.location.form.inherit | stock.location | xpath | Inherits stock.view_location_form |
view_move_form_inherit |
stock.move.form.inherit | stock.move | xpath | Inherits stock.view_move_form |
view_stock_quant_tree_editable_inherit |
stock.quant.tree.editable.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree_editable |
view_stock_quant_tree_inherit |
stock.quant.tree.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree |
view_stock_quant_tree_inventory_editable_inherit_stock_account |
stock.quant.inventory.tree.editable.inherit.stock.account | stock.quant | xpath | Inherits stock.view_stock_quant_tree_inventory_editable |
view_stock_quantity_history_inherit_stock_account |
Valuation Report at Date | stock.quantity.history | field | Inherits stock.view_stock_quantity_history |
view_stock_return_picking_form_inherit_stock_account |
stock.return.picking.stock.account.form | stock.return.picking | xpath | Inherits stock.view_stock_return_picking_form |
No new fields.
Public methods (2)generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company, property_list=None)
stock_move_id
Many2one → stock.move
index='btree_not_null'
string='Stock Move'
args: 'stock.move'
stock_valuation_layer_ids
One2many → stock.valuation.layer
string='Stock Valuation Layer'
args: 'stock.valuation.layer', 'account_move_id'
button_cancel(self)
button_draft(self)
copy_data(self, default=None)
stock_valuation_layer_ids
One2many → stock.valuation.layer
string='Stock Valuation Layer'
args: 'stock.valuation.layer', 'account_move_line_id'
No public methods.
property_cost_method
Selection
company_dependent=True
copy=True
help='Standard Price: The products are valued at their standard cost defined on the product.\n Average Cost (AVCO): The products are valued at weighted average cost.\n First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n '
required=True
string='Costing Method'
args: [('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
property_stock_account_input_categ_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0]), ('deprecated', '=', False)]"
help='Counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account\n set on the source location. This is the default value for all products in this category. It can also directly be set on each product.'
args: 'account.account', 'Stock Input Account'
property_stock_account_output_categ_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0]), ('deprecated', '=', False)]"
help='When doing automated inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account,\n unless there is a specific valuation account set on the destination location. This is the default value for all products in this category.\n It can also directly be set on each product.'
args: 'account.account', 'Stock Output Account'
property_stock_journal
Many2one → account.journal
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0])]"
help='When doing automated inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed.'
args: 'account.journal', 'Stock Journal'
property_stock_valuation_account_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0]), ('deprecated', '=', False)]"
help='When automated inventory valuation is enabled on a product, this account will hold the current value of the products.'
args: 'account.account', 'Stock Valuation Account'
property_valuation
Selection
company_dependent=True
copy=True
help='Manual: The accounting entries to value the inventory are not posted automatically.\n Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.\n '
required=True
string='Inventory Valuation'
args: [('manual_periodic', 'Manual'), ('real_time', 'Automated')]
create(self, vals_list)
onchange_property_cost(self)
onchange_property_valuation(self)
write(self, vals)
avg_cost
Monetary
compute='_compute_value_svl'
compute_sudo=True
currency_field='company_currency_id'
string='Average Cost'
company_currency_id
Many2one → res.currency
compute='_compute_value_svl'
compute_sudo=True
help="Technical field to correctly show the currently selected company's currency that corresponds to the totaled value of the product's valuation layers"
args: 'res.currency', 'Valuation Currency'
cost_method
Selection
readonly=True
related='categ_id.property_cost_method'
quantity_svl
Float
compute='_compute_value_svl'
compute_sudo=True
stock_valuation_layer_ids
One2many → stock.valuation.layer
total_value
Monetary
compute='_compute_value_svl'
compute_sudo=True
currency_field='company_currency_id'
string='Total Value'
valuation
Selection
readonly=True
related='categ_id.property_valuation'
value_svl
Float
compute='_compute_value_svl'
compute_sudo=True
action_revaluation(self)
write(self, vals)
cost_method
Selection
readonly=True
related='categ_id.property_cost_method'
valuation
Selection
readonly=True
related='categ_id.property_valuation'
get_product_accounts(self, fiscal_pos=None)
write(self, vals)
No new fields.
Public methods (0)No public methods.
group_lot_on_invoice
Boolean
implied_group='stock_account.group_lot_on_invoice'
args: 'Display Lots & Serial Numbers on Invoices'
module_stock_landed_costs
Boolean
help='Affect landed costs on reception operations and split them among products to update their cost price.'
args: 'Landed Costs'
No public methods.
valuation_in_account_id
Many2one → account.account
domain=[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'asset_cash', 'liability_credit_card')), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved from an internal location into this location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Incoming)'
valuation_out_account_id
Many2one → account.account
domain=[('account_type', 'not in', ('asset_receivable', 'liability_payable', 'asset_cash', 'liability_credit_card')), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved out of this location and into an internal location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Outgoing)'
No public methods.
account_move_ids
One2many → account.move
analytic_account_line_id
Many2one → account.analytic.line
copy=False
index='btree_not_null'
args: 'account.analytic.line'
stock_valuation_layer_ids
One2many → stock.valuation.layer
to_refund
Boolean
copy=False
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='Update quantities on SO/PO'
action_get_account_moves(self)
product_price_update_before_done(self, forced_qty=None)
No new fields.
Public methods (2)create(self, vals_list)
write(self, vals)
country_code
Char
related='company_id.account_fiscal_country_id.code'
action_view_stock_valuation_layers(self)
accounting_date
Date
help='Date at which the accounting entries will be created in case of automated inventory valuation. If empty, the inventory date will be used.'
args: 'Accounting Date'
cost_method
Selection
related='product_categ_id.property_cost_method'
currency_id
Many2one → res.currency
compute='_compute_value'
groups='stock.group_stock_manager'
args: 'res.currency'
value
Monetary
compute='_compute_value'
groups='stock.group_stock_manager'
args: 'Value'
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
No new fields.
Public methods (1)open_at_date(self)
accounting_date
Date
No public methods.
No new fields.
Public methods (1)default_get(self, default_fields)
to_refund
Boolean
default=True
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='Update quantities on SO/PO'
No public methods.
account_move_id
Many2one → account.move
check_company=True
index='btree_not_null'
readonly=True
args: 'account.move', 'Journal Entry'
account_move_line_id
Many2one → account.move.line
check_company=True
index='btree_not_null'
readonly=True
args: 'account.move.line', 'Invoice Line'
categ_id
Many2one → product.category
related='product_id.categ_id'
args: 'product.category'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
readonly=True
related='company_id.currency_id'
required=True
args: 'res.currency', 'Currency'
description
Char
readonly=True
args: 'Description'
price_diff_value
Float
product_id
Many2one → product.product
auto_join=True
check_company=True
readonly=True
required=True
args: 'product.product', 'Product'
product_tmpl_id
Many2one → product.template
related='product_id.product_tmpl_id'
args: 'product.template'
quantity
Float
digits='Product Unit of Measure'
readonly=True
args: 'Quantity'
reference
Char
related='stock_move_id.reference'
remaining_qty
Float
digits='Product Unit of Measure'
readonly=True
remaining_value
Monetary
readonly=True
args: 'Remaining Value'
stock_move_id
Many2one → stock.move
check_company=True
index=True
readonly=True
args: 'stock.move', 'Stock Move'
stock_valuation_layer_id
Many2one → stock.valuation.layer
check_company=True
index=True
readonly=True
args: 'stock.valuation.layer', 'Linked To'
stock_valuation_layer_ids
One2many → stock.valuation.layer
unit_cost
Monetary
readonly=True
args: 'Unit Value'
uom_id
Many2one
readonly=True
related='product_id.uom_id'
required=True
value
Monetary
readonly=True
args: 'Total Value'
action_open_layer(self)
action_open_reference(self)
init(self)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
account_id
Many2one → account.account
check_company=True
domain=[('deprecated', '=', False)]
args: 'account.account', 'Counterpart Account'
account_journal_id
Many2one → account.journal
check_company=True
args: 'account.journal', 'Journal'
added_value
Monetary
required=True
args: 'Added value'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
related='company_id.currency_id'
required=True
args: 'res.currency', 'Currency'
current_quantity_svl
Float
related='product_id.quantity_svl'
args: 'Current Quantity'
current_value_svl
Float
related='product_id.value_svl'
args: 'Current Value'
date
Date
new_value
Monetary
compute='_compute_new_value'
args: 'New value'
new_value_by_qty
Monetary
compute='_compute_new_value'
args: 'New value by quantity'
product_id
Many2one → product.product
check_company=True
required=True
args: 'product.product', 'Related product'
product_uom_name
Char
related='product_id.uom_id.name'
args: 'Unit of Measure'
property_valuation
Selection
related='product_id.categ_id.property_valuation'
reason
Char
help='Reason of the revaluation'
args: 'Reason'
action_validate_revaluation(self)
default_get(self, default_fields)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/15.0/stock_account |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Hidden |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Nicolas Martinelli, GitHub, Yannick Tivisse, Pierre Masereel, Laurent Smet, Arnold Moyaux, mreficent, Xavier-Do, Carlos Dauden, Victor Feyens, Andrea Grazioso (agr-odoo), William Henrotin, Nasreddin (bon), alt-odoo, oco-odoo, Florent de Labarre, Anh Thao Pham (pta), svs-odoo, Brice bib Bartoletti, Adrien Widart, Ivan Yelizariev, Nasreddin Boulif (bon), Touati Djamel (otd), nie, Tiffany Chang (tic), Rémy Voet (ryv), Aurélien (avd), root, Kevin Baptiste, roen-odoo, Jacky (trj), sergio-teruel, Ricardo Gomes Rodrigues (rigr), william-andre, Víctor Martínez, David (dafr), yhu-odoo, mafo-odoo, william, Thierry Ducrest, hendrik, anhe-odoo, Agustín Castro Bugallo, Yolann Sabaux, Aurelien van Delft (avd), Mathieu Walravens, AaronHForgeFlow, Habib (ayh), Thomas Lefebvre (thle), Merel Geens (mege), Walid, Mylyna Hy, Adrien Widart (awt), clesgow, Maxime Franco, lathuat1997, AH-Yussef, guva-odoo, Ethan Vincent, lase@odoo.com, Cyrus Robins |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:25:27 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - analytic |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
WMS Accounting module
======================
This module makes the link between the 'stock' and 'account' modules and allows you to create accounting entries to value your stock movements
Key Features
------------
* Stock Valuation (periodical or automatic)
* Invoice from Picking
Dashboard / Reports for Warehouse Management includes:
------------------------------------------------------
* Stock Inventory Value at given date (support dates in the past)
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_template_tree_view |
product.template.tree.inherit.stock.account | product.template | field | Inherits product.product_template_tree_view |
res_config_settings_view_form |
res.config.settings.view.form.inherit.stock.account | res.config.settings | div | Inherits stock.res_config_settings_view_form |
stock.product_template_kanban_stock_view |
New | |||
stock.view_stock_product_template_tree |
New | |||
stock.view_stock_product_tree |
New | |||
stock_account_report_invoice_document |
stock_account_report_invoice_document | ir.ui.view | qweb | Inherits account.report_invoice_document |
stock_account_report_product_product_replenishment |
stock_account_report_product_product_replenishment | ir.ui.view | qweb | Inherits stock.report_replenishment_header |
stock_inventory_request_count_form_view_inherit_stock_account |
stock.request.count.form.view.inherit.stock.account | stock.request.count | field | Inherits stock.stock_inventory_request_count_form_view |
stock_valuation_layer_form |
stock.valuation.layer.form | stock.valuation.layer | form | New |
stock_valuation_layer_picking |
stock.valuation.layer.picking | stock.picking | xpath | Inherits stock.view_picking_form |
stock_valuation_layer_pivot |
stock.valuation.layer.pivot | stock.valuation.layer | pivot | New |
stock_valuation_layer_revaluation_form_view |
stock.valuation.layer.revaluation.form | stock.valuation.layer.revaluation | form | New |
stock_valuation_layer_tree |
stock.valuation.layer.tree | stock.valuation.layer | tree | New |
view_category_property_form |
product.category.stock.property.form.inherit | product.category | group | Inherits account.view_category_property_form |
view_category_property_form_stock |
product.category.stock.property.form.inherit.stock | product.category | group | Inherits stock.product_category_form_view_inherit |
view_inventory_valuation_search |
Inventory Valuation | stock.valuation.layer | search | New |
view_location_form_inherit |
stock.location.form.inherit | stock.location | xpath | Inherits stock.view_location_form |
view_move_form_inherit |
stock.move.form.inherit | stock.move | xpath | Inherits stock.view_move_form |
view_stock_quant_tree_editable_inherit |
stock.quant.tree.editable.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree_editable |
view_stock_quant_tree_inherit |
stock.quant.tree.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree |
view_stock_quant_tree_inventory_editable_inherit_stock_account |
stock.quant.inventory.tree.editable.inherit.stock.account | stock.quant | xpath | Inherits stock.view_stock_quant_tree_inventory_editable |
view_stock_return_picking_form_inherit_stock_account |
stock.return.picking.stock.account.form | stock.return.picking | xpath | Inherits stock.view_stock_return_picking_form |
No new fields.
Public methods (2)generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company, property_list=None)
stock_move_id
Many2one → stock.move
index=True
string='Stock Move'
args: 'stock.move'
stock_valuation_layer_ids
One2many → stock.valuation.layer
string='Stock Valuation Layer'
args: 'stock.valuation.layer', 'account_move_id'
button_cancel(self)
button_draft(self)
copy_data(self, default=None)
is_anglo_saxon_line
Boolean
help='Technical field used to retrieve the anglo-saxon lines.'
No public methods.
property_cost_method
Selection
company_dependent=True
copy=True
help='Standard Price: The products are valued at their standard cost defined on the product.\n Average Cost (AVCO): The products are valued at weighted average cost.\n First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n '
required=True
string='Costing Method'
args: [('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
property_stock_account_input_categ_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0]), ('deprecated', '=', False)]"
help='Counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account\n set on the source location. This is the default value for all products in this category. It can also directly be set on each product.'
args: 'account.account', 'Stock Input Account'
property_stock_account_output_categ_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0]), ('deprecated', '=', False)]"
help='When doing automated inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account,\n unless there is a specific valuation account set on the destination location. This is the default value for all products in this category.\n It can also directly be set on each product.'
args: 'account.account', 'Stock Output Account'
property_stock_journal
Many2one → account.journal
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0])]"
help='When doing automated inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed.'
args: 'account.journal', 'Stock Journal'
property_stock_valuation_account_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0]), ('deprecated', '=', False)]"
help='When automated inventory valuation is enabled on a product, this account will hold the current value of the products.'
args: 'account.account', 'Stock Valuation Account'
property_valuation
Selection
company_dependent=True
copy=True
help='Manual: The accounting entries to value the inventory are not posted automatically.\n Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.\n '
required=True
string='Inventory Valuation'
args: [('manual_periodic', 'Manual'), ('real_time', 'Automated')]
create(self, vals)
onchange_property_cost(self)
onchange_property_valuation(self)
write(self, vals)
cost_method
Selection
readonly=True
related='categ_id.property_cost_method'
quantity_svl
Float
compute='_compute_value_svl'
compute_sudo=True
stock_valuation_layer_ids
One2many → stock.valuation.layer
valuation
Selection
readonly=True
related='categ_id.property_valuation'
value_svl
Float
compute='_compute_value_svl'
compute_sudo=True
action_revaluation(self)
write(self, vals)
cost_method
Selection
readonly=True
related='categ_id.property_cost_method'
valuation
Selection
readonly=True
related='categ_id.property_valuation'
get_product_accounts(self, fiscal_pos=None)
write(self, vals)
No new fields.
Public methods (0)No public methods.
group_lot_on_invoice
Boolean
implied_group='stock_account.group_lot_on_invoice'
args: 'Display Lots & Serial Numbers on Invoices'
module_stock_landed_costs
Boolean
help='Affect landed costs on reception operations and split them among products to update their cost price.'
args: 'Landed Costs'
No public methods.
valuation_in_account_id
Many2one → account.account
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved from an internal location into this location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Incoming)'
valuation_out_account_id
Many2one → account.account
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved out of this location and into an internal location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Outgoing)'
No public methods.
account_move_ids
One2many → account.move
analytic_account_line_id
Many2one → account.analytic.line
copy=False
index=True
args: 'account.analytic.line'
stock_valuation_layer_ids
One2many → stock.valuation.layer
to_refund
Boolean
copy=False
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='Update quantities on SO/PO'
action_get_account_moves(self)
product_price_update_before_done(self, forced_qty=None)
No new fields.
Public methods (2)create(self, vals_list)
write(self, vals)
country_code
Char
related='company_id.account_fiscal_country_id.code'
action_view_stock_valuation_layers(self)
accounting_date
Date
help='Date at which the accounting entries will be created in case of automated inventory valuation. If empty, the inventory date will be used.'
args: 'Accounting Date'
currency_id
Many2one → res.currency
compute='_compute_value'
groups='stock.group_stock_manager'
args: 'res.currency'
value
Monetary
compute='_compute_value'
groups='stock.group_stock_manager'
args: 'Value'
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
No new fields.
Public methods (1)open_at_date(self)
accounting_date
Date
No public methods.
No new fields.
Public methods (1)default_get(self, default_fields)
to_refund
Boolean
default=True
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='Update quantities on SO/PO'
No public methods.
account_move_id
Many2one → account.move
check_company=True
index=True
readonly=True
args: 'account.move', 'Journal Entry'
categ_id
Many2one → product.category
related='product_id.categ_id'
args: 'product.category'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
readonly=True
related='company_id.currency_id'
required=True
args: 'res.currency', 'Currency'
description
Char
readonly=True
args: 'Description'
product_id
Many2one → product.product
auto_join=True
check_company=True
readonly=True
required=True
args: 'product.product', 'Product'
product_tmpl_id
Many2one → product.template
related='product_id.product_tmpl_id'
args: 'product.template'
quantity
Float
digits='Product Unit of Measure'
help='Quantity'
readonly=True
args: 'Quantity'
remaining_qty
Float
digits='Product Unit of Measure'
readonly=True
remaining_value
Monetary
readonly=True
args: 'Remaining Value'
stock_move_id
Many2one → stock.move
check_company=True
index=True
readonly=True
args: 'stock.move', 'Stock Move'
stock_valuation_layer_id
Many2one → stock.valuation.layer
check_company=True
index=True
readonly=True
args: 'stock.valuation.layer', 'Linked To'
stock_valuation_layer_ids
One2many → stock.valuation.layer
unit_cost
Monetary
readonly=True
args: 'Unit Value'
uom_id
Many2one
readonly=True
related='product_id.uom_id'
required=True
value
Monetary
readonly=True
args: 'Total Value'
init(self)
account_id
Many2one → account.account
check_company=True
domain=[('deprecated', '=', False)]
args: 'account.account', 'Counterpart Account'
account_journal_id
Many2one → account.journal
check_company=True
args: 'account.journal', 'Journal'
added_value
Monetary
required=True
args: 'Added value'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
related='company_id.currency_id'
required=True
args: 'res.currency', 'Currency'
current_quantity_svl
Float
related='product_id.quantity_svl'
args: 'Current Quantity'
current_value_svl
Float
related='product_id.value_svl'
args: 'Current Value'
date
Date
new_value
Monetary
compute='_compute_new_value'
args: 'New value'
new_value_by_qty
Monetary
compute='_compute_new_value'
args: 'New value by quantity'
product_id
Many2one → product.product
check_company=True
required=True
args: 'product.product', 'Related product'
product_uom_name
Char
related='product_id.uom_id.name'
args: 'Unit of Measure'
property_valuation
Selection
related='product_id.categ_id.property_valuation'
reason
Char
help='Reason of the revaluation'
args: 'Reason'
action_validate_revaluation(self)
default_get(self, default_fields)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/14.0/stock_account |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Hidden |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Christophe Simonis, Goffin Simon, Simon Lejeune, Ravi Gohil, Nicolas Martinelli, qdp-odoo, Sylvain LE GAL, GitHub, Yannick Tivisse, Dharmraj Jhala, Laurent Smet, Arnold Moyaux, Adrian Torres, wan, Xavier-Do, Victor Feyens, Andrea Grazioso (agr-odoo), William Henrotin, Nasreddin (bon), alt-odoo, Florent de Labarre, fw-bot, Anh Thao Pham (pta), Debauche Stéphane, svs-odoo, Rémy Baranx (bar), Brice bib Bartoletti, Adrien Widart, Ivan Yelizariev, Touati Djamel (otd), nie, Tiffany Chang (tic), Rémy Voet (ryv), Djamel (otd), jbm-odoo, Aurélien (avd), root, Kevin Baptiste, Pratima Gupta, roen-odoo, Jigar Vaghela, Ricardo Gomes Rodrigues (rigr), David (dafr), yhu-odoo, mafo-odoo, Didier (did), william, Ujas Dubal, Maulik Raval, hungbui, Thierry Ducrest, hendrik, anhe-odoo, Agustín Castro Bugallo, Yolann Sabaux, Hemali Bhimani, Mathieu Walravens, Merel Geens (mege), Mylyna Hy, Adrien Widart (awt), Maxime Franco |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:14:28 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - digest - portal - web_editor - http_routing - auth_signup - resource - account - analytic |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
WMS Accounting module
======================
This module makes the link between the 'stock' and 'account' modules and allows you to create accounting entries to value your stock movements
Key Features
------------
* Stock Valuation (periodical or automatic)
* Invoice from Picking
Dashboard / Reports for Warehouse Management includes:
------------------------------------------------------
* Stock Inventory Value at given date (support dates in the past)
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_template_tree_view |
product.template.tree.inherit.stock.account | product.template | field | Inherits product.product_template_tree_view |
res_config_settings_view_form |
res.config.settings.view.form.inherit.stock.account | res.config.settings | div | Inherits stock.res_config_settings_view_form |
stock_account_report_product_product_replenishment |
stock_account_report_product_product_replenishment | ir.ui.view | qweb | Inherits stock.report_replenishment_header |
stock_valuation_layer_form |
stock.valuation.layer.form | stock.valuation.layer | form | New |
stock_valuation_layer_picking |
stock.valuation.layer.picking | stock.picking | xpath | Inherits stock.view_picking_form |
stock_valuation_layer_revaluation_form_view |
stock.valuation.layer.revaluation.form | stock.valuation.layer.revaluation | form | New |
stock_valuation_layer_tree |
stock.valuation.layer.tree | stock.valuation.layer | tree | New |
view_category_property_form |
product.category.stock.property.form.inherit | product.category | group | Inherits account.view_category_property_form |
view_inventory_form_inherit |
stock.inventory.form.inherit | stock.inventory | xpath | Inherits stock.view_inventory_form |
view_inventory_tree |
stock.inventory.tree.inherit.stock.account | stock.inventory | xpath | Inherits stock.view_inventory_tree |
view_inventory_valuation_search |
Inventory Valuation | stock.valuation.layer | search | New |
view_location_form_inherit |
stock.location.form.inherit | stock.location | xpath | Inherits stock.view_location_form |
view_move_form_inherit |
stock.move.form.inherit | stock.move | xpath | Inherits stock.view_move_form |
view_stock_quant_tree_editable_inherit |
stock.quant.tree.editable.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree_editable |
view_stock_quant_tree_inherit |
stock.quant.tree.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree |
view_stock_return_picking_form_inherit_stock_account |
stock.return.picking.stock.account.form | stock.return.picking | xpath | Inherits stock.view_stock_return_picking_form |
No new fields.
Public methods (2)generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company, property_list=None)
stock_move_id
Many2one → stock.move
index=True
string='Stock Move'
args: 'stock.move'
stock_valuation_layer_ids
One2many → stock.valuation.layer
string='Stock Valuation Layer'
args: 'stock.valuation.layer', 'account_move_id'
button_cancel(self)
button_draft(self)
copy_data(self, default=None)
is_anglo_saxon_line
Boolean
help='Technical field used to retrieve the anglo-saxon lines.'
No public methods.
property_cost_method
Selection
company_dependent=True
copy=True
help='Standard Price: The products are valued at their standard cost defined on the product.\n Average Cost (AVCO): The products are valued at weighted average cost.\n First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n '
required=True
string='Costing Method'
args: [('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
property_stock_account_input_categ_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0]), ('deprecated', '=', False)]"
help='Counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account\n set on the source location. This is the default value for all products in this category. It can also directly be set on each product.'
args: 'account.account', 'Stock Input Account'
property_stock_account_output_categ_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0]), ('deprecated', '=', False)]"
help='When doing automated inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account,\n unless there is a specific valuation account set on the destination location. This is the default value for all products in this category.\n It can also directly be set on each product.'
args: 'account.account', 'Stock Output Account'
property_stock_journal
Many2one → account.journal
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0])]"
help='When doing automated inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed.'
args: 'account.journal', 'Stock Journal'
property_stock_valuation_account_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0]), ('deprecated', '=', False)]"
help='When automated inventory valuation is enabled on a product, this account will hold the current value of the products.'
args: 'account.account', 'Stock Valuation Account'
property_valuation
Selection
company_dependent=True
copy=True
help='Manual: The accounting entries to value the inventory are not posted automatically.\n Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.\n '
required=True
string='Inventory Valuation'
args: [('manual_periodic', 'Manual'), ('real_time', 'Automated')]
create(self, vals)
onchange_property_cost(self)
onchange_property_valuation(self)
write(self, vals)
cost_method
Selection
readonly=True
related='categ_id.property_cost_method'
quantity_svl
Float
compute='_compute_value_svl'
compute_sudo=True
stock_valuation_layer_ids
One2many → stock.valuation.layer
valuation
Selection
readonly=True
related='categ_id.property_valuation'
value_svl
Float
compute='_compute_value_svl'
compute_sudo=True
action_revaluation(self)
write(self, vals)
cost_method
Selection
readonly=True
related='categ_id.property_cost_method'
valuation
Selection
readonly=True
related='categ_id.property_valuation'
get_product_accounts(self, fiscal_pos=None)
write(self, vals)
No new fields.
Public methods (0)No public methods.
module_stock_landed_costs
Boolean
help='Affect landed costs on reception operations and split them among products to update their cost price.'
args: 'Landed Costs'
No public methods.
accounting_date
Date
help='Date at which the accounting entries will be created in case of automated inventory valuation. If empty, the inventory date will be used.'
args: 'Accounting Date'
has_account_moves
Boolean
compute='_compute_has_account_moves'
compute_sudo=True
action_get_account_moves(self)
post_inventory(self)
valuation_in_account_id
Many2one → account.account
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved from an internal location into this location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Incoming)'
valuation_out_account_id
Many2one → account.account
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved out of this location and into an internal location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Outgoing)'
No public methods.
account_move_ids
One2many → account.move
stock_valuation_layer_ids
One2many → stock.valuation.layer
to_refund
Boolean
copy=False
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='Update quantities on SO/PO'
action_get_account_moves(self)
product_price_update_before_done(self, forced_qty=None)
No new fields.
Public methods (2)create(self, vals_list)
write(self, vals)
No new fields.
Public methods (1)action_view_stock_valuation_layers(self)
currency_id
Many2one → res.currency
compute='_compute_value'
groups='stock.group_stock_manager'
args: 'res.currency'
value
Monetary
compute='_compute_value'
groups='stock.group_stock_manager'
args: 'Value'
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
No new fields.
Public methods (1)open_at_date(self)
No new fields.
Public methods (1)default_get(self, default_fields)
to_refund
Boolean
default=True
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='Update quantities on SO/PO'
No public methods.
account_move_id
Many2one → account.move
check_company=True
index=True
readonly=True
args: 'account.move', 'Journal Entry'
categ_id
Many2one → product.category
related='product_id.categ_id'
args: 'product.category'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
readonly=True
related='company_id.currency_id'
required=True
args: 'res.currency', 'Currency'
description
Char
readonly=True
args: 'Description'
product_id
Many2one → product.product
auto_join=True
check_company=True
readonly=True
required=True
args: 'product.product', 'Product'
product_tmpl_id
Many2one → product.template
related='product_id.product_tmpl_id'
args: 'product.template'
quantity
Float
digits=0
help='Quantity'
readonly=True
args: 'Quantity'
remaining_qty
Float
digits=0
readonly=True
remaining_value
Monetary
readonly=True
args: 'Remaining Value'
stock_move_id
Many2one → stock.move
check_company=True
index=True
readonly=True
args: 'stock.move', 'Stock Move'
stock_valuation_layer_id
Many2one → stock.valuation.layer
check_company=True
readonly=True
args: 'stock.valuation.layer', 'Linked To'
stock_valuation_layer_ids
One2many → stock.valuation.layer
unit_cost
Monetary
readonly=True
args: 'Unit Value'
uom_id
Many2one
readonly=True
related='product_id.uom_id'
required=True
value
Monetary
readonly=True
args: 'Total Value'
init(self)
account_id
Many2one → account.account
check_company=True
domain=[('deprecated', '=', False)]
args: 'account.account', 'Counterpart Account'
account_journal_id
Many2one → account.journal
check_company=True
args: 'account.journal', 'Journal'
added_value
Monetary
required=True
args: 'Added value'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
related='company_id.currency_id'
required=True
args: 'res.currency', 'Currency'
current_quantity_svl
Float
related='product_id.quantity_svl'
args: 'Current Quantity'
current_value_svl
Float
related='product_id.value_svl'
args: 'Current Value'
date
Date
new_value
Monetary
compute='_compute_new_value'
args: 'New value'
new_value_by_qty
Monetary
compute='_compute_new_value'
args: 'New value by quantity'
product_id
Many2one → product.product
check_company=True
required=True
args: 'product.product', 'Related product'
product_uom_name
Char
related='product_id.uom_id.name'
args: 'Unit of Measure'
property_valuation
Selection
related='product_id.categ_id.property_valuation'
reason
Char
help='Reason of the revaluation'
args: 'Reason'
action_validate_revaluation(self)
default_get(self, default_fields)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/13.0/stock_account |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Hidden |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Xavier Morel, Goffin Simon, Simon Lejeune, Nicolas Martinelli, qdp-odoo, Yannick Tivisse, Pierre Masereel, Laurent Smet, RomainLibert, Arnold Moyaux, Adrian Torres, wan, Xavier-Do, Andrea Grazioso (agr-odoo), William Henrotin, Sébastien Theys, Nasreddin (bon), oco-odoo, Anh Thao Pham (pta), svs-odoo, Brice bib Bartoletti, Adrien Widart, Touati Djamel (otd), Prakash Prajapati, Tiffany Chang (tic), Rémy Voet (ryv), Aurélien (avd), Jinal Patel, root, Pratima Gupta, Guillaume (guva), Arnaud Baes, roen-odoo, arbaes, David (dafr), yhu-odoo, JordiMForgeFlow, Ujas Dubal, Maulik Raval, hungbui, Thierry Ducrest, hendrik, anhe-odoo, Agustín Castro Bugallo |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:06:42 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - base_setup - web - bus - web_tour - uom - barcodes - account - analytic - portal - web_editor - http_routing - auth_signup - digest - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
WMS Accounting module
======================
This module makes the link between the 'stock' and 'account' modules and allows you to create accounting entries to value your stock movements
Key Features
------------
* Stock Valuation (periodical or automatic)
* Invoice from Picking
Dashboard / Reports for Warehouse Management includes:
------------------------------------------------------
* Stock Inventory Value at given date (support dates in the past)
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_product_normal_form_view_inherit |
product.product.normal.form.view.inherit | product.product | data | Inherits product.product_normal_form_view |
product_template_tree_view |
product.template.tree.inherit.stock.account | product.template | field | Inherits product.product_template_tree_view |
product_variant_easy_edit_view_inherit |
product.product.product.view.form.easy.inherit | product.product | data | Inherits product.product_variant_easy_edit_view |
res_config_settings_view_form |
res.config.settings.view.form.inherit.stock.account | res.config.settings | div | Inherits stock.res_config_settings_view_form |
stock_valuation_layer_form |
stock.valuation.layer.form | stock.valuation.layer | form | New |
stock_valuation_layer_picking |
stock.valuation.layer.picking | stock.picking | xpath | Inherits stock.view_picking_form |
stock_valuation_layer_search |
stock.valuation.layer.search | stock.valuation.layer | search | New |
stock_valuation_layer_tree |
stock.valuation.layer.tree | stock.valuation.layer | tree | New |
view_category_property_form |
product.category.stock.property.form.inherit | product.category | group | Inherits account.view_category_property_form |
view_change_standard_price |
Change Standard Price | stock.change.standard.price | form | New |
view_inventory_form_inherit |
stock.inventory.form.inherit | stock.inventory | xpath | Inherits stock.view_inventory_form |
view_inventory_tree |
stock.inventory.tree.inherit.stock.account | stock.inventory | xpath | Inherits stock.view_inventory_tree |
view_inventory_valuation_search |
Inventory Valuation | stock.valuation.layer | search | New |
view_location_form_inherit |
stock.location.form.inherit | stock.location | xpath | Inherits stock.view_location_form |
view_move_form_inherit |
stock.move.form.inherit | stock.move | xpath | Inherits stock.view_move_form |
view_stock_quant_tree_editable_inherit |
stock.quant.tree.editable.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree_editable |
view_stock_quant_tree_inherit |
stock.quant.tree.inherit | stock.quant | xpath | Inherits stock.view_stock_quant_tree |
view_stock_return_picking_form_inherit_stock_account |
stock.return.picking.stock.account.form | stock.return.picking | xpath | Inherits stock.view_stock_return_picking_form |
view_template_property_form |
product.template.stock.property.form.inherit | product.template | data | Inherits product.product_template_form_view |
No new fields.
Public methods (2)generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company, property_list=None)
stock_move_id
Many2one → stock.move
index=True
string='Stock Move'
args: 'stock.move'
stock_valuation_layer_ids
One2many → stock.valuation.layer
string='Stock Valuation Layer'
args: 'stock.valuation.layer', 'account_move_id'
button_cancel(self)
button_draft(self)
copy_data(self, default=None)
post(self)
is_anglo_saxon_line
Boolean
help='Technical field used to retrieve the anglo-saxon lines.'
No public methods.
No new fields.
Public methods (0)No public methods.
property_cost_method
Selection
company_dependent=True
copy=True
help='Standard Price: The products are valued at their standard cost defined on the product.\n Average Cost (AVCO): The products are valued at weighted average cost.\n First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n '
required=True
string='Costing Method'
args: [('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
property_stock_account_input_categ_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0]), ('deprecated', '=', False)]"
help='When doing automated inventory valuation, counterpart journal items for all incoming stock moves will be posted in this account,\n unless there is a specific valuation account set on the source location. This is the default value for all products in this category.\n It can also directly be set on each product.'
args: 'account.account', 'Stock Input Account'
property_stock_account_output_categ_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0]), ('deprecated', '=', False)]"
help='When doing automated inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account,\n unless there is a specific valuation account set on the destination location. This is the default value for all products in this category.\n It can also directly be set on each product.'
args: 'account.account', 'Stock Output Account'
property_stock_journal
Many2one → account.journal
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0])]"
help='When doing automated inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed.'
args: 'account.journal', 'Stock Journal'
property_stock_valuation_account_id
Many2one → account.account
check_company=True
company_dependent=True
domain="[('company_id', '=', allowed_company_ids[0]), ('deprecated', '=', False)]"
help='When automated inventory valuation is enabled on a product, this account will hold the current value of the products.'
args: 'account.account', 'Stock Valuation Account'
property_valuation
Selection
company_dependent=True
copy=True
help='Manual: The accounting entries to value the inventory are not posted automatically.\n Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.\n '
required=True
string='Inventory Valuation'
args: [('manual_periodic', 'Manual'), ('real_time', 'Automated')]
onchange_property_valuation(self)
write(self, vals)
quantity_svl
Float
compute='_compute_value_svl'
compute_sudo=True
stock_valuation_layer_ids
One2many → stock.valuation.layer
value_svl
Float
compute='_compute_value_svl'
compute_sudo=True
write(self, vals)
cost_method
Selection
readonly=True
related='categ_id.property_cost_method'
valuation
Selection
readonly=True
related='categ_id.property_valuation'
get_product_accounts(self, fiscal_pos=None)
write(self, vals)
module_stock_landed_costs
Boolean
help='Affect landed costs on reception operations and split them among products to update their cost price.'
args: 'Landed Costs'
No public methods.
counterpart_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
string='Counter-Part Account'
args: 'account.account'
counterpart_account_id_required
Boolean
string='Counter-Part Account Required'
new_price
Float
digits='Product Price'
help='If cost price is increased, stock variation account will be debited and stock output account will be credited with the value = (difference of amount * quantity available).\nIf cost price is decreased, stock variation account will be creadited and stock input account will be debited.'
required=True
args: 'Price'
change_price(self)
default_get(self, fields)
accounting_date
Date
help='Date at which the accounting entries will be created in case of automated inventory valuation. If empty, the inventory date will be used.'
args: 'Accounting Date'
has_account_moves
Boolean
compute='_compute_has_account_moves'
compute_sudo=True
action_get_account_moves(self)
post_inventory(self)
valuation_in_account_id
Many2one → account.account
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved from an internal location into this location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Incoming)'
valuation_out_account_id
Many2one → account.account
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved out of this location and into an internal location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Outgoing)'
No public methods.
account_move_ids
One2many → account.move
stock_valuation_layer_ids
One2many → stock.valuation.layer
to_refund
Boolean
copy=False
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='Update quantities on SO/PO'
action_get_account_moves(self)
product_price_update_before_done(self, forced_qty=None)
No new fields.
Public methods (2)create(self, vals_list)
write(self, vals)
No new fields.
Public methods (1)action_view_stock_valuation_layers(self)
currency_id
Many2one → res.currency
compute='_compute_value'
groups='stock.group_stock_manager'
args: 'res.currency'
value
Monetary
compute='_compute_value'
groups='stock.group_stock_manager'
args: 'Value'
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
No new fields.
Public methods (1)open_at_date(self)
No new fields.
Public methods (1)default_get(self, default_fields)
to_refund
Boolean
default=True
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='Update quantities on SO/PO'
No public methods.
account_move_id
Many2one → account.move
check_company=True
readonly=True
args: 'account.move', 'Journal Entry'
active
Boolean
related='product_id.active'
categ_id
Many2one → product.category
related='product_id.categ_id'
args: 'product.category'
company_id
Many2one → res.company
readonly=True
required=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
readonly=True
related='company_id.currency_id'
required=True
args: 'res.currency', 'Currency'
description
Char
readonly=True
args: 'Description'
product_id
Many2one → product.product
auto_join=True
check_company=True
readonly=True
required=True
args: 'product.product', 'Product'
product_tmpl_id
Many2one → product.template
related='product_id.product_tmpl_id'
args: 'product.template'
quantity
Float
digits=0
help='Quantity'
readonly=True
args: 'Quantity'
remaining_qty
Float
digits=0
readonly=True
remaining_value
Monetary
readonly=True
args: 'Remaining Value'
stock_move_id
Many2one → stock.move
check_company=True
index=True
readonly=True
args: 'stock.move', 'Stock Move'
stock_valuation_layer_id
Many2one → stock.valuation.layer
check_company=True
readonly=True
args: 'stock.valuation.layer', 'Linked To'
stock_valuation_layer_ids
One2many → stock.valuation.layer
unit_cost
Monetary
readonly=True
args: 'Unit Value'
uom_id
Many2one
readonly=True
related='product_id.uom_id'
required=True
value
Monetary
readonly=True
args: 'Total Value'
init(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/12.0/stock_account |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Hidden |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Goffin Simon, Simon Lejeune, Nicolas Martinelli, Nicolas Lempereur, qdp-odoo, GitHub, Lucas Perais (lpe), Yannick Tivisse, Alexandre Kühn, qsm-odoo, Pierre Masereel, Jorge Pinna Puissant, Arnold Moyaux, Adrian Torres, XavierDo, Xavier-Do, Andrea Grazioso (agr-odoo), Fanny He, William Henrotin, david, fw-bot, Anh Thao Pham (pta), Nikunj Ladava, Swapnesh Shah |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:57:00 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - decimal_precision - base_setup - web - bus - web_tour - uom - barcodes - account - analytic - portal - http_routing - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
WMS Accounting module
======================
This module makes the link between the 'stock' and 'account' modules and allows you to create accounting entries to value your stock movements
Key Features
------------
* Stock Valuation (periodical or automatic)
* Invoice from Picking
Dashboard / Reports for Warehouse Management includes:
------------------------------------------------------
* Stock Inventory Value at given date (support dates in the past)
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_normal_form_view_inherit |
product.product.form.inherit.stock_account | product.product | data | Inherits product.product_normal_form_view |
product_variant_easy_edit_view_inherit |
product.product.product.view.form.easy.inherit | product.product | data | Inherits product.product_variant_easy_edit_view |
res_config_settings_view_form |
res.config.settings.view.form.inherit.stock.account | res.config.settings | div | Inherits stock.res_config_settings_view_form |
view_category_property_form |
product.category.stock.property.form.inherit | product.category | group | Inherits account.view_category_property_form |
view_change_standard_price |
Change Standard Price | stock.change.standard.price | form | New |
view_inventory_form_inherit |
stock.inventory.form.inherit | stock.inventory | xpath | Inherits stock.view_inventory_form |
view_inventory_valuation_search |
product.product | product.product | search | New |
view_location_form_inherit |
stock.location.form.inherit | stock.location | xpath | Inherits stock.view_location_form |
view_move_form_inherit |
stock.move.form.inherit | stock.move | xpath | Inherits stock.view_move_form |
view_move_tree_valuation_at_date |
stock.move.tree.valuation.at.date | stock.move | tree | New |
view_stock_account_aml |
stock.account.aml | account.move.line | tree | New |
view_stock_product_tree2 |
product.stock.tree.2 | product.product | tree | New |
view_stock_quantity_history |
Valuation Report | stock.quantity.history | form | New |
view_stock_return_picking_form_inherit_stock_account |
stock.return.picking.stock.account.form | stock.return.picking | xpath | Inherits stock.view_stock_return_picking_form |
view_template_property_form |
product.template.stock.property.form.inherit | product.template | data | Inherits product.product_template_form_view |
No new fields.
Public methods (2)generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company, property_list=None)
No new fields.
Public methods (2)invoice_line_move_line_get(self)
invoice_validate(self)
No new fields.
Public methods (1)get_invoice_line_account(self, type, product, fpos, company)
stock_move_id
Many2one → stock.move
string='Stock Move'
args: 'stock.move'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
property_cost_method
Selection
company_dependent=True
copy=True
help='Standard Price: The products are valued at their standard cost defined on the product.\n Average Cost (AVCO): The products are valued at weighted average cost.\n First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n '
required=True
string='Costing Method'
args: [('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
property_stock_account_input_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When doing real-time inventory valuation, counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account set on the source location. This is the default value for all products in this category. It can also directly be set on each product'
oldname='property_stock_account_input_categ'
args: 'account.account', 'Stock Input Account'
property_stock_account_output_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When doing real-time inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account, unless there is a specific valuation account set on the destination location. This is the default value for all products in this category. It can also directly be set on each product'
oldname='property_stock_account_output_categ'
args: 'account.account', 'Stock Output Account'
property_stock_journal
Many2one → account.journal
company_dependent=True
help='When doing real-time inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed.'
args: 'account.journal', 'Stock Journal'
property_stock_valuation_account_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When real-time inventory valuation is enabled on a product, this account will hold the current value of the products.'
args: 'account.account', 'Stock Valuation Account'
property_valuation
Selection
company_dependent=True
copy=True
help='Manual: The accounting entries to value the inventory are not posted automatically.\n Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.\n '
required=True
string='Inventory Valuation'
args: [('manual_periodic', 'Manual'), ('real_time', 'Automated')]
onchange_property_valuation(self)
qty_at_date
Float
compute='_compute_stock_value'
args: 'Quantity'
stock_fifo_manual_move_ids
Many2many → stock.move
compute='_compute_stock_value'
args: 'stock.move'
stock_fifo_real_time_aml_ids
Many2many → account.move.line
compute='_compute_stock_value'
args: 'account.move.line'
stock_value
Float
compute='_compute_stock_value'
args: 'Value'
stock_value_currency_id
Many2one → res.currency
compute='_compute_stock_value_currency'
args: 'res.currency'
action_open_product_moves(self)
action_valuation_at_date_details(self)
do_change_standard_price(self, new_price, account_id)
cost_method
Char
compute='_compute_cost_method'
inverse='_set_cost_method'
property_cost_method
Selection
company_dependent=True
copy=True
help='Standard Price: The products are valued at their standard cost defined on the product.\n Average Cost (AVCO): The products are valued at weighted average cost.\n First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.'
string='Costing Method'
args: [('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
property_stock_account_input
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When doing real-time inventory valuation, counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account set on the source location. When not set on the product, the one from the product category is used.'
args: 'account.account', 'Stock Input Account'
property_stock_account_output
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When doing real-time inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account, unless there is a specific valuation account set on the destination location. When not set on the product, the one from the product category is used.'
args: 'account.account', 'Stock Output Account'
property_valuation
Selection
company_dependent=True
copy=True
default='manual_periodic'
help='Manual: The accounting entries to value the inventory are not posted automatically.\n Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.'
string='Inventory Valuation'
args: [('manual_periodic', 'Periodic (manual)'), ('real_time', 'Perpetual (automated)')]
valuation
Char
compute='_compute_valuation_type'
inverse='_set_valuation_type'
search='_search_valuation'
action_open_product_moves(self)
get_product_accounts(self, fiscal_pos=None)
module_stock_landed_costs
Boolean
help='Affect landed costs on reception operations and split them among products to update their cost price.'
args: 'Landed Costs'
No public methods.
counterpart_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
string='Counter-Part Account'
args: 'account.account'
counterpart_account_id_required
Boolean
string='Counter-Part Account Required'
new_price
Float
digits=dp.get_precision('Product Price')
help='If cost price is increased, stock variation account will be debited and stock output account will be credited with the value = (difference of amount * quantity available).\nIf cost price is decreased, stock variation account will be creadited and stock input account will be debited.'
required=True
args: 'Price'
change_price(self)
default_get(self, fields)
accounting_date
Date
help='Date at which the accounting entries will be created in case of automated inventory valuation. If empty, the inventory date will be used.'
args: 'Accounting Date'
post_inventory(self)
valuation_in_account_id
Many2one → account.account
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved from an internal location into this location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Incoming)'
valuation_out_account_id
Many2one → account.account
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved out of this location and into an internal location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Outgoing)'
No public methods.
account_move_ids
One2many → account.move
remaining_qty
Float
copy=False
remaining_value
Float
copy=False
to_refund
Boolean
copy=False
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='To Refund (update SO/PO)'
value
Float
copy=False
action_get_account_moves(self)
product_price_update_before_done(self, forced_qty=None)
No new fields.
Public methods (2)create(self, vals_list)
write(self, vals)
No new fields.
Public methods (1)open_table(self)
No new fields.
Public methods (0)No public methods.
to_refund
Boolean
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='To Refund (update SO/PO)'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/11.0/stock_account |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Hidden |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Josse Colpaert, Christophe Simonis, Xavier Morel, Joren Van Onder, Goffin Simon, Simon Lejeune, Nicolas Martinelli, Nicolas Lempereur, Richard Mathot, qdp-odoo, Aaron Bohy, Jeremy Kersten, GitHub, Lucas Perais (lpe), Yannick Tivisse, Odoo Online, Pierre Masereel, Denis Vermylen (dve), len-odoo, Nans Lefebvre, Arnold Moyaux, Nathan de Pryck, david, Joseph Caburnay |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/warehouse |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:53:42 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - decimal_precision - base_setup - web - bus - web_tour - barcodes - web_planner - account - analytic - portal - http_routing |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
WMS Accounting module
======================
This module makes the link between the 'stock' and 'account' modules and allows you to create accounting entries to value your stock movements
Key Features
------------
* Stock Valuation (periodical or automatic)
* Invoice from Picking
Dashboard / Reports for Warehouse Management includes:
------------------------------------------------------
* Stock Inventory Value at given date (support dates in the past)
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_variant_easy_edit_view_inherit |
product.product.product.view.form.easy.inherit | product.product | data | Inherits product.product_variant_easy_edit_view |
res_config_settings_view_form |
res.config.settings.view.form.inherit.stock.account | res.config.settings | div | Inherits stock.res_config_settings_view_form |
view_category_property_form |
product.category.stock.property.form.inherit | product.category | group | Inherits account.view_category_property_form |
view_change_standard_price |
Change Standard Price | stock.change.standard.price | form | New |
view_inventory_form_inherit |
stock.inventory.form.inherit | stock.inventory | xpath | Inherits stock.view_inventory_form |
view_location_form_inherit |
stock.location.form.inherit | stock.location | xpath | Inherits stock.view_location_form |
view_move_form_inherit |
stock.move.form.inherit | stock.move | xpath | Inherits stock.view_move_form |
view_move_tree_valuation_at_date |
stock.move.tree.valuation.at.date | stock.move | tree | New |
view_stock_account_aml |
stock.account.aml | account.move.line | tree | New |
view_stock_product_tree2 |
product.stock.tree.2 | product.product | tree | New |
view_stock_quantity_history |
Valuation Report | stock.quantity.history | form | New |
view_stock_return_picking_form_inherit_stock_account |
stock.return.picking.stock.account.form | stock.return.picking | xpath | Inherits stock.view_stock_return_picking_form |
view_template_property_form |
product.template.stock.property.form.inherit | product.template | data | Inherits product.product_template_form_view |
No new fields.
Public methods (2)generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company, property_list=None)
No new fields.
Public methods (1)invoice_line_move_line_get(self)
No new fields.
Public methods (1)get_invoice_line_account(self, type, product, fpos, company)
stock_move_id
Many2one → stock.move
string='Stock Move'
args: 'stock.move'
No public methods.
No new fields.
Public methods (0)No public methods.
property_cost_method
Selection
company_dependent=True
copy=True
help='Standard Price: The products are valued at their standard cost defined on the product.\n Average Cost (AVCO): The products are valued at weighted average cost.\n First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.\n '
required=True
string='Costing Method'
args: [('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
property_stock_account_input_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When doing real-time inventory valuation, counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account set on the source location. This is the default value for all products in this category. It can also directly be set on each product'
oldname='property_stock_account_input_categ'
args: 'account.account', 'Stock Input Account'
property_stock_account_output_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When doing real-time inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account, unless there is a specific valuation account set on the destination location. This is the default value for all products in this category. It can also directly be set on each product'
oldname='property_stock_account_output_categ'
args: 'account.account', 'Stock Output Account'
property_stock_journal
Many2one → account.journal
company_dependent=True
help='When doing real-time inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed.'
args: 'account.journal', 'Stock Journal'
property_stock_valuation_account_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When real-time inventory valuation is enabled on a product, this account will hold the current value of the products.'
args: 'account.account', 'Stock Valuation Account'
property_valuation
Selection
company_dependent=True
copy=True
help='Manual: The accounting entries to value the inventory are not posted automatically.\n Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.\n '
required=True
string='Inventory Valuation'
args: [('manual_periodic', 'Manual'), ('real_time', 'Automated')]
onchange_property_valuation(self)
qty_at_date
Float
compute='_compute_stock_value'
args: 'Quantity'
stock_fifo_manual_move_ids
Many2many → stock.move
compute='_compute_stock_value'
args: 'stock.move'
stock_fifo_real_time_aml_ids
Many2many → account.move.line
compute='_compute_stock_value'
args: 'account.move.line'
stock_value
Float
compute='_compute_stock_value'
args: 'Value'
action_open_product_moves(self)
action_valuation_at_date_details(self)
do_change_standard_price(self, new_price, account_id)
cost_method
Char
compute='_compute_cost_method'
inverse='_set_cost_method'
property_cost_method
Selection
company_dependent=True
copy=True
help='Standard Price: The products are valued at their standard cost defined on the product.\n Average Cost (AVCO): The products are valued at weighted average cost.\n First In First Out (FIFO): The products are valued supposing those that enter the company first will also leave it first.'
string='Costing Method'
args: [('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]
property_stock_account_input
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When doing real-time inventory valuation, counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account set on the source location. When not set on the product, the one from the product category is used.'
args: 'account.account', 'Stock Input Account'
property_stock_account_output
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When doing real-time inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account, unless there is a specific valuation account set on the destination location. When not set on the product, the one from the product category is used.'
args: 'account.account', 'Stock Output Account'
property_valuation
Selection
company_dependent=True
copy=True
default='manual_periodic'
help='Manual: The accounting entries to value the inventory are not posted automatically.\n Automated: An accounting entry is automatically created to value the inventory when a product enters or leaves the company.'
string='Inventory Valuation'
args: [('manual_periodic', 'Periodic (manual)'), ('real_time', 'Perpetual (automated)')]
valuation
Char
compute='_compute_valuation_type'
inverse='_set_valuation_type'
action_open_product_moves(self)
get_product_accounts(self, fiscal_pos=None)
module_stock_landed_costs
Boolean
help='Affect landed costs on receipt operations and split them among products to update their cost price.'
args: 'Landed Costs'
No public methods.
counterpart_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
string='Counter-Part Account'
args: 'account.account'
counterpart_account_id_required
Boolean
string='Counter-Part Account Required'
new_price
Float
digits=dp.get_precision('Product Price')
help='If cost price is increased, stock variation account will be debited and stock output account will be credited with the value = (difference of amount * quantity available).\nIf cost price is decreased, stock variation account will be creadited and stock input account will be debited.'
required=True
args: 'Price'
change_price(self)
default_get(self, fields)
accounting_date
Date
help='Choose the accounting date at which you want to value the stock moves created by the inventory instead of the default one (the inventory end date)'
args: 'Force Accounting Date'
post_inventory(self)
valuation_in_account_id
Many2one → account.account
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved from an internal location into this location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Incoming)'
valuation_out_account_id
Many2one → account.account
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved out of this location and into an internal location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Outgoing)'
No public methods.
account_move_ids
One2many → account.move
remaining_qty
Float
copy=False
remaining_value
Float
copy=False
to_refund
Boolean
copy=False
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='To Refund (update SO/PO)'
value
Float
copy=False
action_get_account_moves(self)
product_price_update_before_done(self, forced_qty=None)
No new fields.
Public methods (2)create(self, vals)
write(self, vals)
No new fields.
Public methods (1)open_table(self)
No new fields.
Public methods (0)No public methods.
to_refund
Boolean
help='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'
string='To Refund (update SO/PO)'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/10.0/stock_account |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Hidden |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Joren Van Onder, Goffin Simon, Simon Lejeune, Nicolas Martinelli, Nicolas Lempereur, Julien Legros, qdp-odoo, GitHub, Yannick Tivisse, Pierre Masereel, Arnold Moyaux |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/warehouse |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:50:47 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - decimal_precision - base_setup - web_kanban - web - bus - web_tour - report - procurement - barcodes - web_planner - account - analytic |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
WMS Accounting module
======================
This module makes the link between the 'stock' and 'account' modules and allows you to create accounting entries to value your stock movements
Key Features
------------
* Stock Valuation (periodical or automatic)
* Invoice from Picking
Dashboard / Reports for Warehouse Management includes:
------------------------------------------------------
* Stock Inventory Value at given date (support dates in the past)
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_variant_easy_edit_view_inherit |
product.product.product.view.form.easy.inherit | product.product | data | Inherits product.product_variant_easy_edit_view |
view_category_property_form |
product.category.stock.property.form.inherit | product.category | group | Inherits account.view_category_property_form |
view_change_standard_price |
Change Standard Price | stock.change.standard.price | form | New |
view_inventory_form_inherit |
stock.inventory.form.inherit | stock.inventory | xpath | Inherits stock.view_inventory_form |
view_location_form_inherit |
stock.location.form.inherit | stock.location | xpath | Inherits stock.view_location_form |
view_picking_inherit_form2 |
stock.picking.form.inherit | stock.picking | field | Inherits stock.view_picking_form |
view_stock_config_settings_inherit |
stock.config.settings.inherit | stock.config.settings | xpath | Inherits stock.view_stock_config_settings |
view_stock_history_report_graph |
stock.history.value.graph | stock.history | graph | New |
view_stock_history_report_pivot |
stock.history.value.pivot | stock.history | pivot | New |
view_stock_history_report_search |
stock.history.report.search | stock.history | search | New |
view_stock_history_report_tree |
Stock Value At Date | stock.history | tree | New |
view_template_property_form |
product.template.stock.property.form.inherit | product.template | data | Inherits product.product_template_form_view |
view_wizard_valuation_history |
Inventory at Date | wizard.valuation.history | form | New |
No new fields.
Public methods (2)generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company, property_list=None)
No new fields.
Public methods (1)invoice_line_move_line_get(self)
No new fields.
Public methods (1)get_invoice_line_account(self, type, product, fpos, company)
property_cost_method
Selection
company_dependent=True
copy=True
help='Standard Price: The cost price is manually updated at the end of a specific period (usually once a year).\nAverage Price: The cost price is recomputed at each incoming shipment and used for the product valuation.\nReal Price: The cost price displayed is the price of the last outgoing product (will be used in case of inventory loss for example).'
required=True
string='Costing Method'
args: [('standard', 'Standard Price'), ('average', 'Average Price'), ('real', 'Real Price')]
property_stock_account_input_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When doing real-time inventory valuation, counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account set on the source location. This is the default value for all products in this category. It can also directly be set on each product'
oldname='property_stock_account_input_categ'
args: 'account.account', 'Stock Input Account'
property_stock_account_output_categ_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When doing real-time inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account, unless there is a specific valuation account set on the destination location. This is the default value for all products in this category. It can also directly be set on each product'
oldname='property_stock_account_output_categ'
args: 'account.account', 'Stock Output Account'
property_stock_journal
Many2one → account.journal
company_dependent=True
help='When doing real-time inventory valuation, this is the Accounting Journal in which entries will be automatically posted when stock moves are processed.'
args: 'account.journal', 'Stock Journal'
property_stock_valuation_account_id
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When real-time inventory valuation is enabled on a product, this account will hold the current value of the products.'
args: 'account.account', 'Stock Valuation Account'
property_valuation
Selection
company_dependent=True
copy=True
help="If perpetual valuation is enabled for a product, the system will automatically create journal entries corresponding to stock moves, with product price as specified by the 'Costing Method'. The inventory variation account set on the product category will represent the current inventory value, and the stock input and stock output account will hold the counterpart moves for incoming and outgoing products."
required=True
string='Inventory Valuation'
args: [('manual_periodic', 'Periodic (manual)'), ('real_time', 'Perpetual (automated)')]
No public methods.
No new fields.
Public methods (2)do_change_standard_price(self, new_price, account_id)
onchange_type_valuation(self)
cost_method
Char
compute='_compute_cost_method'
inverse='_set_cost_method'
property_cost_method
Selection
company_dependent=True
copy=True
help='Standard Price: The cost price is manually updated at the end of a specific period (usually once a year).\n Average Price: The cost price is recomputed at each incoming shipment and used for the product valuation.\n Real Price: The cost price displayed is the price of the last outgoing product (will be use in case of inventory loss for example).'
string='Costing Method'
args: [('standard', 'Standard Price'), ('average', 'Average Price'), ('real', 'Real Price')]
property_stock_account_input
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When doing real-time inventory valuation, counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account set on the source location. When not set on the product, the one from the product category is used.'
args: 'account.account', 'Stock Input Account'
property_stock_account_output
Many2one → account.account
company_dependent=True
domain=[('deprecated', '=', False)]
help='When doing real-time inventory valuation, counterpart journal items for all outgoing stock moves will be posted in this account, unless there is a specific valuation account set on the destination location. When not set on the product, the one from the product category is used.'
args: 'account.account', 'Stock Output Account'
property_valuation
Selection
company_dependent=True
copy=True
default='manual_periodic'
help="If perpetual valuation is enabled for a product, the system will automatically create journal entries corresponding to stock moves, with product price as specified by the 'Costing Method'The inventory variation account set on the product category will represent the current inventory value, and the stock input and stock output account will hold the counterpart moves for incoming and outgoing products."
string='Inventory Valuation'
args: [('manual_periodic', 'Periodic (manual)'), ('real_time', 'Perpetual (automated)')]
valuation
Char
compute='_compute_valuation_type'
inverse='_set_valuation_type'
get_product_accounts(self, fiscal_pos=None)
onchange_type_valuation(self)
counterpart_account_id
Many2one → account.account
domain=[('deprecated', '=', False)]
required=True
string='Counter-Part Account'
args: 'account.account'
new_price
Float
digits=dp.get_precision('Product Price')
help='If cost price is increased, stock variation account will be debited and stock output account will be credited with the value = (difference of amount * quantity available).\nIf cost price is decreased, stock variation account will be creadited and stock input account will be debited.'
required=True
args: 'Price'
change_price(self)
default_get(self, fields)
group_stock_inventory_valuation
Selection
help='Allows to configure inventory valuations on products and product categories.'
implied_group='stock_account.group_inventory_valuation'
args: [(0, 'Periodic inventory valuation (recommended)'), (1, 'Perpetual inventory valuation (stock move generates accounting entries)')], 'Inventory Valuation'
module_stock_landed_costs
Selection
help='Install the module that allows to affect landed costs on pickings, and split them onto the different products.'
args: [(0, 'No landed costs'), (1, 'Include landed costs in product costing computation')], 'Landed Costs'
onchange_landed_costs(self)
company_id
Many2one → res.company
date
Datetime
inventory_value
Float
compute='_compute_inventory_value'
readonly=True
args: 'Inventory Value'
location_id
Many2one → stock.location
required=True
args: 'stock.location', 'Location'
move_id
Many2one → stock.move
required=True
args: 'stock.move', 'Stock Move'
price_unit_on_quant
Float
product_categ_id
Many2one → product.category
required=True
args: 'product.category', 'Product Category'
product_id
Many2one → product.product
required=True
args: 'product.product', 'Product'
product_template_id
Many2one → product.template
required=True
args: 'product.template', 'Product Template'
quantity
Float
serial_number
Char
required=True
args: 'Lot/Serial Number'
source
Char
init(self)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
accounting_date
Date
help='Choose the accounting date at which you want to value the stock moves created by the inventory instead of the default one (the inventory end date)'
args: 'Force Accounting Date'
post_inventory(self)
valuation_in_account_id
Many2one → account.account
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved from an internal location into this location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Incoming)'
valuation_out_account_id
Many2one → account.account
domain=[('internal_type', '=', 'other'), ('deprecated', '=', False)]
help='Used for real-time inventory valuation. When set on a virtual location (non internal type), this account will be used to hold the value of products being moved out of this location and into an internal location, instead of the generic Stock Output Account set on the product. This has no effect for internal locations.'
args: 'account.account', 'Stock Valuation Account (Outgoing)'
No public methods.
No new fields.
Public methods (3)action_done(self)
product_price_update_after_done(self)
product_price_update_before_done(self)
No new fields.
Public methods (0)No public methods.
choose_date
Boolean
date
Datetime
default=fields.Datetime.now
required=True
args: 'Date'
open_table(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/9.0/stock_account |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Hidden |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Josse Colpaert, Denis Ledoux, Christophe Simonis, Goffin Simon, Cedric Snauwaert, Nicolas Martinelli, Nicolas Lempereur, Richard Mathot, qdp-odoo, Géry Debongnie, Aaron Bohy, pvy, Yannick Tivisse, qsm-odoo, Cédric Snauwaert, Martin Geubelle |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/warehouse |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:48:30 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - decimal_precision - base_setup - web_kanban - web - bus - report - procurement - barcodes - web_planner - account - analytic - web_tip |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
WMS Accounting module
======================
This module makes the link between the 'stock' and 'account' modules and allows you to create accounting entries to value your stock movements
Key Features
------------
* Stock Valuation (periodical or automatic)
* Invoice from Picking
Dashboard / Reports for Warehouse Management includes:
------------------------------------------------------
* Stock Inventory Value at given date (support dates in the past)
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_variant_easy_edit_view_inherit |
product.product.product.view.form.easy.inherit | product.product | data | Inherits product.product_variant_easy_edit_view |
view_category_property_form |
product.category.stock.property.form.inherit | product.category | group | Inherits account.view_category_property_form |
view_change_standard_price |
Change Standard Price | stock.change.standard.price | form | New |
view_inventory_form_inherit |
stock.inventory.form.inherit | stock.inventory | xpath | Inherits stock.view_inventory_form |
view_location_form_inherit |
stock.location.form.inherit | stock.location | xpath | Inherits stock.view_location_form |
view_picking_inherit_form2 |
stock.picking.form.inherit | stock.picking | field | Inherits stock.view_picking_form |
view_stock_config_settings_inherit |
stock.config.settings.inherit | stock.config.settings | xpath | Inherits stock.view_stock_config_settings |
view_stock_history_report_graph |
stock.history.value.graph | stock.history | graph | New |
view_stock_history_report_pivot |
stock.history.value.pivot | stock.history | pivot | New |
view_stock_history_report_search |
stock.history.report.search | stock.history | search | New |
view_stock_history_report_tree |
Stock Value At Date | stock.history | tree | New |
view_template_property_form |
product.template.stock.property.form.inherit | product.template | data | Inherits product.product_template_form_view |
view_wizard_valuation_history |
Inventory at Date | wizard.valuation.history | form | New |
No new fields.
Public methods (2)generate_journals(self, acc_template_ref, company, journals_dict=None)
generate_properties(self, acc_template_ref, company, property_list=None)
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/8.0/stock_account |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Hidden |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Vo Minh Thu, Josse Colpaert, Quentin (OpenERP), Denis Ledoux, Fabien Meghazi, David Monjoie, Goffin Simon, Cedric Snauwaert, Nicolas Martinelli, qdp-odoo, Géry Debongnie, Aaron Bohy, ged-odoo, Pooja Zankhariya (OpenERP) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/warehouse |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:45:39 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - stock - product - base - decimal_precision - base_setup - web_kanban - web - report - procurement - board - web_kanban_gauge - web_kanban_sparkline - account - analytic - edi - email_template |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
WMS Accounting module
======================
This module makes the link between the 'stock' and 'account' modules and allows you to create accounting entries to value your stock movements
Key Features
------------
* Stock Valuation (periodical or automatic)
* Invoice from Picking
Dashboard / Reports for Warehouse Management includes:
------------------------------------------------------
* Stock Inventory Value at given date (support dates in the past)
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_category_property_form |
product.category.stock.property.form.inherit | product.category | data | Inherits account.view_category_property_form |
view_change_standard_price |
Change Standard Price | stock.change.standard.price | form | New |
view_inventory_form_inherit |
stock.inventory.form.inherit | stock.inventory | xpath | Inherits stock.view_inventory_form |
view_location_form_inherit |
stock.location.form.inherit | stock.location | xpath | Inherits stock.view_location_form |
view_move_form_inherit |
stock.move.form.inherit | stock.move | xpath | Inherits stock.view_move_form |
view_move_picking_from_stockaccount_inherit |
stock.move.form.invoice_state | stock.move | xpath | Inherits stock.view_move_picking_form |
view_picking_inherit_form2 |
stock.picking.form.inherit | stock.picking | xpath | Inherits stock.view_picking_form |
view_picking_inherit_tree2 |
stock.picking.tree.inherit | stock.picking | xpath | Inherits stock.vpicktree |
view_procurement_rule_form_stockaccount_inherit |
stock.procurement.rule.inherit.form | procurement.rule | xpath | Inherits stock.view_procurement_rule_form_stock_inherit |
view_pusht_rule_form_stockaccount_inherit |
stock.location.path.inherit.form | stock.location.path | xpath | Inherits stock.stock_location_path_form |
view_stock_config_settings_inherit |
stock.config.settings.inherit | stock.config.settings | xpath | Inherits stock.view_stock_config_settings |
view_stock_history_report_graph |
stock.history.value.graph | stock.history | graph | New |
view_stock_history_report_search |
stock.history.report.search | stock.history | search | New |
view_stock_history_report_tree |
Stock Value At Date | stock.history | tree | New |
view_stock_invoice_onshipping |
Stock Invoice Onshipping | stock.invoice.onshipping | form | New |
view_stock_return_picking_form_inherit |
Return lines | stock.return.picking | field | Inherits stock.view_stock_return_picking_form |
view_template_property_form |
product.template.stock.property.form.inherit | product.template | field | Inherits product.product_template_form_view |
view_wizard_valuation_history |
Stock Valuation | wizard.valuation.history | form | New |
No models found for this module.