[ADD]: Add Partner to Project Module.

bzr revid: atp@tinyerp.com-20110413132240-xxxjbbdh7vkl02jw
This commit is contained in:
Atul Patel (OpenERP)
2011-04-13 18:52:40 +05:30
parent b9223a385d
commit a6a69bd01e
2 changed files with 25 additions and 2 deletions
+1 -1
View File
@@ -27,7 +27,7 @@
"Contacts", "Employees", Meetings, Phonecalls, Emails, and Project, Project Tasks Data into OpenERP Module.""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
'depends': ['crm', 'hr', 'project'],
'depends': ['crm', 'hr', 'project', 'project_timesheet'],
'init_xml': [],
'update_xml': ["wizard/sugarcrm_login_view.xml",
"wizard/import_message_view.xml",
+24 -1
View File
@@ -733,6 +733,24 @@ def import_emails(sugar_obj, cr, uid, context=None):
mailgate_obj.import_data(cr, uid, fields, [datas], mode='update', current_module='sugarcrm_import', noupdate=True, context=context)
return True
def get_project_account(sugar_obj,cr,uid, PortType, sessionid, val, context=None):
if not context:
context={}
partner_id = False
partner_invoice_id = False
model_obj = sugar_obj.pool.get('ir.model.data')
partner_obj = sugar_obj.pool.get('res.partner')
partner_address_obj = sugar_obj.pool.get('res.partner.address')
sugar_project_account = sugar.relation_search(PortType, sessionid, 'Project', module_id=val.get('id'), related_module='Accounts', query=None, deleted=None)
for account_id in sugar_project_account:
model_ids = find_mapped_id(sugar_obj, cr, uid, 'res.partner', account_id, context)
if model_ids:
model_id = model_obj.browse(cr, uid, model_ids)[0].res_id
partner_id = partner_obj.browse(cr, uid, model_id).id
address_ids = partner_address_obj.search(cr, uid, [('partner_id', '=', partner_id),('type', '=', 'invoice')])
partner_invoice_id = address_ids[0]
return partner_id, partner_invoice_id
def import_projects(sugar_obj, cr, uid, context=None):
if not context:
context = {}
@@ -741,12 +759,17 @@ def import_projects(sugar_obj, cr, uid, context=None):
'date_start': 'estimated_start_date',
'date': 'estimated_end_date',
'user_id/id': 'assigned_user_id',
'partner_id/.id': 'partner_id/.id',
'contact_id/.id': 'contact_id/.id',
'state': 'state'
}
project_obj = sugar_obj.pool.get('project.project')
PortType, sessionid = sugar.login(context.get('username', ''), context.get('password', ''), context.get('url',''))
sugar_data = sugar.search(PortType, sessionid, 'Project')
for val in sugar_data:
partner_id, partner_invoice_id = get_project_account(sugar_obj,cr,uid, PortType, sessionid, val, context)
val['partner_id/.id'] = partner_id
val['contact_id/.id'] = partner_invoice_id
val['state'] = get_project_state(sugar_obj, cr, uid, val.get('status'),context)
fields, datas = sugarcrm_fields_mapping.sugarcrm_fields_mapp(val, map_project)
project_obj.import_data(cr, uid, fields, [datas], mode='update', current_module='sugarcrm_import', noupdate=True, context=context)
@@ -919,7 +942,7 @@ MAP_FIELDS = {'Opportunities': #Object Mapping name
'process' : import_emails,
},
'Projects':
{'dependencies' : ['Users'],
{'dependencies' : ['Users', 'Accounts', 'Contacts'],
'process' : import_projects,
},
'Project Tasks':