TIP: You can type at any time to perform a new search.
WMS Accounting
stock_account · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.1
- Category
- Supply Chain/Inventory
- Folder size
- 3.62 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- Yes
- Website
- None
- Last tracking update
- 2026-08-21 10:10:58
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier Morel, Raphael Collet, Josse Colpaert, Odoo Translation Bot, Wolfgang Taferner, Laurent Smet, Arnold Moyaux, Julien Castiaux, Victor Feyens, Andrea Grazioso (agr-odoo), William Henrotin, svs-odoo, Rémy Voet (ryv), Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, william-andre, JF Aubert, David (dafr), PNO, Aurelien van Delft (avd), Mathieu Walravens, luvi, Roy Le, Richard deMeester, Louis Wicket (wil), Pedram (PEBR), Adrien Widart (awt), Victor Piryns (pivi), Djamel Touati, Pieter Claeys (clpi), clesgow, Dylan Kiss (dyki), Jinane Maksoud, Odoo, Arnaud Sibille, InCeyN, lase@odoo.com, Quentin Wolfs, Aurelien MARIE (auma), Ethan Vincent, reka-odoo, Julien Carion (juca), kcv-odoo, Louis Gobert, nihp-odoo, Hussein Ebrahim(hyhe), Stéphane Diez, Aungkokolin1997, dhha-odoo, Hammad Arif, Hesham Saleh, Saif (segn), EmilioPascual, Victor Miguel Armenta Carrillo, Christopher Maloney (cmal), David Van Droogenbroeck (DROD), elhayyany, pkgu-odoo, Mohammad Abdulmoneim (abdu), djameltouati, khsr-odoo, jeep-odoo, MaximeNoirhomme, chha-odoo, bona-odoo, plha-odoo, Krzysztof Magusiak (krma), Akash Pandey, krip-odoo, Hazem Ibrahim, Robin Engels (roen), sagu-odoo, kdes-odoo, Ester Andreetto, bhna-odoo, defl, Dirk Douglas, Ze Chen (zeche), agbr-odoo, Lulu Grimalkin (lugr), Yash Pathak, rare-odoo, sawer, igbe, Lancelot Semal, Tudor-Calin Panzaru (tupan), Martin Doyen, Jacob Was (jacw), assh-odoo, Robert Smith (rosm), Jeremy Lawson (jelaw), hossamelgendy1, Merlin Guillaume, srap-odoo, saurabh, Nguyen Nguyen (ngtpn), Léo Gizard (legi), Abdelouahab Laaroussi (abla), Zachary (zavan), Abo Taha, Lars Quaedvlieg, lase, hapt-odoo, Youssef, ddba-odoo, Kai (kache), Karim Gamaleldin, Chengyan Wang, niyp-odoo, pvag-odoo, Dhrumit Parmar, ismail eski, Robert Smith
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- l10n_ar_stock, l10n_gcc_invoice_stock_account, l10n_it_stock_ddt, mrp_account, point_of_sale, product_brand_stock_account, project_stock_account, purchase_stock, sale_stock, spreadsheet_dashboard_stock_account, stock_analytic, stock_landed_costs, stock_move_value_report, stock_picking_return_refund_option
- 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)
Code Analysis ⓘ
Views touched (22)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_product_stock_tree_inherit_stock_account |
product.product.stock.list.inherit.stock.account | product.product | list | Inherits stock.product_product_stock_tree |
product_product_view_list_at_date |
product.product.list.inherit.stock.account.at.date | product.product | list | Inherits stock.view_stock_product_tree |
product_template_tree_view |
product.template.list.inherit.stock.account | product.template | list | 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 | form | 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 | form | Inherits stock.stock_inventory_adjustment_name_form_view |
stock_move_view_list |
stock.move.view.list.inherit.stock.account | stock.move | list | 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 | form | Inherits account.view_account_form |
view_category_property_form |
product.category.stock.property.form.inherit | product.category | form | Inherits account.view_category_property_form |
view_category_property_form_stock |
product.category.stock.property.form.inherit.stock | product.category | form | Inherits stock.product_category_form_view_inherit |
view_location_form_inherit |
stock.location.form.inherit | stock.location | form | Inherits stock.view_location_form |
view_move_search |
stock.move.search.inherit.stock.account | stock.move | search | Inherits stock.view_move_search |
view_picking_form |
stock.account.view.picking.form | stock.picking | form | Inherits stock.view_picking_form |
view_production_lot_form_stock_account |
view.production.lot.form.stock.account | stock.lot | form | Inherits stock.view_production_lot_form |
view_stock_quant_tree_editable_inherit |
stock.quant.list.editable.inherit | stock.quant | list | Inherits stock.view_stock_quant_tree_editable |
view_stock_quant_tree_inherit |
stock.quant.list.inherit | stock.quant | list | 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 | list | 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 | form | Inherits stock.view_stock_return_picking_form |
view_template_property_form_stock_account |
view.template.property.form.stock.account | product.template | form | Inherits stock.view_template_property_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (24)
New fields (2)
-
account_stock_expense_idMany2one → account.accounthelp='Counterpart used at closing for accounting adjustments to inventory valuation.'string='Expense Account' args: 'account.account' -
account_stock_variation_idMany2one → account.accounthelp='At closing, register the inventory variation of the period into a specific account'string='Variation Account' args: 'account.account'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (1)
-
stock_move_idsOne2many → stock.movestring='Stock Move' args: 'stock.move', 'account_move_id'
-
button_cancel(self) -
button_draft(self) -
copy_data(self, default=None)
New fields (1)
-
cogs_origin_idMany2one → account.move.linecomodel_name='account.move.line'copy=Falseindex='btree_not_null'
No public methods.
New fields (7)
-
account_stock_variation_idMany2one → account.accountreadonly=Falserelated='property_stock_valuation_account_id.account_stock_variation_id'string='Stock Variation Account' args: 'account.account' -
anglo_saxon_accountingBooleancompute='_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_methodSelectioncompany_dependent=Truecopy=Truedefault=<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_idMany2one → account.accountcheck_company=Truecompany_dependent=Truehelp='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_journalMany2one → account.journalcompany_dependent=Truehelp='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_idMany2one → account.accountcheck_company=Truecompany_dependent=Truehelp='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_valuationSelectioncompany_dependent=Truecopy=Truehelp='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)
New fields (3)
-
avg_costMonetarycompute='_compute_value'compute_sudo=Truecurrency_field='company_currency_id'string='Average Cost' -
company_currency_idMany2one → res.currencycompute='_compute_value'compute_sudo=Truehelp="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_valueMonetarycompute='_compute_value'compute_sudo=Truecurrency_field='company_currency_id'string='Total Value'
-
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (4)
-
cost_methodSelectioncompute='_compute_cost_method'selection=[('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]string='Cost Method' -
lot_valuatedBooleancompute='_compute_lot_valuated'help='If checked, the valuation will be specific by Lot/Serial number.'readonly=Falsestore=Truestring='Valuation by Lot/Serial' -
property_price_difference_account_idMany2one → account.accountcheck_company=Truecompany_dependent=Truehelp='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' -
valuationSelectioncompute='_compute_valuation'search='_search_valuation'selection=[('periodic', 'Periodic (at closing)'), ('real_time', 'Perpetual (at invoicing)')]string='Valuation'
-
get_product_accounts(self, fiscal_pos=None)Add the stock journal related to product to the result of super() @return: dictionary which contains all needed information regarding stock accounts and journal and super (income+expense accounts) -
write(self, vals)
New fields (13)
-
company_idMany2one → res.companycompute='_compute_company_id'precompute=Truereadonly=Falserequired=Truestore=Truestring='Company' args: 'res.company' -
computed_value_descriptionTextcompute='_compute_value_description'string='Computed Value Description' -
currency_idMany2one → res.currencyrelated='company_id.currency_id'string='Currency' args: 'res.currency' -
current_valueMonetarycurrency_field='currency_id'related='move_id.value'string='Current Value' -
current_value_descriptionTextcompute='_compute_value_description'string='Current Value Description' -
current_value_detailsCharcompute='_compute_current_value_details'string='Current Value Details' -
dateDatetimedefault=fields.Datetime.nowrequired=Truestring='Date' -
descriptionCharstring='Description' -
lot_idMany2one → stock.lotstring='Lot' args: 'stock.lot' -
move_idMany2one → stock.moveindex='btree_not_null'string='Move' args: 'stock.move' -
product_idMany2one → product.productindex=Truestring='Product' args: 'product.product' -
user_idMany2one → res.usersdefault=<expr>required=Truestring='User' args: 'res.users' -
valueMonetarycurrency_field='currency_id'required=Truestring='Value'
-
create(self, vals_list)@api.model_create_multi
New fields (7)
-
account_production_wip_account_idMany2one → account.accountcheck_company=Truestring='Production WIP Account' args: 'account.account' -
account_production_wip_overhead_account_idMany2one → account.accountcheck_company=Truestring='Production WIP Overhead Account' args: 'account.account' -
account_stock_journal_idMany2one → account.journalcheck_company=Truestring='Stock Journal' args: 'account.journal' -
account_stock_valuation_idMany2one → account.accountcheck_company=Truestring='Stock Valuation Account' args: 'account.account' -
cost_methodSelectiondefault='standard'required=Trueselection=[('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]string='Cost Method' -
inventory_periodSelectiondefault='manual'required=Trueselection=[('manual', 'Manual'), ('daily', 'Daily'), ('monthly', 'Monthly')]string='Inventory Period' -
inventory_valuationSelectiondefault='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)
New fields (2)
-
group_lot_on_invoiceBooleanimplied_group='stock_account.group_lot_on_invoice' args: 'Display Lots & Serial Numbers on Invoices' -
module_stock_landed_costsBooleanhelp='Affect landed costs on reception operations and split them among products to update their cost price.' args: 'Landed Costs'
No public methods.
New fields (15)
-
added_valueFloatcompute='_compute_cumulative_fields'string='Added Value' -
avco_valueFloatcompute='_compute_cumulative_fields'string='AVCO Value' -
company_idMany2one → res.companyrequired=Truestring='Company' args: 'res.company' -
currency_idMany2one → res.currencyrelated='company_id.currency_id'string='Currency' args: 'res.currency' -
dateDaterequired=Truestring='Date' -
descriptionTextrequired=Truestring='Description' -
justificationTextcompute='_compute_justification'string='Justification' -
product_idMany2one → product.productrequired=Truestring='Product' args: 'product.product' -
quantityFloatrequired=Truestring='Added Quantity' -
referenceCharrequired=Truestring='Reference' -
res_model_nameSelectionrequired=Truestring='Resource Model Name' args: [('stock.move', 'Stock Move'), ('product.value', 'Product Value')] -
total_quantityFloatcompute='_compute_cumulative_fields'string='Total Quantity' -
total_valueFloatcompute='_compute_cumulative_fields'string='Total Value' -
user_idMany2one → res.usersrequired=Truestring='User' args: 'res.users' -
valueFloatrequired=Truestring='Value'
-
init(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
accounting_dateDatehelp='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_dateBooleancompute='_compute_should_show_accounting_date'
No public methods.
New fields (3)
-
is_valued_externalBooleancompute='_compute_is_valued' args: 'Is valued outside the company' -
is_valued_internalBooleancompute='_compute_is_valued'search='_search_is_valued' args: 'Is valued inside the company' -
valuation_account_idMany2one → account.accountdomain=[('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.
New fields (5)
-
avg_costMonetarycompute='_compute_value'compute_sudo=Truecurrency_field='company_currency_id'readonly=Truestore=Falsestring='Average Cost' -
company_currency_idMany2one → res.currencycompute='_compute_value'compute_sudo=True args: 'res.currency', 'Valuation Currency' -
lot_valuatedBooleanreadonly=Truerelated='product_id.lot_valuated'store=False -
standard_priceFloatcompany_dependent=Truegroups='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_valueMonetarycompute='_compute_value'compute_sudo=Truecurrency_field='company_currency_id'string='Total Value'
-
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (16)
-
account_move_idMany2one → account.movecopy=Falseindex='btree_not_null' args: 'account.move', 'stock_move_id' -
analytic_account_line_idsMany2many → account.analytic.linecopy=False args: 'account.analytic.line' -
company_currency_idMany2one → res.currencyreadonly=Truerelated='company_id.currency_id'string='Company Currency' args: 'res.currency' -
is_dropshipBooleancompute='_compute_is_dropship'store=Truestring='Is Dropship' -
is_inBooleancompute='_compute_is_in'store=Truestring='Is Incoming (valued)' -
is_outBooleancompute='_compute_is_out'store=Truestring='Is Outgoing (valued)' -
is_valuedBooleancompute='_compute_is_valued'string='Is Valued' -
price_unitFloatargs: 'Price Unit' -
remaining_qtyFloatcompute='_compute_remaining_qty'search='search_remaining_qty'string='Remaining Quantity' -
remaining_valueMonetarycompute='_compute_remaining_value'currency_field='company_currency_id'string='Remaining Value' -
standard_priceFloatcompute='_compute_standard_price'string='Standard Price' -
to_refundBooleancopy=Truedefault=Truehelp='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order' args: 'Update quantities on SO/PO' -
valueMonetarycopy=Falsecurrency_field='company_currency_id'help="The current value of the move. It's zero if the move is not valued." args: 'Value' -
value_computed_justificationTextcompute='_compute_value_justification' args: 'Computed Value Description' -
value_justificationTextcompute='_compute_value_justification' args: 'Value Description' -
value_manualMonetarycompute='_compute_value_manual'currency_field='company_currency_id'inverse='_inverse_value_manual' args: 'Manual Value'
-
action_adjust_valuation(self) -
create(self, vals_list)@api.model_create_multi -
search_remaining_qty(self, operator, value)
New fields (0)
No new fields.
Public methods (3)-
create(self, vals_list)@api.model_create_multi -
unlink(self) -
write(self, vals)
New fields (1)
-
country_codeCharrelated='company_id.account_fiscal_country_id.code'
No public methods.
New fields (1)
-
country_codeCharrelated='company_id.account_fiscal_country_id.code'
No public methods.
New fields (4)
-
accounting_dateDatehelp='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_methodSelectioncompute='_compute_cost_method'selection=[('standard', 'Standard Price'), ('fifo', 'First In First Out (FIFO)'), ('average', 'Average Cost (AVCO)')]string='Cost Method' -
currency_idMany2one → res.currencygroups='stock.group_stock_manager'related='company_id.currency_id' args: 'res.currency' -
valueMonetarycompute='_compute_value'groups='stock.group_stock_manager' args: 'Value'
No public methods.
New fields (1)
-
to_refundBooleandefault=Truehelp='Trigger a decrease of the delivered/received quantity in the associated Sale Order/Purchase Order'string='Update quantities on SO/PO'
No public methods.
New fields (0)
No new fields.
Public methods (3)-
action_print_as_pdf(self) -
action_print_as_xlsx(self) -
get_report_values(self, date=False)@api.model
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…