+
+ """
+ import Documents
+ """
+
+ def import_related_document(self, val):
+ res_model = False
+ res_id = False
+ sugar_document_account = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Documents', module_id=val.get('id'), related_module='Accounts', query=None, deleted=None)
+ sugar_document_contact = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Documents', module_id=val.get('id'), related_module=self.TABLE_CONTACT, query=None, deleted=None)
+ sugar_document_opportunity = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Documents', module_id=val.get('id'), related_module=self.TABLE_OPPORTUNITY, query=None, deleted=None)
+ sugar_document_case = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Documents', module_id=val.get('id'), related_module=self.TABLE_CASE, query=None, deleted=None)
+ sugar_document_bug = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Documents', module_id=val.get('id'), related_module=self.TABLE_BUG, query=None, deleted=None)
+ if sugar_document_account:
+ res_id = self.get_mapped_id(self.TABLE_ACCOUNT,sugar_document_account[0])
+ res_model = 'res.partner'
+ elif sugar_document_contact:
+ res_id = self.get_mapped_id(self.TABLE_CONTACT, sugar_document_contact[0])
+ res_model = 'res.partner.address'
+ elif sugar_document_opportunity:
+ res_id = self.get_mapped_id(self.TABLE_OPPORTUNITY, sugar_document_opportunity[0])
+ res_model = 'crm.lead'
+ elif sugar_document_case:
+ res_id = self.get_mapped_id(self.TABLE_CASE, sugar_document_case[0])
+ res_model = 'crm.claim'
+ elif sugar_document_bug:
+ res_id = self.get_mapped_id(self.TABLE_BUG, sugar_document_bug[0])
+ res_model = 'project.issue'
+ return res_id,res_model
+
+ def import_document(self, val):
+ File,Filename = sugar.get_document_revision_search(self.context.get('port'), self.context.get('session_id'), val.get('document_revision_id'))
+ #File = base64.encodestring(File)
+ res_id, res_model = self.import_related_document(val)
+ val['res_id'] = res_id
+ val['res_model'] = res_model
+ if File:
+ val['datas'] = File
+ val['datas_fname'] = Filename
+ return val
+
+ def get_document_mapping(self):
+ return {
+ 'model' : 'ir.attachment',
+ 'dependencies' : [self.TABLE_USER],
+ 'hook' : self.import_document,
+ 'map' : {
+ 'name':'document_name',
+ 'description': ppconcat('description'),
+ 'datas': 'datas',
+ 'datas_fname': 'datas_fname',
+ 'res_model': 'res_model',
+ 'res_id': 'res_id',
+ }
+ }
+
+
+ """
+ import Emails
+ """
+
+
+ def import_email(self, val):
+ vals = sugar.email_search(self.context.get('port'), self.context.get('session_id'), self.TABLE_EMAIL, val.get('id'))
+ model_obj = self.obj.pool.get('ir.model.data')
+ for val in vals:
+ xml_id = self.xml_id_exist(val.get('parent_type'), val.get('parent_id'))
+ model_ids = model_obj.search(self.cr, self.uid, [('name', 'like', xml_id)])
+ if model_ids:
+ model = model_obj.browse(self.cr, self.uid, model_ids)[0]
+ if model.model == 'res.partner':
+ val['partner_id/.id'] = model.res_id
+ else:
+ val['res_id'] = model.res_id
+ val['model'] = model.model
+ return val
+
+ def get_email_mapping(self):
+ return {
+ 'model' : 'mail.message',
+ 'dependencies' : [self.TABLE_USER, self.TABLE_ACCOUNT, self.TABLE_CONTACT, self.TABLE_LEAD, self.TABLE_OPPORTUNITY, self.TABLE_MEETING, self.TABLE_CALL],
+ 'hook' : self.import_email,
+ 'map' : {
+ 'subject':'name',
+ 'state' : const('received'),
+ 'date':'date_sent',
+ 'email_from': 'from_addr_name',
+ 'email_to': 'to_addrs_names',
+ 'email_cc': 'cc_addrs_names',
+ 'email_bcc': 'bcc_addrs_names',
+ 'message_id': 'message_id',
+ 'res_id': 'res_id',
+ 'model': 'model',
+ 'partner_id/.id': 'partner_id/.id',
+ 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'),
+ 'body_text': 'description',
+ 'body_html' : 'description_html',
+
+ }
+ }
+
+ """
+ import History(Notes)
+ """
+
+
+ def import_history(self, val):
+ model_obj = self.obj.pool.get('ir.model.data')
+ xml_id = self.xml_id_exist(val.get('parent_type'), val.get('parent_id'))
+ model_ids = model_obj.search(self.cr, self.uid, [('name', 'like', xml_id)])
+ if model_ids:
+ model = model_obj.browse(self.cr, self.uid, model_ids)[0]
+ if model.model == 'res.partner':
+ val['partner_id/.id'] = model.res_id
+ val['res_id'] = model.res_id
+ val['model'] = model.model
+ File, Filename = sugar.attachment_search(self.context.get('port'), self.context.get('session_id'), self.TABLE_NOTE, val.get('id'))
+ if File:
+ val['datas'] = File
+ val['datas_fname'] = Filename
+ return val
+
+ def get_history_mapping(self):
+ return {
+ 'model' : 'ir.attachment',
+ 'dependencies' : [self.TABLE_USER, self.TABLE_ACCOUNT, self.TABLE_CONTACT, self.TABLE_LEAD, self.TABLE_OPPORTUNITY, self.TABLE_MEETING, self.TABLE_CALL, self.TABLE_EMAIL],
+ 'hook' : self.import_history,
+ 'map' : {
+ 'name':'name',
+ 'user_id/id': ref(self.TABLE_USER, 'created_by'),
+ 'description': ppconcat('description', 'description_html'),
+ 'res_id': 'res_id',
+ 'res_model': 'model',
+ 'partner_id/.id' : 'partner_id/.id',
+ 'datas' : 'datas',
+ 'datas_fname' : 'datas_fname'
+ }
+ }
+