diff --git a/addons/stock/models/stock_warehouse.py b/addons/stock/models/stock_warehouse.py index d327c184fe8..3c3330b426f 100644 --- a/addons/stock/models/stock_warehouse.py +++ b/addons/stock/models/stock_warehouse.py @@ -183,11 +183,11 @@ class Warehouse(models.Model): for warehouse in self: warehouse._update_partner_data(vals['partner_id'], warehouse.company_id.id) - res = super(Warehouse, self).write(vals) - if vals.get('code') or vals.get('name'): warehouses._update_name_and_code(vals.get('name'), vals.get('code')) + res = super().write(vals) + for warehouse in warehouses: # check if we need to delete and recreate route depends = [depend for depends in [value.get('depends', []) for value in warehouse._get_routes_values().values()] for depend in depends] @@ -886,7 +886,7 @@ class Warehouse(models.Model): if warehouse.mto_pull_id: warehouse.mto_pull_id.write({'name': warehouse.mto_pull_id.name.replace(warehouse.name, new_name, 1)}) for warehouse in self: - sequence_data = warehouse._get_sequence_values() + sequence_data = warehouse._get_sequence_values(name=new_name, code=new_code) # `ir.sequence` write access is limited to system user if self.user_has_groups('stock.group_stock_manager'): warehouse = warehouse.sudo() @@ -1013,39 +1013,41 @@ class Warehouse(models.Model): }, }, max_sequence + 6 - def _get_sequence_values(self): + def _get_sequence_values(self, name=False, code=False): """ Each picking type is created with a sequence. This method returns the sequence values associated to each picking type. """ + name = name if name else self.name + code = code if code else self.code return { 'in_type_id': { - 'name': self.name + ' ' + _('Sequence in'), - 'prefix': self.code + '/IN/', 'padding': 5, + 'name': name + ' ' + _('Sequence in'), + 'prefix': code + '/IN/', 'padding': 5, 'company_id': self.company_id.id, }, 'out_type_id': { - 'name': self.name + ' ' + _('Sequence out'), - 'prefix': self.code + '/OUT/', 'padding': 5, + 'name': name + ' ' + _('Sequence out'), + 'prefix': code + '/OUT/', 'padding': 5, 'company_id': self.company_id.id, }, 'pack_type_id': { - 'name': self.name + ' ' + _('Sequence packing'), - 'prefix': self.code + '/PACK/', 'padding': 5, + 'name': name + ' ' + _('Sequence packing'), + 'prefix': code + '/PACK/', 'padding': 5, 'company_id': self.company_id.id, }, 'pick_type_id': { - 'name': self.name + ' ' + _('Sequence picking'), - 'prefix': self.code + '/PICK/', 'padding': 5, + 'name': name + ' ' + _('Sequence picking'), + 'prefix': code + '/PICK/', 'padding': 5, 'company_id': self.company_id.id, }, 'int_type_id': { - 'name': self.name + ' ' + _('Sequence internal'), - 'prefix': self.code + '/INT/', 'padding': 5, + 'name': name + ' ' + _('Sequence internal'), + 'prefix': code + '/INT/', 'padding': 5, 'company_id': self.company_id.id, }, 'return_type_id': { - 'name': self.name + ' ' + _('Sequence return'), - 'prefix': self.code + '/RET/', 'padding': 5, + 'name': name + ' ' + _('Sequence return'), + 'prefix': code + '/RET/', 'padding': 5, 'company_id': self.company_id.id, }, }