Repository
OCA/stock-logistics-warehouse · module folder · Try on Runboat
Module version
Category
Stock
Folder size
0.37 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/stock-logistics-warehouse
Last tracking update
2026-08-12 11:12:13
Authors
Camptocamp, Odoo Community Association (OCA)
Maintainers
Camptocamp, Odoo Community Association (OCA)
Committers
Florent Xicluna, Simone Orsi, Jacques-Etienne Baudoux, Sébastien Alix, Vincent Van Rossem, Weblate, OCA-git-bot, oca-ci, David Gallay, Khôi (Kiên Kim)
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
stock_vertical_lift_empty_tray_check, stock_vertical_lift_kardex, stock_vertical_lift_packaging_level, stock_vertical_lift_qty_by_packaging, stock_vertical_lift_server_env, stock_vertical_lift_storage_type
Description
Add configuration and dedicated screens to work with Vertical Lift
systems (such as Kardex Remstar, Modula, ...). Drivers for controlling
the lifts physically must be added by additional addons.

Code Analysis

Views touched (18)
XML IDNameModelTypeStatus
packagings packagings ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.vertical.lift res.config.settings form Inherits base.res_config_settings_view_form
vertical_lift_operation_base_button_view vertical.lift.operation.base.button.view vertical.lift.operation.base form New
vertical_lift_operation_base_screen_view vertical.lift.operation.base.screen.view vertical.lift.operation.base form New
vertical_lift_operation_inventory_button_view vertical.lift.operation.inventory.button.view vertical.lift.operation.inventory form Inherits vertical_lift_operation_base_button_view
vertical_lift_operation_inventory_screen_view vertical.lift.operation.inventory.screen.view vertical.lift.operation.inventory form Inherits vertical_lift_operation_base_screen_view
vertical_lift_operation_pick_button_view vertical.lift.operation.pick.button.view vertical.lift.operation.pick form Inherits vertical_lift_operation_base_button_view
vertical_lift_operation_pick_screen_view vertical.lift.operation.pick.screen.view vertical.lift.operation.pick form Inherits vertical_lift_operation_transfer_screen_view
vertical_lift_operation_put_button_view vertical.lift.operation.put.button.view vertical.lift.operation.put form Inherits vertical_lift_operation_base_button_view
vertical_lift_operation_put_screen_view vertical.lift.operation.put.screen.view vertical.lift.operation.put form Inherits vertical_lift_operation_transfer_screen_view
vertical_lift_operation_transfer_screen_view vertical.lift.operation.transfer.screen.view vertical.lift.operation.transfer form Inherits vertical_lift_operation_base_screen_view
vertical_lift_shuttle_form_menu vertical.lift.shuttle.view.form.menu vertical.lift.shuttle form New
vertical_lift_shuttle_view_form vertical.lift.shuttle.view.form vertical.lift.shuttle form New
vertical_lift_shuttle_view_kanban vertical.lift.shuttle.kanban vertical.lift.shuttle kanban New
vertical_lift_shuttle_view_tree vertical.lift.shuttle.list vertical.lift.shuttle list New
view_location_form stock.location.form.vertical.lift stock.location form Inherits stock_location_tray.view_location_form
view_location_search stock.location.search.vertical.lift stock.location search Inherits stock_location_tray.view_location_search
view_stock_move_line_operation_tree stock.move.line.operations.list.vertical.lift stock.move.line list Inherits stock_location_tray.view_stock_move_line_operation_tree
HTTP endpoints (1)
Route(s)HandlerAuthTypeMethodsFlags
/vertical-lift VerticalLiftController.vertical_lift public http ALL csrf off sudo
Models touched (12)

New fields (1)
  • vertical_lift_secret Char
    config_parameter='stock_vertical_lift.secret' string='Secret for Vertical Lift API'
Public methods (0)

No public methods.

New fields (4)
  • inverse_vertical_lift_shuttle_ids One2many → vertical.lift.shuttle
    comodel_name='vertical.lift.shuttle' inverse_name='location_id'
  • vertical_lift_kind Selection
    compute='_compute_vertical_lift_kind' recursive=True selection=[('view', 'View'), ('shuttle', 'Shuttle'), ('tray', 'Tray'), ('cell', 'Cell')] store=True
  • vertical_lift_location Boolean
    help='Check this box to use it as the view for Vertical Lift Shuttles.' args: 'Is a Vertical Lift View Location?'
  • vertical_lift_shuttle_id Many2one → vertical.lift.shuttle
    comodel_name='vertical.lift.shuttle' compute='_compute_vertical_lift_shuttle_id' recursive=True store=True
