Exhaustive Stock Inventories

stock_inventory_location
REPOSITORY
REPOSITORYOCA/stock-logistics-warehouse
GIT
GIThttps://github.com/OCA/stock-logistics-warehouse.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-warehouse/tree/7.0/stock_inventory_location
VERSION
VERSION 1.1
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Numérigraphe
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Numérigraphe
COMMITTERS
COMMITTERSAlexandre Fayolle, Lionel Sausin (Numérigraphe)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - stock
    - product
    - base
    - process
    - web
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - account
    - analytic
    - board
    - edi
    - email_template
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Let users make exhaustive Inventories
=====================================

Standard Physical Inventories in OpenERP only contain a generic list of
products by locations, which is well suited to partial Inventories and simple
warehouses. When the a standard Inventory is confirmed, only the products in
the inventory are checked. If a Product is present in the computed stock and
not in the recorded Inventory, OpenERP will consider that it remains unchanged.

But for exhaustive inventories in complex warehouses, it is not practical:
 - you want to avoid Stock Moves to/from these Locations while counting goods
 - you must make sure all the locations you want have been counted
 - you must make sure no other location has been counted by mistake
 - you want the computed stock to perfectly match the inventory when you
   confirm it.

This module lets choose whether an Physical Inventory is exhaustive or
standard.
For an exhaustive Inventory:
 - in the state "Draft" you define the Location where goods must be counted.
 - the new Inventory status "Open" lets you indicate that the list of Locations
   is final and you are now counting the goods.
   In that status, no Stock Moves can be recorded in/out of the Inventory's
   Locations.
 - if the Location or some of it's children have not been entered in the
   Inventory Lines, OpenERP warns you when you confirm the Inventory.
 - only the Inventory's Location or its children can be entered in the
   Inventory Lines.
 - every good that is not in the Inventory Lines is considered lost, and gets
   moved out of the stock when you confirm the Inventory.

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
stock_inventory_location_form_view stock.inventory.location.form stock.inventory xpath Inherits stock.view_inventory_form
view_confirm_uninventoried_location stock.inventory.uninventoried.locations.form stock.inventory.uninventoried.locations form New
view_inventory_complete_filter complete.inventory.filter stock.inventory xpath Inherits stock.view_inventory_filter
view_stock_fill_inventory_location Import Inventory stock.fill.inventory xpath Inherits stock.view_stock_fill_inventory
Models touched (5)

New fields (0)

No new fields.

Public methods (1)
  • default_get(self, cr, uid, fields, context=None)
    Get 'location_id' and 'exhaustive' from the inventory

New fields (0)

No new fields.

Public methods (4)
  • action_done(self, cr, uid, ids, context=None)
    Don't allow to make an inventory with a date in the future. This makes sure no stock moves will be introduced between the moment you finish the inventory and the date of the Stock Moves. Backported from trunk-wms: revid:qdp-launchpad@openerp.com-20140317090656-o7lo22tzm8yuv3r8 @raise osv.except_osv: We raise this exception on purpose instead of ExhaustiveInventoryException to ensure forward-compatibility with v8.
  • action_open(self, cr, uid, ids, context=None)
    Change the state of the inventory to 'open'
  • confirm_missing_locations(self, cr, uid, ids, context=None)
    Open wizard to confirm empty locations on exhaustive inventories
  • get_missing_locations(self, cr, uid, ids, context=None)
    Compute the list of location_ids which are missing from the lines Here, "missing" means the location is the inventory's location or one of it's children, and the inventory does not contain any line with this location.

New fields (0)

No new fields.

Public methods (1)
  • onchange_location_id(self, cr, uid, ids, inventory_location_id, exhaustive, location_id, context=None)
    Warn if the new is not in the location list for this inventory.

New fields (0)

No new fields.

Public methods (3)
  • create(self, cr, uid, vals, context=None)
    Refuse create if an inventory is being conducted at the parent
  • unlink(self, cr, uid, ids, context=None)
    Refuse unlink if an inventory is being conducted
  • write(self, cr, uid, ids, vals, context=None)
    Refuse write if an inventory is being conducted

New fields (0)

No new fields.

Public methods (0)

No public methods.