TIP: You can type at any time to perform a new search.
Vertical Lift Module management
stock_vlm_mgmt · OCA/stock-logistics-warehouse
- Repository
- OCA/stock-logistics-warehouse · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Stock
- Folder size
- 0.21 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/stock-logistics-warehouse
- Last tracking update
- 2026-08-07 08:42:51
- Authors
- Odoo Community Association (OCA), Tecnativa
- Maintainers
- Odoo Community Association (OCA), Tecnativa
- Committers
- Weblate, OCA-git-bot, oca-ci, christian-ramos-tecnativa
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- stock_vlm_mgmt_kardex, stock_vlm_mgmt_modula
- Description
This module adds basic a management system for Vertical Lift Modules. It's thought as a simpler alternative attemp to stock_vertical_lift and all the dependencies that come with it.
Code Analysis ⓘ
Views touched (19)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
svm_operation_picking_form_view |
stock.picking | form | Inherits stock.view_picking_form | |
view_location_form |
stock.location | form | Inherits stock.view_location_form | |
view_location_search |
stock.location | search | Inherits stock.view_location_search | |
view_location_vlm_tray_form |
stock.location.vlm.tray | form | New | |
view_location_vlm_tray_tree |
stock.location.vlm.tray | list | New | |
view_stock_location_tray_type_form |
stock.location.vlm.tray.type | form | New | |
view_stock_location_tray_type_search |
stock.location.vlm.tray.type | search | New | |
view_stock_location_tray_type_tree |
stock.location.vlm.tray.type | list | New | |
view_stock_quant_inventory_tree |
stock.quant.vlm | list | Inherits view_stock_quant_vlm_tree | |
view_stock_quant_tree |
stock.quant | tree | Inherits stock.view_stock_quant_tree | |
view_stock_quant_tree_editable |
stock.quant | tree | Inherits stock.view_stock_quant_tree_editable | |
view_stock_quant_tree_inventory_editable |
stock.quant | tree | Inherits stock.view_stock_quant_tree_inventory_editable | |
view_stock_quant_vlm_form |
stock.quant.vlm | form | New | |
view_stock_quant_vlm_tree |
stock.quant.vlm | list | New | |
view_vlm_task_form |
stock.vlm.task | form | New | |
view_vlm_task_tree |
stock.vlm.task | list | New | |
vlm_quant_search_view |
stock.quant.vlm | search | New | |
vlm_task_action_form_view |
stock.vlm.task.action | form | New | |
vlm_task_search_view |
stock.vlm.task | search | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (10)
New fields (10)
-
is_vlmBoolean -
vlm_addressCharhelp='An VLM normally will be behind some propietary proxy that handles several VLMs at once, so we need to set which one corresponds to this location' -
vlm_hostnameChar -
vlm_passwordChar -
vlm_portChar -
vlm_removal_strategySelectiondefault='fifo'selection=[('fifo', 'FIFO'), ('lifo', 'LIFO'), ('optimal', 'Less carrier movements')] -
vlm_sequence_idMany2one → ir.sequencecomodel_name='ir.sequence' -
vlm_tray_idsOne2many → stock.location.vlm.traycomodel_name='stock.location.vlm.tray'inverse_name='location_id' -
vlm_userChar -
vlm_vendorSelectionselection=[('test', 'Test')]
-
action_release_vlm_trays(self)Send to the VLM a special command that releases all the trays -
action_view_vlm_quants(self) -
action_view_vlm_tray(self) -
send_vlm_request(self, data: dict, **options) -> dictSend request to the vendor methods. The vendor connector should deal with the connection issues transforming the response into these standard codes: -1: Connection refused -2: The request is issued but the response is lost -3: Timeout in the request -4: VLM Hardware issues
New fields (5)
-
is_fullBoolean -
location_idMany2one → stock.locationcomodel_name='stock.location'domain=[('is_vlm', '=', True)] -
nameChar -
tray_matrixSerializedcompute='_compute_tray_matrix' -
tray_type_idMany2one → stock.location.vlm.tray.typecomodel_name='stock.location.vlm.tray.type'required=True
-
action_tray_call(self)Send to the VLM a special command that calls this tray -
action_tray_content(self, pos_x=None, pos_y=None)See the vlm quants belonging to the tray
New fields (11)
-
activeBooleandefault=True -
codeCharrequired=True -
colsIntegerrequired=True -
depthIntegerhelp='Depth of the tray in mm' -
depth_per_cellFloatcompute='_compute_depth_per_cell' -
heightIntegerhelp='Height of the tray in mm' -
nameCharrequired=True -
rowsIntegerrequired=True -
tray_matrixSerializedcompute='_compute_tray_matrix' -
widthIntegerhelp='Width of the tray in mm' -
width_per_cellFloatcompute='_compute_width_per_cell'
No public methods.
New fields (2)
-
has_vlm_operationBooleancompute='_compute_has_vlm_operation' -
vlm_pending_quantityFloatcompute='_compute_vlm_pending_quantity'copy=Falsedefault=0.0digits='Product Unit of Measure'help='Quantity pending on VLM Operations'readonly=Falsestore=True
No public methods.
New fields (6)
-
has_pending_vlm_tasksBooleancompute='_compute_has_pending_vlm_tasks' -
has_vlm_operationsBooleancompute='_compute_has_vlm_operations' -
has_vlm_pending_operationsBooleancompute='_compute_has_vlm_pending_operations' -
vlm_move_line_idsMany2many → stock.move.linecomodel_name='stock.move.line'compute='_compute_vlm_move_line_ids' -
vlm_pending_move_line_idsMany2many → stock.move.linecomodel_name='stock.move.line'compute='_compute_vlm_move_line_ids' -
vlm_task_idsMany2many → stock.vlm.taskcomodel_name='stock.vlm.task'compute='_compute_vlm_task_ids'
-
action_do_vlm_tasks(self)Perform the VLM pending tasks -
action_open_vlm_task(self)
New fields (1)
-
vlm_quant_idsOne2many → stock.quant.vlmcomodel_name='stock.quant.vlm'inverse_name='quant_id'
-
action_view_in_vlm_structure(self)Open the VLM structure filtering by this product to locate it easily
New fields (6)
-
location_idMany2one → stock.locationcomodel_name='stock.location' -
product_idMany2one → product.productcomodel_name='product.product'required=True -
quant_idMany2one → stock.quantcomodel_name='stock.quant' -
quantityFloat -
tray_idMany2one → stock.location.vlm.traycomodel_name='stock.location.vlm.tray' -
tray_type_idMany2onerelated='tray_id.tray_type_id'
-
action_task_detail(self) -
create(self, vals_list)@api.model_create_multi -
unlink(self) -
write(self, vals)
New fields (15)
-
display_nameCharcompute='_compute_display_name' -
location_idMany2one → stock.locationcomodel_name='stock.location' -
move_line_idsMany2many → stock.move.linecomodel_name='stock.move.line' -
product_idMany2one → product.productcomodel_name='product.product' -
quant_idMany2one → stock.quantcomodel_name='stock.quant' -
quantity_doneFloatdigits='Product Unit of Measure' -
quantity_pendingFloatdigits='Product Unit of Measure' -
referenceChardefault='' -
skippedBoolean -
splitted_vlm_task_idMany2one → stock.vlm.taskcomodel_name='stock.vlm.task' -
stateSelectionselection=[('pending', 'Pending'), ('waiting', 'Waiting'), ('done', 'Done')] -
task_typeSelectionselection=[('put', 'Put'), ('get', 'Get'), ('count', 'Count')] -
tray_idMany2one → stock.location.vlm.traycomodel_name='stock.location.vlm.tray' -
tray_type_idMany2onerelated='tray_id.tray_type_id' -
vlm_quant_idMany2one → stock.quant.vlmcomodel_name='stock.quant.vlm'
-
action_command_task(self)Send to the VLM then needed operations -
action_command_task_threaded(self) -
action_do_tasks(self)Perform the tasks sequentially
New fields (15)
-
image_512Imagerelated='vlm_task_id.product_id.image_512' -
location_idMany2one → stock.locationcomodel_name='stock.location'related='vlm_task_id.location_id' -
next_vlm_task_idMany2one → stock.vlm.taskcomodel_name='stock.vlm.task'compute='_compute_next_vlm_task_id' -
previous_vlm_task_idMany2one → stock.vlm.taskcomodel_name='stock.vlm.task'compute='_compute_next_vlm_task_id' -
quantity_doneFloat -
quantity_pendingFloatreadonly=True -
splitted_vlm_task_idMany2one → stock.vlm.taskcomodel_name='stock.vlm.task'related='vlm_task_id.splitted_vlm_task_id' -
stateSelectioncompute='_compute_state'selection=[('pending', 'Pending'), ('waiting', 'Waiting'), ('done', 'Done'), ('skipped', 'Skipped'), ('edit', 'Edit')] -
tray_idMany2one → stock.location.vlm.traycomodel_name='stock.location.vlm.tray' -
vlm_task_idMany2one → stock.vlm.taskcomodel_name='stock.vlm.task'required=Truestring='Selected task' -
vlm_task_idsMany2many → stock.vlm.taskcomodel_name='stock.vlm.task' -
vlm_tasks_partialIntegercompute='_compute_vlm_tasks_total' -
vlm_tasks_progressIntegercompute='_compute_vlm_tasks_total' -
vlm_tasks_totalIntegercompute='_compute_vlm_tasks_total' -
warningCharreadonly=True
-
action_command(self)Set task values from the wizard -
action_go_to_task(self, go_to='current')Go to the next task -
action_manual_set(self)Save the info directly to the task as if it was validated by the VLM -
action_next_task(self) -
action_previous_task(self) -
action_skip_task(self)Skip task and go to the next one -
default_get(self, fields)@api.model
New fields (7)
-
human_pos_xIntegercompute='_compute_human_pos_x'inverse='_inverse_human_pos_x'readonly=Falsestring='X' -
human_pos_yIntegercompute='_compute_human_pos_y'inverse='_inverse_human_pos_y'readonly=Falsestring='Y' -
pos_xIntegercompute='_compute_pos'readonly=Falsestore=True -
pos_yIntegercompute='_compute_pos'readonly=Falsestore=True -
tray_idMany2one → stock.location.vlm.traycomodel_name='stock.location.vlm.tray' -
tray_matrixSerializedcompute='_compute_tray_matrix' -
tray_type_idMany2one → stock.location.vlm.tray.typecomodel_name='stock.location.vlm.tray.type'
-
tray_cell_center_position(self, pos_x=None, pos_y=None)Center position in mm of a cell. Used to position the laser pointer. @return {tuple} millimeters from bottom-left corner (left, bottom)
Loading…