Public methods (3)
  • button_fetch_vertical_lift_tray(self)
  • button_release_vertical_lift_tray(self)
  • fetch_vertical_lift_tray(self, cell_location=None)
    Send instructions to the vertical lift hardware to fetch a tray Public method to use for: * fetch the vertical lift tray and presenting it to the operator (physically) * direct the laser pointer to the cell's location if set Depending on the hardware, the laser pointer may not be implemented. The actual implementation of the method goes in the private method ``_hardware_vertical_lift_fetch_tray()``.

New fields (0)

No new fields.

Public methods (1)
  • write(self, vals)

New fields (1)
  • vertical_lift_skipped Boolean
    help='If this flag is set, it means that when the move was being processed in the Vertical Lift, the operator decided to skip its processing.' args: 'Skipped in Vertical Lift?'
Public methods (2)
  • fetch_vertical_lift_tray_dest(self)
  • fetch_vertical_lift_tray_source(self)

New fields (2)
  • vertical_lift_done Boolean
  • vertical_lift_tray_id Many2one → stock.location
    comodel_name='stock.location' compute='_compute_vertical_lift_tray_id' readonly=True store=True
Public methods (1)
  • write(self, vals)

New fields (5)
  • answer Char
  • command Char
    required=True
  • error Char
  • name Char
    default=<expr> index=True required=True
  • shuttle_id Many2one → vertical.lift.shuttle
    required=True args: 'vertical.lift.shuttle'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • record_answer(self, answer)

New fields (7)
  • location_id Many2one
    related='shuttle_id.location_id'
  • mode Selection
    related='shuttle_id.mode'
  • name Char
    related='shuttle_id.name'
  • number_of_ops Integer
    compute='_compute_number_of_ops' string='Number of Operations'
  • number_of_ops_all Integer
    compute='_compute_number_of_ops_all' string='Number of Operations in all shuttles'
  • shuttle_id Many2one → vertical.lift.shuttle
    comodel_name='vertical.lift.shuttle' readonly=True required=True
  • state Selection
    default=<expr> selection=<expr>
Public methods (17)
  • action_manual_barcode(self)
  • action_menu(self)
  • action_open_operations(self)
  • action_open_screen(self)
  • button_release(self)
    Release the operation, go to the next
  • button_save(self)
    Confirm the operation (set move to done, ...)
  • button_save_and_release(self)
    Confirm the operation (set move to done, ...)
  • next_step(self, direct_eval=False)
  • on_barcode_scanned(self, barcode)
  • on_screen_open(self)
    Called when the screen is opened
  • onchange(self, values, field_names, field_onchange)
  • process_current(self)
    Process the action (pick, put, ...) To implement in sub-classes
  • reset_steps(self)
  • step(self)
  • switch_inventory(self)
  • switch_pick(self)
  • switch_put(self)

New fields (17)
  • last_quantity_input Float
  • lot_id Many2one
    related='quant_id.lot_id'
  • package_id Many2one
    related='quant_id.package_id'
  • product_id Many2one
    related='quant_id.product_id'
  • product_packagings Html
    compute='_compute_product_packagings' string='Packaging'
  • product_qty Float
    related='quant_id.inventory_quantity'
  • product_uom_id Many2one
    related='quant_id.product_uom_id'
  • quant_id Many2one → stock.quant
    string='Current Quant' args: 'stock.quant'
  • quantity_input Float
  • tray_location_id Many2one → stock.location
    comodel_name='stock.location' compute='_compute_tray_data' string='Tray Location'
  • tray_matrix Json
    compute='_compute_tray_data' string='Cells'
  • tray_name Char
    compute='_compute_tray_data'
  • tray_qty Float
    compute='_compute_tray_qty' string='Stock Quantity'
  • tray_type_code Char
    compute='_compute_tray_data' string='Tray Code'
  • tray_type_id Many2one → stock.location.tray.type
    comodel_name='stock.location.tray.type' compute='_compute_tray_data' string='Tray Type'
  • tray_x Integer
    compute='_compute_tray_data' string='X'
  • tray_y Integer
    compute='_compute_tray_data' string='Y'
