Skip to content
Health
75/100
good
  • Security25/25
    No findings
  • Activity25/25
    Human commit this month
  • Required by20/25
    3 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
3
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.65 MB
Module directory on disk
Code analysis 1 migration note 6 models 1 view 0 HTTP endpoints

Description

This module is the warehouse application of the Barcode suite. It builds on the barcode_scanner base framework and registers the stock operation screens, scan handlers and menu tiles into it.

It covers the following operations:

  • Receipts (incoming shipments)
  • Deliveries (outgoing shipments)
  • Internal transfers
  • Quick product and location information

Only EAN13 barcodes are supported. Real-time validation and audio/vibration feedback are provided on each scan.

Dependencies

Odoo dependencies
OCA/barcode-interface:
OCA/stock-logistics-workflow:
odoo/odoo:
- web
- bus
- uom
Python dependencies
None
System dependencies
None
Required by
barcode_gs1_stock, barcode_stock_partner_delivery_zone, barcode_stock_quality

Code analysis

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

Views touched 1

XML IDNameModelTypeStatus
view_location_form_inherit stock.location.form.inherit stock.location form Inherits stock.view_location_form

HTTP endpoints 0

No HTTP endpoints found for this module.

Models touched 6

New fields (0)

No new fields.

Public methods (1)
  • parse_barcode_scanner_barcode(self, barcode)
    @api.model

New fields (1)
  • barcode_default_filters Json
    default=dict
Public methods (2)
  • SELF_READABLE_FIELDS(self)
    @property
  • SELF_WRITEABLE_FIELDS(self)
    @property

New fields (3)
  • is_fully_picked Boolean
    compute='_compute_qty_progress' store=False string='Fully Picked'
  • qty_done_total Float
    compute='_compute_qty_progress' store=False string='Done'
  • qty_remaining Float
    compute='_compute_qty_progress' store=False string='Remaining Quantity'
Public methods (1)
  • barcode_pick_lot(self, lot_id, quantity, location_id=False, location_dest_id=False)
    Pick a lot the move's reservation does not carry, the way Odoo reserves stock rather than by rewriting another lot's line. As much of the other lots' reservation as the lot replaces is released first. The lot is then taken from its own quants under the move's source (or the one the operator chose), in the order of the removal strategy: stock nothing holds first, then stock other moves hold, whose reservation Odoo frees on validation. Each quant gives a line, with its shelf, package and owner, marked picked and sent to the destination the operator chose, if any. Picking more than the lot holds there is allowed, as Odoo allows it: what is over goes on the last line, and validating leaves a negative quant that shows the gap. With no stock at all, the lot is only picked from a source the operator chose.

New fields (1)
  • validated_on_date Datetime
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • action_barcode_scanner_check_availability(self, origin_location_id, destination_location_id, lines, responsible_id=False)
    @api.model
  • action_barcode_scanner_internal_transfer(self, origin_location_id, destination_location_id, responsible_id, lines)
    @api.model

New fields (0)

No new fields.

Public methods (3)
  • action_apply_inventory(self)
  • action_apply_inventory_from_scanner(self)
  • barcode_lot_location(self, product_id, lot_id, location_id)
    @api.model
    Where a lot would be picked from under a location, as Odoo's own reservation takes it: the first of its quants there in the order of the removal strategy (FIFO, LIFO, closest, FEFO...), one with stock not reserved yet if any; otherwise one with stock, whose reservation Odoo frees on validation. :return: the location as ``[id, display_name]``, or False when the lot has no stock there