[FIX] stock: routes/rules generation

Joint work with Arnold Moyaux <arm@odoo.com>

task 1831382
This commit is contained in:
Simon Lejeune
2019-04-03 13:51:05 +00:00
parent e972d25400
commit 028544e32e
+7 -5
View File
@@ -149,7 +149,7 @@ class Warehouse(models.Model):
for warehouse in warehouses:
# check if we need to delete and recreate route
depends = [depend for depends in [value['depends'] for value in warehouse._get_routes_values().values()] for depend in depends]
depends = [depend for depends in [value.get('depends', []) for value in warehouse._get_routes_values().values()] for depend in depends]
if any(depend in vals for depend in depends):
picking_type_vals = warehouse._create_or_update_sequences_and_picking_types()
if picking_type_vals:
@@ -162,7 +162,7 @@ class Warehouse(models.Model):
# _get_global_route_rules_values method under the key named
# 'depends'.
global_rules = warehouse._get_global_route_rules_values()
depends = [depend for depends in [value['depends'] for value in global_rules.values()] for depend in depends]
depends = [depend for depends in [value.get('depends', []) for value in global_rules.values()] for depend in depends]
if any(rule in vals for rule in global_rules) or\
any(depend in vals for depend in depends):
warehouse._create_or_update_global_routes_rules()
@@ -293,7 +293,7 @@ class Warehouse(models.Model):
with the wanted reception, delivery,... steps.
"""
for rule_field, rule_details in self._get_global_route_rules_values().items():
values = rule_details['update_values']
values = rule_details.get('update_values', {})
if self[rule_field]:
self[rule_field].write(values)
else:
@@ -377,11 +377,13 @@ class Warehouse(models.Model):
# If the route exists update it
if self[route_field]:
route = self[route_field]
route.write(route_data['route_update_values'])
if 'route_update_values' in route_data:
route.write(route_data['route_update_values'])
route.rule_ids.write({'active': False})
# Create the route
else:
route_data['route_create_values'].update(route_data['route_update_values'])
if 'route_update_values' in route_data:
route_data['route_create_values'].update(route_data['route_update_values'])
route = self.env['stock.location.route'].create(route_data['route_create_values'])
self[route_field] = route
# Get rules needed for the route