| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/sale-workflow |
| GIT | |
| GIT | https://github.com/OCA/sale-workflow.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/sale-workflow/tree/16.0/sale_order_line_multi_warehouse |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Sales |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Sygel |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Sygel |
| COMMITTERS | |
| COMMITTERS | OCA-git-bot, oca-ci, Manuel Regidor |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/sale-workflow |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:45 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale_stock - sale - sales_team - base - base_setup - web - bus - web_tour - account_payment - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm - stock_account - stock - barcodes_gs1_nomenclature - barcodes |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
sale_order_line_warehouse_view |
sale.order.line.warehouse.view | sale.order.line | form | New |
so_line_multi_warehouse_res_config_settings_view_form |
so.line.multi.warehouse.res.config.settings.view.form | res.config.settings | xpath | Inherits stock.res_config_settings_view_form |
so_line_multi_warehouse_view_order_form |
so.line.multi.warehouse.view.order.form | sale.order | xpath | Inherits sale.view_order_form |
so_line_multi_warehouse_view_warehouse |
so.line.multi.warehouse.view.warehouse | stock.warehouse | field | Inherits stock.view_warehouse |
so_multi_warehouse_change_wizard_view |
so.multi.warehouse.change.wizard.view | so.multi.warehouse.change.wizard | form | New |
allow_sale_multi_warehouse
Boolean
No public methods.
allow_sale_multi_warehouse
Boolean
readonly=False
related='company_id.allow_sale_multi_warehouse'
string='Multi Warehouse in Sale Orders'
No public methods.
allow_sale_multi_warehouse
Boolean
related='company_id.allow_sale_multi_warehouse'
store=True
suitable_warehouse_ids
Many2many → stock.warehouse
comodel_name='stock.warehouse'
compute='_compute_suitable_warehouse_ids'
string='Suitable Warehouses'
action_open_so_multi_warehouse_change(self)
get_incompatible_multi_warehouse_lines(self, warehouse)
allow_sale_multi_warehouse
Boolean
related='order_id.allow_sale_multi_warehouse'
qty_assigned_to_warehouse
Float
compute='_compute_qty_assigned_to_warehouse'
digits='Product Unit of Measure'
store=True
string='Qty. Assigned to Warehouses'
sale_order_line_warehouse_ids
One2many → sale.order.line.warehouse
comodel_name='sale.order.line.warehouse'
inverse_name='order_line_id'
string='SO Line Warehouses'
suitable_warehouse_ids
Many2many → stock.warehouse
comodel_name='stock.warehouse'
related='order_id.suitable_warehouse_ids'
string='Suitable Warehouses'
action_show_warehouse_lines(self)
adjust_qty_assigned_to_warehouse(self, qty)
adjust_qty_assigned_to_warehouse_decrease(self, qty)
adjust_qty_assigned_to_warehouse_increase(self, qty)
create(self, vals_list)
write(self, values)
move_ids
One2many → stock.move
comodel_name='stock.move'
inverse_name='sale_order_line_warehouse_id'
string='Moves'
order_line_id
Many2one → sale.order.line
comodel_name='sale.order.line'
ondelete='cascade'
required=True
string='Sale Order Line'
product_id
Many2one → product.product
comodel_name='product.product'
related='order_line_id.product_id'
string='Product'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
related='order_line_id.product_uom'
string='UoM'
product_uom_qty
Float
digits='Product Unit of Measure'
string='Quantity'
qty_delivered
Float
compute='_compute_qty_delivered'
digits='Product Unit of Measure'
string='Qty. Delivered'
qty_forecast
Float
compute='_compute_qty_forecast'
digits='Product Unit of Measure'
string='Forecast Qty.'
qty_forecast_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
related='product_id.uom_id'
string='Forecast Qty. UoM'
suitable_warehouse_ids
Many2many → stock.warehouse
comodel_name='stock.warehouse'
related='order_line_id.order_id.suitable_warehouse_ids'
warehouse_id
Many2one → stock.warehouse
comodel_name='stock.warehouse'
domain="[('id', 'in', suitable_warehouse_ids)]"
required=True
string='Warehouse'
create(self, vals_list)
name_get(self)
unlink(self)
write(self, values)
product_id
Many2one → product.product
comodel_name='product.product'
related='sale_order_line_warehouse_id.product_id'
string='Product'
product_uom_id
Many2one → uom.uom
comodel_name='uom.uom'
related='sale_order_line_warehouse_id.product_uom_id'
string='Unit Of Measure'
product_uom_qty
Float
digits='Product Unit of Measure'
related='sale_order_line_warehouse_id.product_uom_qty'
string='Quantity'
sale_order_line_warehouse_id
Many2one → sale.order.line.warehouse
comodel_name='sale.order.line.warehouse'
readonly=True
required=True
string='Current Warehouse'
so_multi_warehouse_change_wizard_id
Many2one → so.multi.warehouse.change.wizard
comodel_name='so.multi.warehouse.change.wizard'
ondelete='cascade'
required=True
string='SO Multi Warehouse Change Wizard'
warehouse_id
Many2one → stock.warehouse
comodel_name='stock.warehouse'
related='sale_order_line_warehouse_id.warehouse_id'
string='Warehouse'
No public methods.
current_warehouse_id
Many2one → stock.warehouse
comodel_name='stock.warehouse'
related='sale_order_id.warehouse_id'
string='Current Warehouse'
has_incompatibilities
Selection
copy=False
readonly=True
selection=[('yes', 'Yes'), ('no', 'No')]
new_warehouse_id
Many2one → stock.warehouse
comodel_name='stock.warehouse'
string='New Warehouse'
sale_order_id
Many2one → sale.order
comodel_name='sale.order'
string='Sale Order'
so_multi_warehouse_change_line_ids
One2many → so.multi.warehouse.change.line.wizard
comodel_name='so.multi.warehouse.change.line.wizard'
inverse_name='so_multi_warehouse_change_wizard_id'
change_warehouse(self)
check_incompatible(self)
sale_order_line_warehouse_id
Many2one → sale.order.line.warehouse
comodel_name='sale.order.line.warehouse'
string='Sale Order Line Warehouse'
No public methods.
No new fields.
Public methods (0)No public methods.
alternative_warehouse_ids
Many2many → stock.warehouse
column1='warehouse_id'
column2='alternative_warehouse_id'
comodel_name='stock.warehouse'
domain="[('id', '!=', id)]"
relation='alternative_warehouse'
string='Alternative Warehouses'
No public methods.
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/sale-workflow |
| PULL REQUEST | |
| PULL REQUEST | [17.0][MIG] sale_order_line_multi_warehouse (#3759) |