diff --git a/addons/crm/models/crm_lead.py b/addons/crm/models/crm_lead.py index 101d285a1d2..bd8c2bb8aa4 100644 --- a/addons/crm/models/crm_lead.py +++ b/addons/crm/models/crm_lead.py @@ -435,7 +435,9 @@ class Lead(models.Model): partner_name = partner.parent_id.name if not partner_name and partner.is_company: partner_name = partner.name - values = {f: partner[f] or self[f] for f in PARTNER_FIELDS_TO_SYNC} + contact_name = False if partner.is_company else partner.name + + values = {f: partner[f] if partner else self[f] for f in PARTNER_FIELDS_TO_SYNC} values.update({ 'partner_name': partner_name or self.partner_name, 'contact_name': False if partner.is_company else partner.name or self.contact_name, diff --git a/addons/crm/tests/test_crm_lead.py b/addons/crm/tests/test_crm_lead.py index d55e42c2748..f275612be70 100644 --- a/addons/crm/tests/test_crm_lead.py +++ b/addons/crm/tests/test_crm_lead.py @@ -49,6 +49,26 @@ class TestCRMLead(TestCrmCommon): lead.partner_id = False self.assertEqual(lead.country_id, belgium, "Country should still be set on the lead") + def test_crm_lead_creation_partner_no_info(self): + belgium = self.env.ref('base.be') + empty_partner = self.env['res.partner'].create({ + 'name': 'Empty partner', + 'is_company': True + }) + lead_data = { + 'name': 'Test', + 'country_id': belgium.id, + 'email_from': 'test@odoo.com', + 'phone': '04584579646', + } + lead = self.env['crm.lead'].create(lead_data) + lead.partner_id = empty_partner + self.assertEqual(bool(lead.country_id), False, "Country should be empty") + self.assertEqual(lead.contact_name, False, "Contact name should be empty") + self.assertEqual(lead.email_from, lead_data['email_from'], "Email From should keep its initial value") + self.assertEqual(lead.phone, lead_data['phone'], "Phone should keep its initial value") + self.assertEqual(lead.partner_name, empty_partner.name, "Partner name should be set as contact is a company") + @users('user_sales_manager') def test_crm_lead_partner_sync(self): lead, partner = self.lead_1.with_user(self.env.user), self.contact_2