[IMP] take both partner_name AND contact_name into account while looking for a matching partner

slightly improve code style

bzr revid: abo@openerp.com-20121112142158-5kgxn23ji5ubuura
This commit is contained in:
Antonin Bourguignon 2012-11-12 15:21:58 +01:00
parent c81f215cf5
commit 357a407738
1 changed files with 12 additions and 6 deletions

View File

@ -24,7 +24,7 @@ from tools.translate import _
class crm_generate_partner(osv.osv_memory): class crm_generate_partner(osv.osv_memory):
""" """
Handle the partner generation from any CRM item (lead, phonecall, ...) Handle the partner generation from any CRM item (lead, phonecall)
either by explicitly converting the element to a partner, either by either by explicitly converting the element to a partner, either by
triggering an action that will create a partner (e.g. convert a lead into triggering an action that will create a partner (e.g. convert a lead into
an opportunity). an opportunity).
@ -55,22 +55,28 @@ class crm_generate_partner(osv.osv_memory):
if (context.get('active_model') == 'crm.lead') and context.get('active_id'): if (context.get('active_model') == 'crm.lead') and context.get('active_id'):
lead_obj = self.pool.get('crm.lead') lead_obj = self.pool.get('crm.lead')
lead = lead_obj.browse(cr, uid, context.get('active_id'), context=context) lead = lead_obj.browse(cr, uid, context.get('active_id'), context=context)
# A partner is set already
if lead.partner_id: if lead.partner_id:
partner_id = lead.partner_id.id partner_id = lead.partner_id.id
if lead.email_from: # Search through the existing partners based on the lead's email
elif lead.email_from:
partner_ids = partner_obj.search(cr, uid, [('email', '=', lead.email_from)], context=context) partner_ids = partner_obj.search(cr, uid, [('email', '=', lead.email_from)], context=context)
if partner_ids: if partner_ids:
partner_id = partner_ids[0] partner_id = partner_ids[0]
if not lead.partner_id and lead.partner_name: # Search through the existing partners based on the lead's partner or contact name
partner_ids = partner_obj.search(cr, uid, [('name', '=', lead.partner_name)], context=context) elif lead.partner_name:
partner_ids = partner_obj.search(cr, uid, [('name', 'ilike', '%'+lead.partner_name+'%')], context=context)
if partner_ids:
partner_id = partner_ids[0]
elif lead.contact_name:
partner_ids = partner_obj.search(cr, uid, [
('name', 'ilike', '%'+lead.contact_name+'%')], context=context)
if partner_ids: if partner_ids:
partner_id = partner_ids[0] partner_id = partner_ids[0]
elif (context.get('active_model') == 'crm.phonecall') and context.get('active_id'): elif (context.get('active_model') == 'crm.phonecall') and context.get('active_id'):
phonecall_obj = self.pool.get('crm.phonecall') phonecall_obj = self.pool.get('crm.phonecall')
phonecall = phonecall_obj.browse(cr, uid, context.get('active_id'), context=context) phonecall = phonecall_obj.browse(cr, uid, context.get('active_id'), context=context)
print ">>>>>>>>>> Phonecall case"
#do stuff #do stuff
return partner_id return partner_id
def default_get(self, cr, uid, fields, context=None): def default_get(self, cr, uid, fields, context=None):