diff --git a/addons/account/models/account.py b/addons/account/models/account.py index 9c8bdc6bfeb..868853bf2f4 100644 --- a/addons/account/models/account.py +++ b/addons/account/models/account.py @@ -224,7 +224,18 @@ class AccountAccount(models.Model): @api.returns('self', lambda value: value.id) def copy(self, default=None): default = dict(default or {}) - default.setdefault('code', _("%s (copy)") % (self.code or '')) + if default.get('code', False): + return super(AccountAccount, self).copy(default) + try: + default['code'] = (str(int(self.code) + 10) or '') + default.setdefault('name', _("%s (copy)") % (self.name or '')) + if self.env['account.account'].search([('code', '=', default['code']), + ('company_id', '=', default.get('company_id', False) or self.company_id.id)], limit=1): + default['code'] = _("%s (copy)") % (self.code or '') + default['name'] = _("%s (copy)") % (self.name or '') + except ValueError: + default['code'] = _("%s (copy)") % (self.code or '') + default['name'] = self.name return super(AccountAccount, self).copy(default) @api.model