From ed61da6793298ce8d2ecb17e195d64585e4baa76 Mon Sep 17 00:00:00 2001 From: Nicolas Lempereur Date: Fri, 9 Jun 2017 16:43:13 +0200 Subject: [PATCH] [FIX] base: duplicate company => duplicate partner The name of a company is uniq. The name of a company comes from a partner and is required. Thus duplicating a company didn't work. With this change, if no partner is overriding the copy, the current partner is duplicated and associated to the new duplicated company. opw-746106 closes #17532 --- openerp/addons/base/res/res_company.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/openerp/addons/base/res/res_company.py b/openerp/addons/base/res/res_company.py index 71995487cf1..596d4143849 100644 --- a/openerp/addons/base/res/res_company.py +++ b/openerp/addons/base/res/res_company.py @@ -22,7 +22,7 @@ import os import re import openerp -from openerp import SUPERUSER_ID, tools +from openerp import SUPERUSER_ID, tools, api from openerp.osv import fields, osv from openerp.tools.translate import _ from openerp.tools.safe_eval import safe_eval as eval @@ -154,6 +154,19 @@ class res_company(osv.osv): ('name_uniq', 'unique (name)', 'The company name must be unique !') ] + @api.multi + def copy(self, default=None): + """ + Duplicating a company without specifying a partner duplicate the partner + """ + self.ensure_one() + default = dict(default or {}) + if not default.get('name') and not default.get('partner_id'): + copy_partner = self.partner_id.copy() + default['partner_id'] = copy_partner.id + default['name'] = copy_partner.name + return super(res_company, self).copy(default) + def onchange_footer(self, cr, uid, ids, custom_footer, phone, fax, email, website, vat, company_registry, bank_ids, context=None): if custom_footer: return {}