Public methods (7)
  • action_open_operations(self)
  • button_save(self)
  • clear_current_inventory_line(self)
  • fetch_tray(self)
  • process_current(self)
  • reset_steps(self)
  • select_next_inventory_line(self)

New fields (0)

No new fields.

Public methods (7)
  • action_open_operations(self)
  • button_release(self)
    Release the operation, go to the next
  • button_skip(self)
    Skip the operation, go to the next
  • fetch_tray(self)
  • is_skipped(self)
    Was the current stock.move.line marked as to be skipped?
  • on_barcode_scanned(self, barcode)
  • select_next_move_line(self)

New fields (0)

No new fields.

Public methods (4)
  • action_open_operations(self)
  • button_release(self)
  • fetch_tray(self)
  • on_barcode_scanned(self, barcode)

New fields (18)
  • current_move_line_id Many2one → stock.move.line
    comodel_name='stock.move.line' readonly=True
  • location_dest_id Many2one
    readonly=False related='current_move_line_id.location_dest_id' string='Destination'
  • lot_id Many2one
    readonly=True related='current_move_line_id.lot_id'
  • picking_id Many2one
    related='current_move_line_id.picking_id'
  • picking_origin Char
    related='current_move_line_id.picking_id.origin'
  • picking_partner_id Many2one
    related='current_move_line_id.picking_id.partner_id'
  • product_id Many2one
    related='current_move_line_id.product_id'
  • product_packagings Html
    compute='_compute_product_packagings' string='Packaging'
  • product_uom_id Many2one
    related='current_move_line_id.product_uom_id'
  • quantity Float
    related='current_move_line_id.quantity'
  • tray_location_id Many2one → stock.location
    comodel_name='stock.location' compute='_compute_tray_data' string='Tray Location'
  • tray_matrix Json
    compute='_compute_tray_data' string='Cells'
  • tray_name Char
    compute='_compute_tray_data'
  • tray_qty Float
    compute='_compute_tray_qty' string='Stock Quantity'
  • tray_type_code Char
    compute='_compute_tray_data' string='Tray Code'
  • tray_type_id Many2one → stock.location.tray.type
    comodel_name='stock.location.tray.type' compute='_compute_tray_data' string='Tray Type'
  • tray_x Integer
    compute='_compute_tray_data' string='X'
  • tray_y Integer
    compute='_compute_tray_data' string='Y'
Public methods (8)
  • clear_current_move_line(self)
  • count_move_lines_to_do(self)
    Count move lines to process in current shuttles
  • count_move_lines_to_do_all(self)
    Count move lines to process in all shuttles
  • fetch_tray(self)
  • is_action_barcode(self, barcode)
    Detect if the barcode is a button or command barcode
  • on_barcode_scanned(self, barcode)
  • process_current(self)
  • reset_steps(self)

New fields (9)
  • command_ids One2many → vertical.lift.command
    string='Hardware commands' args: 'vertical.lift.command', 'shuttle_id'
  • hardware Selection
    default='simulation' required=True selection='_selection_hardware'
  • location_id Many2one → stock.location
    comodel_name='stock.location' domain="[('vertical_lift_kind', '=', 'shuttle')]" help='The Shuttle source location for Pick operations and destination location for Put operations.' ondelete='restrict' required=True
  • mode Selection
    default='pick' required=True args: [('pick', 'Pick'), ('put', 'Put'), ('inventory', 'Inventory')]
  • name Char
  • number_of_ops Integer
    compute='_compute_number_of_ops' string='Operations to Process'
  • port Integer
    help='network port of the server on which to send the message'
  • server Char
    help='hostname or IP address of the server'
  • use_tls Boolean
    help='set this if the server expects TLS wrapped communication'
Public methods (9)
  • action_back_to_settings(self)
  • action_manual_barcode(self)
  • action_menu(self)
  • action_open_operations(self)
  • action_open_screen(self)
  • release_vertical_lift_tray(self)
    Send instructions to the vertical lift hardware to close trays The actual implementation of the method goes in the private method ``_hardware_vertical_lift_release_tray()``.
  • switch_inventory(self)
  • switch_pick(self)
  • switch_put(self)

Loading…

Loading…