From 125dbf0dfd1e38558cd8ff6ee2b8d7aeff27dc20 Mon Sep 17 00:00:00 2001 From: Shreya Modi Date: Tue, 2 Apr 2019 10:00:19 +0000 Subject: [PATCH] [IMP] base: ensure parent and child partners have the same company Purpose of the commit is to ensure parent and child partners have the same company. When creating a new child in another company and one of them tries to log a message on other contacts an error is raised due to multi company record rules. It makes no sense to have child contacts belonging to separate companies. If parent is set on contact then the company_id should be readonly and it will automatically set the parent's company_id. Task-1934813 closes: #32405 Signed-off-by: Thibault Delavallee (tde) --- odoo/addons/base/models/res_partner.py | 5 +++++ odoo/addons/base/views/res_partner_views.xml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py index bd3c0ab4489..3e84b921882 100644 --- a/odoo/addons/base/models/res_partner.py +++ b/odoo/addons/base/models/res_partner.py @@ -415,6 +415,11 @@ class Partner(models.Model): if not self.image and self._context.get('gravatar_image') and self.email: self.image = self._get_gravatar_image(self.email) + @api.onchange('parent_id', 'company_id') + def _onchange_company_id(self): + if self.parent_id: + self.company_id = self.parent_id.company_id.id + @api.depends('name', 'email') def _compute_email_formatted(self): for partner in self: diff --git a/odoo/addons/base/views/res_partner_views.xml b/odoo/addons/base/views/res_partner_views.xml index 2bb056f75b6..5a93c801e9d 100644 --- a/odoo/addons/base/views/res_partner_views.xml +++ b/odoo/addons/base/views/res_partner_views.xml @@ -401,7 +401,7 @@ - +