Skip to content
Health
60/100
fair
  • Security25/25
    No findings
  • Activity25/25
    Last human commit 1 month ago
  • Required by5/25
    0 modules depend on it
  • Maturity5/25
    In 1 Odoo series since 18.0

Heuristic over the facts below, not an audit · How it's computed

Security findings
Grave / minor (static analysis)
Required by
0
Modules depending on it
External deps
0 pip · 0 bin
Python packages / system binaries
License
AGPL-3
No conflicts with its dependencies
Folder size
0.16 MB
Module directory on disk
Code analysis 0 migration notes 1 model 0 views 0 HTTP endpoints

Description

Perform inventory adjustments and stock counts directly from the Barcode scanner app.

The operator picks an internal location, scans the products found there (with barcode_gs1 installed, a GS1 label also brings its lot/serial and quantity), types the counted quantity, and applies. Each adjustment is recorded as a stock_inventory adjustment group — draft → in progress → done — so every barcode count leaves a traceable, auditable record with its own move lines, using Odoo's native on-hand adjustment mechanism (stock.quant).

This is a feature module on top of barcode_scanner: it registers its own screens, scan handling and home-screen tile into the scanner core without patching it, so you install only what you need.

Dependencies

Odoo dependencies
OCA/barcode-interface:
OCA/stock-logistics-warehouse:
odoo/odoo:
- web
- bus
- uom
Python dependencies
None
System dependencies
None
Required by
None

Code analysis

Extracted from the source by best-effort static analysis (no code is executed); details may be incomplete.

Views touched 0

No views found for this module.

HTTP endpoints 0

No HTTP endpoints found for this module.

Models touched 1

New fields (0)

No new fields.

Public methods (3)
  • action_barcode_apply_count(self, location_id, lines, force=False)
    @api.model
    Apply the operator's count as an inventory adjustment of one location. Builds a ``stock.inventory`` adjustment (OCA ``stock_inventory``) of exactly the counted products at that location, sets the counted quantity on each one's stock -- creating it when the location had none -- and applies it through Odoo's own ``action_apply_inventory``. The adjustment is then closed, so every count from the scanner leaves one adjustment record with its own moves. Should the stock of a counted product have changed since the screen showed it, nothing is applied: the changes come back for the operator to decide, and ``force`` applies the count all the same -- the choice the back office offers for outdated counts. Applying inventory quantities is restricted by Odoo to inventory administrators (``stock.group_stock_manager``).
  • action_barcode_location_lines(self, location_id)
    @api.model
    Return the stock a location holds as count lines, one per product and lot, so the scanner can show it before the operator counts. This is a plain read: no inventory adjustment is created yet. It is only built when the operator applies the count (``action_barcode_apply_count``), so backing out of the screen leaves no adjustment in progress.
  • action_barcode_lot_names(self, location_id, product_id, search='', limit=50)
    @api.model
    The names the lot field of a count line suggests: the lots ``_barcode_resolve_lot`` would find for a count at that location, so that no suggestion turns into a new lot once applied. They are looked up as the operator types (``search``), a few at a time: a product may have thousands of lots.