TIP: You can type at any time to perform a new search.

Security findings

Repository
odoo/odoo · module folder
Module version
1.1
Category
Supply Chain/Inventory
Folder size
2.93 MB
License
LGPL-3
Application
No
Auto-installable
Yes
Website
None
Last tracking update
2026-10-05 00:19:46
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Raphael Collet, Thibault Delavallée, odoo, Odoo Translation Bot, Christophe Matthieu, Géry Debongnie, Arnold Moyaux, Xavier-Do, Victor Feyens, William Henrotin, svs-odoo, Tiffany Chang (tic), Gorash, Pierre Paridans, william-andre, JF Aubert, David (dafr), PNO, John Laterre (jol), Richard deMeester, Adrien Widart (awt), Victor Piryns (pivi), Gauthier Wala (gawa), Yosua Nicolaus, Dylan Kiss (dyki), Paweł Fertyk, Arnaud Sibille, InCeyN, lase@odoo.com, Quentin Wolfs, reka-odoo, Louis Gobert, Harsh Shah, Stéphane Diez, Aungkokolin1997, dhha-odoo, Hammad Arif, Hesham Saleh, Saif (segn), Victor Miguel Armenta Carrillo, Christopher Maloney (cmal), elhayyany, pkgu-odoo, Mohammad Abdulmoneim (abdu), djameltouati, Michaël Mattiello, MaximeNoirhomme, chha-odoo, bona-odoo, plha-odoo, Krzysztof Magusiak (krma), Akash Pandey, Robin Engels (roen), sagu-odoo, kdes-odoo, bhna-odoo, Dirk Douglas, Ze Chen (zeche), agbr-odoo, Lulu Grimalkin (lugr), Yash Pathak, sawer, Lancelot Semal, Tudor-Calin Panzaru (tupan), Julien Launois (jula), Martin Doyen, Jacob Was (jacw), malb, Saurabh, assh-odoo, Robert Smith (rosm), hossamelgendy1, Merlin Guillaume, Nguyen Nguyen (ngtpn), Léo Gizard (legi), Abdelouahab Laaroussi (abla), Zachary (zavan), Youssef (abyo), Abo Taha, ELCO, lase, Moamen(msho), Khaj-odoo, hapt-odoo, Youssef, Mathias Mathy, ddba-odoo, Kai (kache), Karim Gamaleldin, Chengyan Wang, niyp-odoo, Robert Smith, Jean Schoenlaub, pusu-odoo
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
l10n_ar_stock, l10n_gcc_invoice_stock_account, l10n_in_stock, l10n_it_stock_ddt, mrp_account, pos_stock, project_stock_account, purchase_stock, sale_stock, spreadsheet_dashboard_stock_account, stock_landed_costs
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 info_outline

Views touched (20)
XML IDNameModelTypeStatus
product_product_stock_tree_inherit_stock_account product.product.stock.list.inherit.stock.account product.product list Inherits stock.product_product_stock_tree
product_template_form_view_stock_account view.template.property.form.stock.account product.template form Inherits stock.product_template_form_view_stock
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
product_value_list_view product.value.list.view product.value list New
product_value_search_view product.value.search.view product.value search 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
stock_move_view_pivot stock.move.view.pivot.inherit.stock.account stock.move pivot Inherits stock.view_move_pivot
view_location_form_inherit stock.location.form.inherit stock.location form Inherits stock.view_location_form
view_move_form account.move.form account.move form Inherits account.view_move_form
view_move_search stock.move.search.inherit.stock.account stock.move search Inherits stock.view_move_search
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
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (22)

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 (3)
  • closing_datetime Datetime
    string='Closing Date'
  • product_value_id One2many → product.value
    args: 'product.value', 'account_move_id'
  • stock_move_ids One2many → stock.move
    string='Stock Move' args: 'stock.move', 'account_move_id'
Public methods (4)
  • action_show_product_value(self)
  • button_cancel(self)
  • button_draft(self)
  • copy_data(self, default=None)

