[IMP] crm: improve lead company computation performance
# Purpose Avoid unnecessary steps to compute/assign lead company. Task-2824913 See odoo/odoo#97136 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
@@ -293,34 +293,30 @@ class Lead(models.Model):
|
||||
if lead.user_id and proposal not in lead.user_id.company_ids:
|
||||
proposal = False
|
||||
# inconsistent
|
||||
if lead.team_id.company_id and proposal != lead.team_id.company_id:
|
||||
elif lead.team_id.company_id and proposal != lead.team_id.company_id:
|
||||
proposal = False
|
||||
# void company on team and no assignee
|
||||
if lead.team_id and not lead.team_id.company_id and not lead.user_id:
|
||||
elif lead.team_id and not lead.team_id.company_id and not lead.user_id:
|
||||
proposal = False
|
||||
# no user and no team -> void company and let assignment do its job
|
||||
# unless customer has a company
|
||||
if not lead.team_id and not lead.user_id and \
|
||||
(not lead.partner_id or lead.partner_id.company_id != proposal):
|
||||
elif not lead.team_id and not lead.user_id and \
|
||||
(not lead.partner_id or lead.partner_id.company_id != proposal):
|
||||
proposal = False
|
||||
|
||||
# propose a new company based on team > user (respecting context) > partner
|
||||
if not proposal:
|
||||
if lead.team_id.company_id:
|
||||
proposal = lead.team_id.company_id
|
||||
lead.company_id = lead.team_id.company_id
|
||||
elif lead.user_id:
|
||||
if self.env.company in lead.user_id.company_ids:
|
||||
proposal = self.env.company
|
||||
lead.company_id = self.env.company
|
||||
else:
|
||||
proposal = lead.user_id.company_id & self.env.companies
|
||||
lead.company_id = lead.user_id.company_id & self.env.companies
|
||||
elif lead.partner_id:
|
||||
proposal = lead.partner_id.company_id
|
||||
lead.company_id = lead.partner_id.company_id
|
||||
else:
|
||||
proposal = False
|
||||
|
||||
# set a new company
|
||||
if lead.company_id != proposal:
|
||||
lead.company_id = proposal
|
||||
lead.company_id = False
|
||||
|
||||
@api.depends('team_id', 'type')
|
||||
def _compute_stage_id(self):
|
||||
|
||||
Reference in New Issue
Block a user