diff --git a/addons/mrp/views/stock_warehouse_views.xml b/addons/mrp/views/stock_warehouse_views.xml
index 2d652127a01..f417265ea0a 100644
--- a/addons/mrp/views/stock_warehouse_views.xml
+++ b/addons/mrp/views/stock_warehouse_views.xml
@@ -6,7 +6,7 @@
stock.warehouse
-
+
diff --git a/addons/purchase_stock/views/stock_views.xml b/addons/purchase_stock/views/stock_views.xml
index 70439d1092a..aa91701b5e5 100644
--- a/addons/purchase_stock/views/stock_views.xml
+++ b/addons/purchase_stock/views/stock_views.xml
@@ -16,7 +16,7 @@
stock.warehouse
-
+
diff --git a/addons/stock/models/stock_warehouse.py b/addons/stock/models/stock_warehouse.py
index 96ade7d5b5e..e02b5bc06ca 100644
--- a/addons/stock/models/stock_warehouse.py
+++ b/addons/stock/models/stock_warehouse.py
@@ -63,14 +63,11 @@ class Warehouse(models.Model):
warehouse_count = fields.Integer(compute='_compute_warehouse_count')
resupply_wh_ids = fields.Many2many(
'stock.warehouse', 'stock_wh_resupply_table', 'supplied_wh_id', 'supplier_wh_id',
- 'Resupply Warehouses')
+ 'Resupply From', help="Routes will be created automatically to resupply this warehouse from the warehouses ticked")
resupply_route_ids = fields.One2many(
'stock.location.route', 'supplied_wh_id', 'Resupply Routes',
help="Routes will be created for these resupply warehouses and you can select them on products and product categories")
- default_resupply_wh_id = fields.Many2one(
- 'stock.warehouse', 'Default Resupply Warehouse',
- help="Goods will always be resupplied from this warehouse")
-
+ warehouse_count = fields.Integer(compute='_compute_warehouse_count')
_sql_constraints = [
('warehouse_name_uniq', 'unique(name, company_id)', 'The name of the warehouse must be unique per company!'),
('warehouse_code_uniq', 'unique(code, company_id)', 'The code of the warehouse must be unique per company!'),
@@ -81,11 +78,6 @@ class Warehouse(models.Model):
for warehouse in self:
warehouse.warehouse_count = self.env['stock.warehouse'].search_count([('id', 'not in', warehouse.ids)])
- @api.depends('default_resupply_wh_id', 'resupply_wh_ids')
- def onchange_resupply_warehouses(self):
- # If we are removing the default resupply, we don't have default_resupply_wh_id # TDE note: and we want one
- self.resupply_wh_ids |= self.default_resupply_wh_id
-
@api.model
def create(self, vals):
# create view location for warehouse then create all locations
@@ -144,15 +136,6 @@ class Warehouse(models.Model):
new_resupply_whs = self.browse([wh['id'] for wh in resupply_whs])
old_resupply_whs = {warehouse.id: warehouse.resupply_wh_ids for warehouse in warehouses}
- if 'default_resupply_wh_id' in vals:
- if vals.get('default_resupply_wh_id') and any(vals['default_resupply_wh_id'] == warehouse.id for warehouse in warehouses):
- raise UserError(_('The default resupply warehouse should be different than itself.'))
- for warehouse in warehouses.filtered(lambda wh: wh.default_resupply_wh_id):
- # remove the existing resupplying route on the warehouse
- to_remove_routes = Route.search([('supplied_wh_id', '=', warehouse.id), ('supplier_wh_id', '=', warehouse.default_resupply_wh_id.id)])
- for inter_wh_route in to_remove_routes:
- warehouse.write({'route_ids': [(3, inter_wh_route.id)]})
-
# If another partner assigned
if vals.get('partner_id'):
warehouses._update_partner_data(vals['partner_id'], vals.get('company_id'))
@@ -170,7 +153,7 @@ class Warehouse(models.Model):
to_add = new_resupply_whs - old_resupply_whs[warehouse.id]
to_remove = old_resupply_whs[warehouse.id] - new_resupply_whs
if to_add:
- warehouse.create_resupply_routes(to_add, warehouse.default_resupply_wh_id)
+ warehouse.create_resupply_routes(to_add)
if to_remove:
Route.search([('supplied_wh_id', '=', warehouse.id), ('supplier_wh_id', 'in', to_remove.ids)]).write({'active': False})
# TDE FIXME: shouldn't we remove stock rules also ? because this could make them global (not sure)
@@ -270,7 +253,7 @@ class Warehouse(models.Model):
crossdock_route = self._create_or_update_crossdock_route(routes_data)
# create route selectable on the product to resupply the warehouse from another one
- self.create_resupply_routes(self.resupply_wh_ids, self.default_resupply_wh_id)
+ self.create_resupply_routes(self.resupply_wh_ids)
# return routes and mto stock rule to store on the warehouse
return {
@@ -362,7 +345,7 @@ class Warehouse(models.Model):
self.env['stock.rule'].create(rule_vals)
return crossdock_route
- def create_resupply_routes(self, supplier_warehouses, default_resupply_wh):
+ def create_resupply_routes(self, supplier_warehouses):
Route = self.env['stock.location.route']
Rule = self.env['stock.rule']
@@ -390,10 +373,6 @@ class Warehouse(models.Model):
for pull_rule_vals in pull_rules_list:
Rule.create(pull_rule_vals)
- # if the warehouse is also set as default resupply method, assign this route automatically to the warehouse
- if supplier_wh == default_resupply_wh:
- (self | supplier_wh).write({'route_ids': [(4, inter_wh_route.id)]})
-
# Routing tools
# ------------------------------------------------------------
diff --git a/addons/stock/tests/test_move2.py b/addons/stock/tests/test_move2.py
index e8656426e66..6ae9b1bc118 100644
--- a/addons/stock/tests/test_move2.py
+++ b/addons/stock/tests/test_move2.py
@@ -202,7 +202,6 @@ class TestPickShip(TestStockCommon):
'code': 'SWH'
})
warehouse_1.write({
- 'default_resupply_wh_id': warehouse_2.id,
'resupply_wh_ids': [(6, 0, [warehouse_2.id])]
})
resupply_route = self.env['stock.location.route'].search([('supplier_wh_id', '=', warehouse_2.id), ('supplied_wh_id', '=', warehouse_1.id)])
@@ -1901,7 +1900,6 @@ class TestRoutes(TestStockCommon):
'code': 'SWH'
})
warehouse_1.write({
- 'default_resupply_wh_id': warehouse_2.id,
'resupply_wh_ids': [(6, 0, [warehouse_2.id])]
})
resupply_route = self.env['stock.location.route'].search([('supplier_wh_id', '=', warehouse_2.id), ('supplied_wh_id', '=', warehouse_1.id)])
diff --git a/addons/stock/tests/test_warehouse.py b/addons/stock/tests/test_warehouse.py
index cb21501f0f8..92bb2d3598d 100644
--- a/addons/stock/tests/test_warehouse.py
+++ b/addons/stock/tests/test_warehouse.py
@@ -240,14 +240,12 @@ class TestWarehouse(TestStockCommon):
warehouse_distribution = self.env['stock.warehouse'].create({
'name': 'Dist.',
'code': 'DIST',
- 'default_resupply_wh_id': warehouse_stock.id,
'resupply_wh_ids': [(6, 0, [warehouse_stock.id])]
})
warehouse_shop = self.env['stock.warehouse'].create({
'name': 'Shop',
'code': 'SHOP',
- 'default_resupply_wh_id': warehouse_distribution.id,
'resupply_wh_ids': [(6, 0, [warehouse_distribution.id])]
})
@@ -318,7 +316,6 @@ class TestWarehouse(TestStockCommon):
warehouse_shop_wavre = self.env['stock.warehouse'].create({
'name': 'Shop Wavre',
'code': 'SHWV',
- 'default_resupply_wh_id': warehouse_distribution_wavre.id,
'resupply_wh_ids': [(6, 0, [warehouse_distribution_wavre.id])]
})
@@ -330,7 +327,6 @@ class TestWarehouse(TestStockCommon):
warehouse_shop_namur = self.env['stock.warehouse'].create({
'name': 'Shop Namur',
'code': 'SHNM',
- 'default_resupply_wh_id': warehouse_distribution_namur.id,
'resupply_wh_ids': [(6, 0, [warehouse_distribution_namur.id])]
})
@@ -443,7 +439,6 @@ class TestResupply(TestStockCommon):
self.warehouse_2 = self.env['stock.warehouse'].create({
'name': 'Small Warehouse',
'code': 'SWH',
- 'default_resupply_wh_id': self.warehouse_1.id,
'resupply_wh_ids': [(6, 0, [self.warehouse_1.id])]
})
diff --git a/addons/stock/views/stock_warehouse_views.xml b/addons/stock/views/stock_warehouse_views.xml
index 5ebc26d1a58..71950b168a5 100644
--- a/addons/stock/views/stock_warehouse_views.xml
+++ b/addons/stock/views/stock_warehouse_views.xml
@@ -36,7 +36,6 @@
-