New fields (2)
  • cogs_move_ids Many2many → stock.move
    compute='_compute_cogs_move_ids' help='Inventory moves used to compute COGS values.' string='COGS stock moves' args: 'stock.move'
  • stock_move_id Many2one → stock.move
    index='btree_not_null' args: 'stock.move'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • 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
    ondelete={'fifo': 'set default'} selection_add=[('fifo', 'First In First Out (FIFO)')]
Public methods (1)
  • write(self, vals)

New fields (3)
  • 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'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (2)
  • cost_method Selection
    selection_add=[('fifo', 'First In First Out (FIFO)')]
  • 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'
Public methods (1)
  • write(self, vals)

New fields (21)
  • account_move_id Many2one → account.move
    copy=False index='btree_not_null' string='Account Move' args: 'account.move'
  • adjustment Monetary
    compute='_compute_adjustment' currency_field='currency_id' string='Adjustment'
  • company_id Many2one → res.company
    compute='_compute_company_id' index=True 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'
  • new_cost Float
    min_display_digits='Product Price' args: 'New Unit Cost'
  • new_value Monetary
    currency_field='currency_id' default=0.0 string='New Value'
  • old_cost Float
    min_display_digits='Product Price' args: 'Old Unit Cost'
  • old_value Monetary
    currency_field='currency_id' default=0.0 string='Old Value'
  • product_id Many2one → product.product
    index=True ondelete='cascade' string='Product' args: 'product.product'
  • product_tracking Selection
    related='product_id.tracking'
  • quantity Float
    digits='Product Unit' args: 'Quantity'
  • user_id Many2one → res.users
    default=<expr> required=True string='User' args: 'res.users'
  • value Monetary
    currency_field='currency_id' required=True string='Value'
Public methods (2)
  • action_open_account_move(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (3)
  • 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'
  • cost_method Selection
    ondelete={'fifo': 'set default'} selection_add=[('fifo', 'First In First Out (FIFO)')]
Public methods (3)
  • get_inventory_value(self, at_date=None)
  • use_stock_account(self)
  • write(self, vals)

New fields (2)
  • 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'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (15)
  • 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'
Public methods (1)
  • init(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • 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'
Public methods (0)

No public methods.

New fields (2)
  • is_valued 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'
Public methods (0)

No public methods.

New fields (5)
  • avg_cost Monetary
    compute='_compute_value' compute_sudo=True currency_field='company_currency_id' readonly=True 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'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (21)
  • 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'
  • cogs_aml_ids Many2many → account.move.line
    compute='_compute_cogs_aml_ids' compute_sudo=True help='Account move lines using this move in order to compute their COGS' string='COGS lines' args: 'account.move.line'
  • company_currency_id Many2one → res.currency
    readonly=True related='company_id.currency_id' string='Company Currency' args: 'res.currency'
  • invoice_line_ids One2many → account.move.line
    index='btree_not_null' args: 'account.move.line', 'stock_move_id', 'Invoice Line'
  • 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'
  • order_partner_id Many2one → res.partner
    compute='_compute_order_partner_id' compute_sql='_compute_sql_order_partner_id' compute_sudo=True help="If the move originates from a document from another company, contains that company's partner, otherwise the move's partner." args: 'res.partner'
  • origin_company_id Many2one → res.company
    compute='_compute_origin_company_id' compute_sudo=True help='Only set if the move is generated from a document belonging to another company' search='_search_origin_company_id' string='Origin Company' args: 'res.company'
  • price_unit Float
    args: 'Price Unit'
  • product_value_ids One2many → product.value
    index='btree_not_null' args: 'product.value', 'move_id', 'Product Value'
  • 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'
Public methods (3)
  • action_adjust_valuation(self)
  • search_remaining_qty(self, operator, value)
  • write(self, vals)
    Editing the done date of a valued move (to the past or the future) shifts the on-hand context of every move in between, so the valuation has to be replayed from the earliest impacted date.

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_code Char
    related='company_id.account_fiscal_country_id.code'
Public methods (0)

No public methods.

New fields (1)
  • country_code Char
    related='company_id.account_fiscal_country_id.code'
Public methods (0)

No public methods.

New fields (4)
  • 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'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…