Repository
OCA/stock-logistics-interfaces · module folder · Try on Runboat
Module version
1.0.0
Category
Warehouse
Folder size
0.07 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/stock-logistics-interfaces
Last tracking update
2026-08-07 08:43:07
Authors
Camptocamp, Odoo Community Association (OCA)
Maintainers
Camptocamp, Odoo Community Association (OCA)
Committers
SilvioC2C, Weblate, OCA-git-bot, oca-ci, Mmequignon
Odoo dependencies
Python dependencies
cachetools, openupgradelib
System dependencies
None
Required by
shopfloor_reception_measuring_device, stock_measuring_device_zippcube
Description
Different manufacturers produce devices which are able to measure and
weigh packages and parcels. Each brand has a different communication
protocol. This module provides an framework to interface such devices
with Odoo.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_measuring_device_form measuring.device.form measuring.device form New
view_measuring_device_tree measuring.device.list measuring.device list New
view_measuring_wizard measuring.wizard.form measuring.wizard form New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (5)

New fields (4)
  • device_type Selection
    help='The type of device (e.g. zippcube, cubiscan...) depending on which module are installed.' selection=[]
  • name Char
    required=True
  • state Selection
    copy=False default='not_ready' readonly=True args: [('not_ready', 'Not Ready'), ('ready', 'Ready')]
  • warehouse_id Many2one → stock.warehouse
    required=True args: 'stock.warehouse'
Public methods (2)
  • open_wizard(self)
  • test_device(self)

New fields (3)
  • device_id Many2one → measuring.device
    readonly=True args: 'measuring.device'
  • line_ids One2many → measuring.wizard.line
    args: 'measuring.wizard.line', 'wizard_id'
  • product_id Many2one → product.product
    domain=[('type', '=', 'consu'), ('is_storable', '=', True)] args: 'product.product'
Public methods (7)
  • action_close(self)
  • action_reopen_fullscreen(self)
  • action_save(self)
  • on_barcode_scanned(self, barcode)
  • onchange_product_id(self)
    @api.onchange('product_id')
  • reload(self)
  • retrieve_product(self)
    Assigns product that locks the device if a scan is already requested.

New fields (15)
  • barcode Char
    args: 'GTIN'
  • height Integer
    readonly=True args: 'Height (mm)'
  • is_measured Boolean
  • is_unit_line Boolean
    readonly=True
  • name Char
    readonly=True args: 'Packaging'
  • packaging_id Many2one → product.packaging
    readonly=True string='Packaging (rel)' args: 'product.packaging'
  • packaging_length Integer
    readonly=True args: 'Length (mm)'
  • packaging_level_id Many2one → product.packaging.level
    readonly=True args: 'product.packaging.level'
  • qty Float
    args: 'Quantity'
  • scan_requested Boolean
  • sequence Integer
  • volume Float
    compute='_compute_volume' digits=(8, 4) readonly=True store=False args: 'Volume (m³)'
  • weight Float
    readonly=True args: 'Weight (kg)'
  • width Integer
    readonly=True args: 'Width (mm)'
  • wizard_id Many2one → measuring.wizard
    args: 'measuring.wizard'
Public methods (2)
  • measuring_select_for_measure(self)
    Current line has been selected for measurement This implies that the device is acquired and locked, and the packaging is assigned the device.
  • measuring_select_for_measure_cancel(self)
    Current line has been de-selected for measurement This implies that the packaging clears is assigned device.

New fields (1)
  • measuring_device_id Many2one → measuring.device
    copy=False help='Technical field set when an operator uses the device to scan this package' index=True string='Measuring device which will scan the package' args: 'measuring.device'
Public methods (0)

No public methods.

New fields (1)
  • measuring_device_ids One2many → measuring.device
    args: 'measuring.device', 'warehouse_id'
Public methods (0)

No public methods.

Loading…

Loading…