From f52cd06996960807323abbe4afb60cc90d107a57 Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Wed, 13 Apr 2011 15:37:29 +0530 Subject: [PATCH] [FIX]: Correct contact and add contact link with account bzr revid: atp@tinyerp.com-20110413100729-uuh8fxc0mn67zlj5 --- addons/import_sugarcrm/import_sugarcrm.py | 27 +++++++++++++---------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/addons/import_sugarcrm/import_sugarcrm.py b/addons/import_sugarcrm/import_sugarcrm.py index b7f68aae4ef..a2ef4591cec 100644 --- a/addons/import_sugarcrm/import_sugarcrm.py +++ b/addons/import_sugarcrm/import_sugarcrm.py @@ -778,16 +778,19 @@ def get_opportunity_contact(sugar_obj,cr,uid, PortType, sessionid, val, partner_ partner_address_obj = sugar_obj.pool.get('res.partner.address') model_account_ids = model_obj.search(cr, uid, [('res_id', '=', partner_xml_id[0]), ('model', '=', 'res.partner'), ('module', '=', 'sugarcrm_import')]) model_xml_id = model_obj.browse(cr, uid, model_account_ids)[0].name - sugar_account_contact = sugar.relation_search(PortType, sessionid, 'Accounts', module_id=model_xml_id, related_module='Contacts', query=None, deleted=None) - for contact in sugar_account_contact: - model_ids = find_mapped_id(sugar_obj, cr, uid, 'res.partner.address', contact, context) - if model_ids: - model_id = model_obj.browse(cr, uid, model_ids)[0].res_id - address_id = partner_address_obj.browse(cr, uid, model_id) - partner_address_obj.write(cr, uid, [address_id.id], {'partner_id': partner_xml_id[0]}) - partner_contact_name = address_id.name - else: - partner_contact_name = val.get('account_name') + sugar_account_contact = set(sugar.relation_search(PortType, sessionid, 'Accounts', module_id=model_xml_id, related_module='Contacts', query=None, deleted=None)) + sugar_opportunities_contact = set(sugar.relation_search(PortType, sessionid, 'Opportunities', module_id=val.get('id'), related_module='Contacts', query=None, deleted=None)) + sugar_contact = list(sugar_account_contact.intersection(sugar_opportunities_contact)) + if sugar_contact: + for contact in sugar_contact: + model_ids = find_mapped_id(sugar_obj, cr, uid, 'res.partner.address', contact, context) + if model_ids: + model_id = model_obj.browse(cr, uid, model_ids)[0].res_id + address_id = partner_address_obj.browse(cr, uid, model_id) + partner_address_obj.write(cr, uid, [address_id.id], {'partner_id': partner_xml_id[0]}) + partner_contact_name = address_id.name + else: + partner_contact_name = val.get('account_name') return partner_contact_name def import_opportunities(sugar_obj, cr, uid, context=None): @@ -826,7 +829,7 @@ def import_opportunities(sugar_obj, cr, uid, context=None): return True MAP_FIELDS = {'Opportunities': #Object Mapping name - {'dependencies' : ['Users', 'Accounts'], #Object to import before this table + {'dependencies' : ['Users', 'Accounts', 'Contacts'], #Object to import before this table 'process' : import_opportunities, }, 'Leads': @@ -872,7 +875,7 @@ MAP_FIELDS = {'Opportunities': #Object Mapping name 'Project Tasks': {'dependencies' : ['Users', 'Projects'], 'process' : import_project_tasks, - }, + }, 'Resources': {'dependencies' : ['Users'], 'process' : import_resources,