diff --git a/addons/base_setup/base_setup_views.xml b/addons/base_setup/base_setup_views.xml
index cbfcbf4fb8c..afc64d3f83c 100644
--- a/addons/base_setup/base_setup_views.xml
+++ b/addons/base_setup/base_setup_views.xml
@@ -70,7 +70,6 @@
-
2
@@ -222,7 +221,6 @@
-
1
diff --git a/addons/crm/crm_installer.py b/addons/crm/crm_installer.py
index 595cfbc2382..1c24f0eb534 100644
--- a/addons/crm/crm_installer.py
+++ b/addons/crm/crm_installer.py
@@ -30,6 +30,7 @@ class crm_installer(osv.osv_memory):
'crm_helpdesk': fields.boolean('Helpdesk', help="Manages a Helpdesk service."),
'crm_fundraising': fields.boolean('Fundraising', help="This may help associations in their fundraising process and tracking."),
'crm_claim': fields.boolean('Claims', help="Manages the suppliers and customers claims, including your corrective or preventive actions."),
+ 'import_sugarcrm': fields.boolean('Import Data from SugarCRM', help="Help you to import and update data from SugarCRM to OpenERP"),
'crm_caldav': fields.boolean('Calendar Synchronizing', help="Helps you to synchronize the meetings with other calendar clients and mobiles."),
'sale_crm': fields.boolean('Opportunity to Quotation', help="Create a Quotation from an Opportunity."),
'fetchmail': fields.boolean('Fetch Emails', help="Allows you to receive E-Mails from POP/IMAP server."),
diff --git a/addons/crm/crm_installer_view.xml b/addons/crm/crm_installer_view.xml
index 9e820075aa7..e517d242f5c 100644
--- a/addons/crm/crm_installer_view.xml
+++ b/addons/crm/crm_installer_view.xml
@@ -16,6 +16,7 @@
+
diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml
index befcbd7bcad..636cb8289fb 100644
--- a/addons/crm/crm_meeting_view.xml
+++ b/addons/crm/crm_meeting_view.xml
@@ -58,7 +58,7 @@
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/addons/import_base/import_framework.py b/addons/import_base/import_framework.py
index 9b25ecb1ecf..b558b24696f 100644
--- a/addons/import_base/import_framework.py
+++ b/addons/import_base/import_framework.py
@@ -22,11 +22,13 @@ import pprint
import mapper
import pooler
import tools
-
+from tools.translate import _
from threading import Thread
import datetime
import logging
+import StringIO
+import traceback
pp = pprint.PrettyPrinter(indent=4)
@@ -46,8 +48,10 @@ class import_framework(Thread):
"""
DO_NOT_FIND_DOMAIN = [('id', '=', 0)]
+ #TODO don't use context to pass credential parameters
def __init__(self, obj, cr, uid, instance_name, module_name, email_to_notify=False, context=None):
Thread.__init__(self)
+ self.external_id_field = 'id'
self.obj = obj
self.cr = cr
self.uid = uid
@@ -56,10 +60,9 @@ class import_framework(Thread):
self.context = context or {}
self.email = email_to_notify
self.table_list = []
+ self.logger = logging.getLogger('import_framework')
self.initialize()
-
-
-
+
"""
Abstract Method to be implemented in
the real instance
@@ -71,6 +74,13 @@ class import_framework(Thread):
"""
pass
+ def init_run(self):
+ """
+ call after intialize run in the thread, not in the main process
+ TO use for long initialization operation
+ """
+ pass
+
def get_data(self, table):
"""
@return: a list of dictionaries
@@ -78,6 +88,22 @@ class import_framework(Thread):
"""
return [{}]
+ def get_link(self, from_table, ids, to_table):
+ """
+ @return: a dictionaries that contains the association between the id (from_table)
+ and the list (to table) of id linked
+ """
+ return {}
+
+ def get_external_id(self, data):
+ """
+ @return the external id
+ the default implementation return self.external_id_field (that has 'id') by default
+ if the name of id field is different, you can overwrite this method or change the value
+ of self.external_id_field
+ """
+ return data[self.external_id_field]
+
def get_mapping(self):
"""
@return: { TABLE_NAME : {
@@ -140,7 +166,7 @@ class import_framework(Thread):
and each data_i have a external id => in data_id['id']
"""
if not datas:
- return (0, 'No data in this table')
+ return (0, 'No data found')
mapping['id'] = 'id_new'
res = []
@@ -154,14 +180,15 @@ class import_framework(Thread):
for k, field_name in self_dependencies:
data[k] = data.get(field_name) and self._generate_xml_id(data.get(field_name), table)
- data['id_new'] = self._generate_xml_id(data['id'], table)
+ data['id_new'] = self._generate_xml_id(self.get_external_id(data), table)
fields, values = self._fields_mapp(data, mapping, table)
res.append(values)
model_obj = self.obj.pool.get(model)
if not model_obj:
- raise ValueError("%s is not a valid model name" % model)
-
+ raise ValueError(_("%s is not a valid model name") % model)
+ self.logger.debug(_("fields imported : "))
+ self.logger.debug(fields)
(p, r, warning, s) = model_obj.import_data(self.cr, self.uid, fields, res, mode='update', current_module=self.module_name, noupdate=True, context=self.context)
for (field, field_name) in self_dependencies:
self._import_self_dependencies(model_obj, field, datas)
@@ -296,10 +323,14 @@ class import_framework(Thread):
"""
domain_search = not domain_search and [('name', 'ilike', name)] or domain_search
obj = self.obj.pool.get(model)
+ if not obj: #if the model doesn't exist
+ return False
+
xml_id = self._generate_xml_id(name, table)
xml_ref = self.mapped_id_if_exist(model, domain_search, table, name)
fields.append('id')
data.append(xml_id)
+
obj.import_data(self.cr, self.uid, fields, [data], mode='update', current_module=self.module_name, noupdate=True, context=self.context)
return xml_ref or xml_id
@@ -343,8 +374,10 @@ class import_framework(Thread):
"""
self.data_started = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
self.cr = pooler.get_db(self.cr.dbname).cursor()
+ error = False
+ result = []
try:
- result = []
+ self.init_run()
imported = set() #to invoid importing 2 times the sames modules
for table in self.table_list:
to_import = self.get_mapping()[table].get('import', True)
@@ -352,16 +385,22 @@ class import_framework(Thread):
res = self._resolve_dependencies(self.get_mapping()[table].get('dependencies', []), imported)
result.extend(res)
if to_import:
+ self.logger.debug(_("import : ") + table )
(position, warning) = self._import_table(table)
result.append((table, position, warning))
imported.add(table)
self.cr.commit()
-
+
+ except Exception, err:
+ sh = StringIO.StringIO()
+ traceback.print_exc(file=sh)
+ error = sh.getvalue()
+ print error
finally:
self.cr.close()
+
self.date_ended = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
- self._send_notification_email(result)
-
+ self._send_notification_email(result, error)
def _resolve_dependencies(self, dep, imported):
"""
@@ -375,25 +414,29 @@ class import_framework(Thread):
res = self._resolve_dependencies(self.get_mapping()[dependency].get('dependencies', []), imported)
result.extend(res)
if to_import:
+ self.logger.debug("import dependency : " + dependency)
r = self._import_table(dependency)
(position, warning) = r
result.append((dependency, position, warning))
imported.add(dependency)
return result
- def _send_notification_email(self, result):
- if not self.email:
- return
+ def _send_notification_email(self, result, error):
+ if not self.email or not self.email[0]:
+ return False
+
tools.email_send(
- 'import_sugarcrm@module.openerp',
+ 'import@module.openerp',
self.email,
- self.get_email_subject(result),
- self.get_email_body(result),
+ self.get_email_subject(result, error),
+ self.get_email_body(result, error),
)
- logger = logging.getLogger('import_sugarcam')
- logger.info("Import finished, notification email sended")
+ if error:
+ self.logger.error(_("Import failed due to an unexpected error"))
+ else:
+ self.logger.info(_("Import finished, notification email sended"))
- def get_email_subject(self, result):
+ def get_email_subject(self, result, error=False):
"""
This method define the subject of the email send by openerp at the end of import
@param result: a list of tuple
@@ -401,9 +444,11 @@ class import_framework(Thread):
@return the subject of the mail
"""
- return "Import of your data finished at %s" % self.date_ended
+ if error:
+ return _("Data Import failed at %s due to an unexpected error") % self.date_ended
+ return _("Import of your data finished at %s") % self.date_ended
- def get_email_body(self, result):
+ def get_email_body(self, result, error=False):
"""
This method define the body of the email send by openerp at the end of import. The body is separated in two part
the header (@see get_body_header), and the generate body with the list of table and number of record imported.
@@ -414,19 +459,43 @@ class import_framework(Thread):
"""
- body = "started at %s and finished at %s \n" % (self.data_started, self.date_ended)
+ body = _("started at %s and finished at %s \n") % (self.data_started, self.date_ended)
+ if error:
+ body += _("but failed, in consequence no data were imported to keep database consistency \n error : \n") + error
+
for (table, nb, warning) in result:
if not warning:
- warning = "with no warning"
+ warning = _("with no warning")
else:
- warning = "with warning : %s" % warning
- body += "%s records were imported from table %s, %s \n" % (nb, table, warning)
+ warning = _("with warning : %s") % warning
+ body += _("%s has been successfully imported from %s %s, %s \n") % (nb, self.instance_name, table, warning)
return self.get_body_header(result) + "\n\n" + body
def get_body_header(self, result):
"""
@return the first sentences written in the mail's body
"""
- return "The import of data \n instance name : %s \n" % self.instance_name
+ return _("The import of data \n instance name : %s \n") % self.instance_name
-#For example of use see import_sugarcrm
+
+ #TODO documentation test
+ def run_test(self):
+ back_get_data = self.get_data
+ back_get_link = self.get_link
+ back_init = self.initialize
+ self.get_data = self.get_data_test
+ self.get_link = self.get_link_test
+ self.initialize = self.intialize_test
+ self.run()
+ self.get_data = back_get_data
+ self.get_link = back_get_link
+ self.initialize = back_init
+
+ def get_data_test(self, table):
+ return [{}]
+
+ def get_link_test(self, from_table, ids, to_table):
+ return {}
+
+ def intialize_test(self):
+ pass
diff --git a/addons/import_base/mapper.py b/addons/import_base/mapper.py
index 7f97ed0b615..0827509ffab 100644
--- a/addons/import_base/mapper.py
+++ b/addons/import_base/mapper.py
@@ -18,7 +18,7 @@
# along with this program. If not, see .
#
##############################################################################
-
+import tools
class mapper(object):
"""
@@ -50,14 +50,13 @@ class concat(mapper):
Use : contact('field_name1', 'field_name2', delimiter='_')
concat value of fields using the delimiter, delimiter is optional
and by default is a space
-
"""
def __init__(self, *arg, **delimiter):
self.arg = arg
self.delimiter = delimiter and delimiter.get('delimiter', ' ') or ' '
def __call__(self, external_values):
- return self.delimiter.join(map(lambda x : external_values.get(x,''), self.arg))
+ return self.delimiter.join(map(lambda x : tools.ustr(external_values.get(x,'')), self.arg))
class ppconcat(mapper):
"""
@@ -71,7 +70,7 @@ class ppconcat(mapper):
self.delimiter = delimiter and delimiter.get('delimiter', ' ') or '\n\n'
def __call__(self, external_values):
- return self.delimiter.join(map(lambda x : x + ": " + external_values.get(x,''), self.arg))
+ return self.delimiter.join(map(lambda x : x + ": " + tools.ustr(external_values.get(x,'')), self.arg))
class const(mapper):
"""
@@ -105,7 +104,6 @@ class value(mapper):
val = external_values.get(self.fallback, self.default)
return val
-
class map_val(mapper):
"""
@@ -169,5 +167,3 @@ class call(mapper):
else:
args.append(arg)
return self.fun(external_values, *args)
-
-
\ No newline at end of file
diff --git a/addons/import_sugarcrm/__init__.py b/addons/import_sugarcrm/__init__.py
new file mode 100644
index 00000000000..250589105b0
--- /dev/null
+++ b/addons/import_sugarcrm/__init__.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import import_sugarcrm
+import sugar
+import wizard
+
diff --git a/addons/import_sugarcrm/__openerp__.py b/addons/import_sugarcrm/__openerp__.py
new file mode 100644
index 00000000000..071f58099b3
--- /dev/null
+++ b/addons/import_sugarcrm/__openerp__.py
@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+{
+ 'name': 'Import SugarCRM Data into OpenERP Module.',
+ 'version': '1.0',
+ 'category': 'Generic Modules',
+ 'description': """This Module Import SugarCRM "Leads", "Opportunities", "Users", "Accounts",
+ "Contacts", "Employees", Meetings, Phonecalls, Emails, and Project, Project Tasks Data into OpenERP Module.""",
+ 'author': 'OpenERP SA',
+ 'website': 'http://www.openerp.com',
+ 'depends': ['import_base','crm', 'document'],
+ 'init_xml': [],
+ 'update_xml': ["wizard/import_message_view.xml",
+ "import_sugarcrm_view.xml"],
+ 'demo_xml': [],
+ 'test': [],
+ 'installable': True,
+ 'active': False,
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/import_sugarcrm/doc/import_sugarcrm_installation_manual.odt b/addons/import_sugarcrm/doc/import_sugarcrm_installation_manual.odt
new file mode 100644
index 00000000000..2dfde16bc97
Binary files /dev/null and b/addons/import_sugarcrm/doc/import_sugarcrm_installation_manual.odt differ
diff --git a/addons/import_sugarcrm/doc/import_sugarcrm_user_manual.odt b/addons/import_sugarcrm/doc/import_sugarcrm_user_manual.odt
new file mode 100644
index 00000000000..2a16eeb566c
Binary files /dev/null and b/addons/import_sugarcrm/doc/import_sugarcrm_user_manual.odt differ
diff --git a/addons/import_sugarcrm/doc/import_sugarcrm_zsi_installation.txt b/addons/import_sugarcrm/doc/import_sugarcrm_zsi_installation.txt
new file mode 100644
index 00000000000..e399d63120b
--- /dev/null
+++ b/addons/import_sugarcrm/doc/import_sugarcrm_zsi_installation.txt
@@ -0,0 +1,8 @@
+Install the SOAP framwwork for Python :
+ 1. download the soap framework from http://pypi.python.org/pypi/ZSI/
+ extract the file “ZSI-2.0-rc3.tar.gz” and run following 2 commands
+ ./setup.py build
+ ./setup.py install
+ this will install soap framework for python.
+
+or use the ZSI package of your distribution
diff --git a/addons/import_sugarcrm/import_sugarcrm.py b/addons/import_sugarcrm/import_sugarcrm.py
new file mode 100644
index 00000000000..b27748d48be
--- /dev/null
+++ b/addons/import_sugarcrm/import_sugarcrm.py
@@ -0,0 +1,1147 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+from osv import fields, osv
+import sugar
+from tools.translate import _
+from import_base.import_framework import *
+from import_base.mapper import *
+from datetime import datetime
+import base64
+import pprint
+pp = pprint.PrettyPrinter(indent=4)
+#copy old import here
+
+import htmllib
+
+def unescape_htmlentities(s):
+ p = htmllib.HTMLParser(None)
+ p.save_bgn()
+ p.feed(s)
+ return p.save_end()
+
+class related_ref(dbmapper):
+ def __init__(self, type):
+ self.type = type
+
+ def __call__(self, external_val):
+ if external_val.get('parent_type') in self.type and external_val.get('parent_id'):
+ return self.parent.xml_id_exist(external_val['parent_type'], external_val['parent_id'])
+ return ''
+
+class sugar_import(import_framework):
+ URL = False
+ TABLE_CONTACT = 'Contacts'
+ TABLE_ACCOUNT = 'Accounts'
+ TABLE_USER = 'Users'
+ TABLE_EMPLOYEE = 'Employees'
+ TABLE_RESSOURCE = "resource"
+ TABLE_OPPORTUNITY = 'Opportunities'
+ TABLE_LEAD = 'Leads'
+ TABLE_STAGE = 'crm_stage'
+ TABLE_ATTENDEE = 'calendar_attendee'
+ TABLE_CALL = 'Calls'
+ TABLE_MEETING = 'Meetings'
+ TABLE_TASK = 'Tasks'
+ TABLE_PROJECT = 'Project'
+ TABLE_PROJECT_TASK = 'ProjectTask'
+ TABLE_BUG = 'Bugs'
+ TABLE_CASE = 'Cases'
+ TABLE_NOTE = 'Notes'
+ TABLE_EMAIL = 'Emails'
+ TABLE_COMPAIGN = 'Campaigns'
+ TABLE_DOCUMENT = 'Documents'
+ TABLE_HISTORY_ATTACHMNET = 'history_attachment'
+
+ MAX_RESULT_PER_PAGE = 200
+
+ def initialize(self):
+ #login
+ PortType,sessionid = sugar.login(self.context.get('username',''), self.context.get('password',''), self.context.get('url',''))
+ if sessionid == '-1':
+ raise osv.except_osv(_('Error !'), _('Authentication error !\nBad Username or Password or bad SugarSoap Api url !'))
+ self.context['port'] = PortType
+ self.context['session_id'] = sessionid
+
+ def get_data(self, table):
+ offset = 0
+ res = []
+ while True:
+ r = sugar.search(self.context.get('port'), self.context.get('session_id'), table, offset, self.MAX_RESULT_PER_PAGE)
+ res.extend(r)
+ if len(r) < self.MAX_RESULT_PER_PAGE:
+ break;
+ offset += self.MAX_RESULT_PER_PAGE
+ return res
+
+ #def get_link(self, from_table, ids, to_table):
+ #return sugar.relation_search(self.context.get('port'), self.context.get('session_id'), from_table, module_id=ids, related_module=to_table)
+
+ """
+ Common import method
+ """
+ def get_category(self, val, model, name):
+ fields = ['name', 'object_id']
+ data = [name, model]
+ return self.import_object(fields, data, 'crm.case.categ', 'crm_categ', name, [('object_id.model','=',model), ('name', 'ilike', name)])
+
+ def get_job_title(self, dict, salutation):
+ fields = ['shortcut', 'name', 'domain']
+ if salutation:
+ data = [salutation, salutation, 'Contact']
+ return self.import_object(fields, data, 'res.partner.title', 'contact_title', salutation, [('shortcut', '=', salutation)])
+
+ def get_channel_id(self, dict, val):
+ if not val:
+ return False
+ fields = ['name']
+ data = [val]
+ return self.import_object(fields, data, 'res.partner.canal', 'crm_channel', val)
+
+ def get_all_states(self, external_val, country_id):
+ """Get states or create new state unless country_id is False"""
+ state_code = external_val[0:3] #take the tree first char
+ fields = ['country_id/id', 'name', 'code']
+ data = [country_id, external_val, state_code]
+ if country_id:
+ return self.import_object(fields, data, 'res.country.state', 'country_state', external_val)
+ return False
+
+ def get_all_countries(self, val):
+ """Get Country, if no country match do not create anything, to avoid duplicate country code"""
+ return self.mapped_id_if_exist('res.country', [('name', 'ilike', val)], 'country', val)
+
+ def get_float_time(self, dict, hour, min):
+ min = int(min) * 100 / 60
+ return "%s.%i" % (hour, min)
+
+ """
+ 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' : 'mailgate.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' : {
+ 'name':'name',
+ 'history' : const("1"),
+ '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'),
+ 'description': ppconcat('description', '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'
+ }
+ }
+
+ """
+ import Claims(Cases)
+ """
+ def get_claim_priority(self, val):
+ priority_dict = {
+ 'P1': '2',
+ 'P2': '3',
+ 'P3': '4'
+ }
+ return priority_dict.get(val.get('priority'), '')
+
+ def get_contact_info_from_account(self, val):
+ partner_id = self.get_mapped_id(self.TABLE_ACCOUNT, val.get('account_id'))
+ partner_address_id = False
+ partner_phone = False
+ partner_email = False
+ partner = self.obj.pool.get('res.partner').browse(self.cr, self.uid, [partner_id])[0]
+ if partner.address and partner.address[0]:
+ address = partner.address[0]
+ partner_address_id = address.id
+ partner_phone = address.phone
+ partner_email = address.email
+ return partner_address_id, partner_phone,partner_email
+
+ def import_crm_claim(self, val):
+ partner_address_id, partner_phone,partner_email = self.get_contact_info_from_account(val)
+ val['partner_address_id/.id'] = partner_address_id
+ val['partner_phone'] = partner_phone
+ val['email_from'] = partner_email
+ return val
+
+ def get_crm_claim_mapping(self):
+ return {
+ 'model' : 'crm.claim',
+ 'dependencies' : [self.TABLE_USER, self.TABLE_ACCOUNT, self.TABLE_CONTACT, self.TABLE_LEAD],
+ 'hook' : self.import_crm_claim,
+ 'map' : {
+ 'name': concat('case_number','name', delimiter='-'),
+ 'date': 'date_entered',
+ 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'),
+ 'description': ppconcat('description', 'resolution', 'work_log'),
+ 'partner_id/id': ref(self.TABLE_ACCOUNT, 'account_id'),
+ 'partner_address_id/.id': 'partner_address_id/.id',
+ 'categ_id/id': call(self.get_category, 'crm.claim', value('type')),
+ 'partner_phone': 'partner_phone',
+ 'email_from': 'email_from',
+ 'priority': self.get_claim_priority,
+ 'state': map_val('status', self.project_issue_state)
+ }
+ }
+ """
+ Import Project Issue(Bugs)
+ """
+ project_issue_state = {
+ 'New' : 'draft',
+ 'Assigned':'open',
+ 'Closed': 'done',
+ 'Pending': 'pending',
+ 'Rejected': 'cancel',
+ }
+
+ def get_project_issue_priority(self, val):
+ priority_dict = {
+ 'Urgent': '1',
+ 'High': '2',
+ 'Medium': '3',
+ 'Low': '4'
+ }
+ return priority_dict.get(val.get('priority'), '')
+
+ def get_bug_project_id(self, dict, val):
+ fields = ['name']
+ data = [val]
+ return self.import_object(fields, data, 'project.project', 'project_issue', val)
+
+ def get_project_issue_mapping(self):
+ return {
+ 'model' : 'project.issue',
+ 'dependencies' : [self.TABLE_USER],
+ 'map' : {
+ 'name': concat('bug_number', 'name', delimiter='-'),
+ 'project_id/id': call(self.get_bug_project_id, 'sugarcrm_bugs'),
+ 'categ_id/id': call(self.get_category, 'project.issue', value('type')),
+ 'description': ppconcat('description', 'source', 'resolution', 'work_log', 'found_in_release', 'release_name', 'fixed_in_release_name', 'fixed_in_release'),
+ 'priority': self.get_project_issue_priority,
+ 'state': map_val('status', self.project_issue_state),
+ 'assigned_to/id' : ref(self.TABLE_USER, 'assigned_user_id'),
+ }
+ }
+
+ """
+ import Project Tasks
+ """
+ project_task_state = {
+ 'Not Started': 'draft',
+ 'In Progress': 'open',
+ 'Completed': 'done',
+ 'Pending Input': 'pending',
+ 'Deferred': 'cancelled',
+ }
+
+ def get_project_task_priority(self, val):
+ priority_dict = {
+ 'High': '0',
+ 'Medium': '2',
+ 'Low': '3'
+ }
+ return priority_dict.get(val.get('priority'), '')
+
+ def get_project_task_mapping(self):
+ return {
+ 'model' : 'project.task',
+ 'dependencies' : [self.TABLE_USER, self.TABLE_PROJECT],
+ 'map' : {
+ 'name': 'name',
+ 'date_start': 'date_start',
+ 'date_end': 'date_finish',
+ 'project_id/id': ref(self.TABLE_PROJECT, 'project_id'),
+ 'planned_hours': 'estimated_effort',
+ 'priority': self.get_project_task_priority,
+ 'description': ppconcat('description','milestone_flag', 'project_task_id', 'task_number', 'percent_complete'),
+ 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'),
+ 'partner_id/id': 'partner_id/id',
+ 'contact_id/id': 'contact_id/id',
+ 'state': map_val('status', self.project_task_state)
+ }
+ }
+
+ """
+ import Projects
+ """
+ project_state = {
+ 'Draft' : 'draft',
+ 'In Review': 'open',
+ 'Published': 'close'
+ }
+
+ def import_project_account(self, val):
+ partner_id = False
+ partner_invoice_id = False
+ sugar_project_account = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Project', module_id=val.get('id'), related_module=self.TABLE_ACCOUNT, query=None, deleted=None)
+ sugar_project_contact = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Project', module_id=val.get('id'), related_module=self.TABLE_CONTACT, query=None, deleted=None)
+ for contact_id in sugar_project_contact:
+ partner_invoice_id = self.get_mapped_id(self.TABLE_CONTACT, contact_id)
+ for account_id in sugar_project_account:
+ partner_id = self.get_mapped_id(self.TABLE_ACCOUNT, account_id)
+ return partner_id, partner_invoice_id
+
+ def import_project(self, val):
+ partner_id, partner_invoice_id = self.import_project_account(val)
+ val['partner_id/.id'] = partner_id
+ val['contact_id/.id'] = partner_invoice_id
+ return val
+
+ def get_project_mapping(self):
+ return {
+ 'model' : 'project.project',
+ 'dependencies' : [self.TABLE_CONTACT, self.TABLE_ACCOUNT, self.TABLE_USER],
+ 'hook' : self.import_project,
+ 'map' : {
+ 'name': 'name',
+ 'date_start': 'estimated_start_date',
+ 'date': 'estimated_end_date',
+ 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'),
+ 'partner_id/.id': 'partner_id/.id',
+ 'contact_id/.id': 'contact_id/.id',
+ 'state': map_val('status', self.project_state)
+ }
+ }
+
+ """
+ import Tasks
+ """
+ task_state = {
+ 'Completed' : 'done',
+ 'Not Started':'draft',
+ 'In Progress': 'open',
+ 'Pending Input': 'draft',
+ 'deferred': 'cancel'
+ }
+
+ def import_task(self, val):
+ date = val.get('date_start') or datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
+ val['date'] = ''.join(date)
+ date_deadline = val.get('date_due') or datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
+ val['date_deadline'] = ''.join(date_deadline)
+ return val
+
+ def get_task_mapping(self):
+ return {
+ 'model' : 'crm.meeting',
+ 'dependencies' : [self.TABLE_CONTACT, self.TABLE_ACCOUNT, self.TABLE_USER],
+ 'hook' : self.import_task,
+ 'map' : {
+ 'name': 'name',
+ 'date': 'date',
+ 'date_deadline': 'date_deadline',
+ 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'),
+ 'categ_id/id': call(self.get_category, 'crm.meeting', const('Tasks')),
+ 'partner_id/id': related_ref(self.TABLE_ACCOUNT),
+ 'partner_address_id/id': ref(self.TABLE_CONTACT,'contact_id'),
+ 'state': map_val('status', self.task_state)
+ }
+ }
+
+ """
+ import Calls
+ """
+ #TODO adapt with project trunk-crm-imp
+ call_state = {
+ 'Planned' : 'open',
+ 'Held':'done',
+ 'Not Held': 'pending',
+ }
+
+ def get_calls_mapping(self):
+ return {
+ 'model' : 'crm.phonecall',
+ 'dependencies' : [self.TABLE_ACCOUNT, self.TABLE_CONTACT, self.TABLE_OPPORTUNITY, self.TABLE_LEAD],
+ 'map' : {
+ 'name': 'name',
+ 'date': 'date_start',
+ 'duration': call(self.get_float_time, value('duration_hours'), value('duration_minutes')),
+ 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'),
+ 'partner_id/id': related_ref(self.TABLE_ACCOUNT),
+ 'partner_address_id/id': related_ref(self.TABLE_CONTACT),
+ 'categ_id/id': call(self.get_category, 'crm.phonecall', value('direction')),
+ 'opportunity_id/id': related_ref(self.TABLE_OPPORTUNITY),
+ 'description': ppconcat('description'),
+ 'state': map_val('status', self.call_state)
+ }
+ }
+
+ """
+ import meeting
+ """
+ meeting_state = {
+ 'Planned' : 'draft',
+ 'Held': 'open',
+ 'Not Held': 'draft',
+ }
+#TODO
+ def get_attendee_id(self, cr, uid, module_name, module_id):
+ contact_id = False
+ user_id = False
+ attendee_id= []
+ attendee_dict = sugar.user_get_attendee_list(self.context.get('port'), self.context.get('session_id'), module_name, module_id)
+ for attendee in attendee_dict:
+ user_id = self.xml_id_exist(self.TABLE_USER, attendee.get('id', False))
+ contact_id = False
+ if not user_id:
+ contact_id = self.xml_id_exist(self.TABLE_CONTACT, attendee.get('id', False))
+ fields = ['user_id/id', 'email', 'partner_address_id/id']
+ data = [user_id, attendee.get('email1'), contact_id]
+ attendee_xml_id = self.import_object(fields, data, 'calendar.attendee', self.TABLE_ATTENDEE, user_id or contact_id or attendee.get('email1'), ['|',('user_id', '=', attendee.get('id')),('partner_address_id','=',attendee.get('id')),('email', '=', attendee.get('email1'))])
+ attendee_id.append(attendee_xml_id)
+ return ','.join(attendee_id)
+
+ def get_alarm_id(self, dict_val, val):
+ alarm_dict = {
+ '60': '1 minute before',
+ '300': '5 minutes before',
+ '600': '10 minutes before',
+ '900': '15 minutes before',
+ '1800':'30 minutes before',
+ '3600': '1 hour before',
+ }
+ return self.mapped_id_if_exist('res.alarm', [('name', 'like', alarm_dict.get(val))], 'alarm', val)
+
+ #TODO attendees
+
+ def import_meeting(self, val):
+ attendee_id = self.get_attendee_id(self.cr, self.uid, 'Meetings', val.get('id')) #TODO
+ val['attendee_ids/id'] = attendee_id
+ return val
+
+ def get_meeting_mapping(self):
+ return {
+ 'model' : 'crm.meeting',
+ 'dependencies' : [self.TABLE_CONTACT, self.TABLE_OPPORTUNITY, self.TABLE_LEAD, self.TABLE_TASK],
+ 'hook': self.import_meeting,
+ 'map' : {
+ 'name': 'name',
+ 'date': 'date_start',
+ 'duration': call(self.get_float_time, value('duration_hours'), value('duration_minutes')),
+ 'location': 'location',
+ 'attendee_ids/id':'attendee_ids/id',
+ 'alarm_id/id': call(self.get_alarm_id, value('reminder_time')),
+ 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'),
+ 'partner_id/id': related_ref(self.TABLE_ACCOUNT),
+ 'partner_address_id/id': related_ref(self.TABLE_CONTACT),
+ 'state': map_val('status', self.meeting_state)
+ }
+ }
+
+ """
+ import Opportunity
+ """
+ opp_state = {
+ 'Need Analysis' : 'New',
+ 'Closed Lost': 'Lost',
+ 'Closed Won': 'Won',
+ 'Value Proposition': 'Proposition',
+ 'Negotiation/Review': 'Negotiation'
+ }
+
+ def get_opportunity_status(self, sugar_val):
+ fields = ['name', 'type']
+ name = 'Opportunity_' + sugar_val['sales_stage']
+ data = [sugar_val['sales_stage'], 'Opportunity']
+ return self.import_object(fields, data, 'crm.case.stage', self.TABLE_STAGE, name, [('type', '=', 'opportunity'), ('name', 'ilike', sugar_val['sales_stage'])])
+
+ def import_opportunity_contact(self, val):
+ sugar_opportunities_contact = set(sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Opportunities', module_id=val.get('id'), related_module='Contacts', query=None, deleted=None))
+
+ partner_contact_id = False
+ partner_contact_email = False
+ partner_address_obj = self.obj.pool.get('res.partner.address')
+ partner_xml_id = self.name_exist(self.TABLE_ACCOUNT, val['account_name'], 'res.partner')
+
+ for contact in sugar_opportunities_contact:
+ address_id = self.get_mapped_id(self.TABLE_CONTACT, contact)
+ if address_id:
+ address = partner_address_obj.browse(self.cr, self.uid, address_id)
+ partner_name = address.partner_id and address.partner_id.name or False
+ if not partner_name: #link with partner id
+ fields = ['partner_id/id']
+ data = [partner_xml_id]
+ self.import_object(fields, data, 'res.partner.address', self.TABLE_CONTACT, contact, self.DO_NOT_FIND_DOMAIN)
+ if not partner_name or partner_name == val.get('account_name'):
+ partner_contact_id = self.xml_id_exist(self.TABLE_CONTACT, contact)
+ partner_contact_email = address.email
+ return partner_contact_id, partner_contact_email
+
+ def import_opp(self, val):
+ partner_contact_id, partner_contact_email = self.import_opportunity_contact(val)
+ val['partner_address_id/id'] = partner_contact_id
+ val['email_from'] = partner_contact_email
+ return val
+
+ def get_opp_mapping(self):
+ return {
+ 'model' : 'crm.lead',
+ 'dependencies' : [self.TABLE_USER, self.TABLE_ACCOUNT, self.TABLE_CONTACT,self.TABLE_COMPAIGN],
+ 'hook' : self.import_opp,
+ 'map' : {
+ 'name': 'name',
+ 'probability': 'probability',
+ 'partner_id/id': refbyname(self.TABLE_ACCOUNT, 'account_name', 'res.partner'),
+ 'title_action': 'next_step',
+ 'partner_address_id/id': 'partner_address_id/id',
+ 'planned_revenue': 'amount',
+ 'date_deadline': 'date_closed',
+ 'user_id/id' : ref(self.TABLE_USER, 'assigned_user_id'),
+ 'stage_id/id' : self.get_opportunity_status,
+ 'type' : const('opportunity'),
+ 'categ_id/id': call(self.get_category, 'crm.lead', value('opportunity_type')),
+ 'email_from': 'email_from',
+ 'state': map_val('status', self.opp_state),
+ 'description' : 'description',
+ }
+ }
+
+ """
+ import campaign
+ """
+
+ def get_compaign_mapping(self):
+ return {
+ 'model' : 'crm.case.resource.type',
+ 'map' : {
+ 'name': 'name',
+ }
+ }
+
+ """
+ import lead
+ """
+ def get_lead_status(self, sugar_val):
+ fields = ['name', 'type']
+ name = 'lead_' + sugar_val.get('status', '')
+ data = [sugar_val.get('status', ''), 'lead']
+ return self.import_object(fields, data, 'crm.case.stage', self.TABLE_STAGE, name, [('type', '=', 'lead'), ('name', 'ilike', sugar_val.get('status', ''))])
+
+ lead_state = {
+ 'New' : 'draft',
+ 'Assigned':'open',
+ 'In Progress': 'open',
+ 'Recycled': 'cancel',
+ 'Dead': 'done',
+ 'Converted': 'done',
+ }
+
+ def import_lead(self, val):
+ if val.get('opportunity_id'): #if lead is converted into opp, don't import as lead
+ return False
+ if val.get('primary_address_country'):
+ country_id = self.get_all_countries(val.get('primary_address_country'))
+ val['country_id/id'] = country_id
+ val['state_id/id'] = self.get_all_states(val.get('primary_address_state'), country_id)
+ return val
+
+ def get_lead_mapping(self):
+ return {
+ 'model' : 'crm.lead',
+ 'dependencies' : [self.TABLE_COMPAIGN, self.TABLE_USER],
+ 'hook' : self.import_lead,
+ 'map' : {
+ 'name': concat('first_name', 'last_name'),
+ 'contact_name': concat('first_name', 'last_name'),
+ 'description': ppconcat('description', 'refered_by', 'lead_source', 'lead_source_description', 'website', 'email2', 'status_description', 'lead_source_description', 'do_not_call'),
+ 'partner_name': 'account_name',
+ 'email_from': 'email1',
+ 'phone': 'phone_work',
+ 'mobile': 'phone_mobile',
+ 'title/id': call(self.get_job_title, value('salutation')),
+ 'function':'title',
+ 'street': 'primary_address_street',
+ 'street2': 'alt_address_street',
+ 'zip': 'primary_address_postalcode',
+ 'city':'primary_address_city',
+ 'user_id/id' : ref(self.TABLE_USER, 'assigned_user_id'),
+ 'stage_id/id' : self.get_lead_status,
+ 'type' : const('lead'),
+ 'state': map_val('status', self.lead_state) ,
+ 'fax': 'phone_fax',
+ 'referred': 'refered_by',
+ 'optout': 'do_not_call',
+ 'channel_id/id': call(self.get_channel_id, value('lead_source')),
+ 'type_id/id': ref(self.TABLE_COMPAIGN, 'campaign_id'),
+ 'country_id/id': 'country_id/id',
+ 'state_id/id': 'state_id/id',
+ }
+ }
+
+ """
+ import contact
+ """
+
+ def get_email(self, val):
+ email_address = sugar.get_contact_by_email(self.context.get('port'), self.context.get('username'), self.context.get('password'), val.get('email1'))
+ if email_address:
+ return ','.join(email_address)
+
+ def import_contact(self, val):
+ if val.get('primary_address_country'):
+ country_id = self.get_all_countries(val.get('primary_address_country'))
+ state = self.get_all_states(val.get('primary_address_state'), country_id)
+ val['country_id/id'] = country_id
+ val['state_id/id'] = state
+ return val
+
+ def get_contact_mapping(self):
+ return {
+ 'model' : 'res.partner.address',
+ 'dependencies' : [self.TABLE_ACCOUNT],
+ 'hook' : self.import_contact,
+ 'map' : {
+ 'name': concat('first_name', 'last_name'),
+ 'partner_id/id': ref(self.TABLE_ACCOUNT,'account_id'),
+ 'phone': 'phone_work',
+ 'mobile': 'phone_mobile',
+ 'fax': 'phone_fax',
+ 'function': 'title',
+ 'street': 'primary_address_street',
+ 'zip': 'primary_address_postalcode',
+ 'city': 'primary_address_city',
+ 'country_id/id': 'country_id/id',
+ 'state_id/id': 'state_id/id',
+ 'email': self.get_email,
+ 'type': const('contact')
+ }
+ }
+
+ """
+ import Account
+ """
+
+ def get_address_type(self, val, type):
+ if type == 'invoice':
+ type_address = 'billing'
+ else:
+ type_address = 'shipping'
+
+ if type == 'default':
+ map_partner_address = {
+ 'name': 'name',
+ 'type': const('default'),
+ 'email': 'email1'
+ }
+ else:
+ map_partner_address = {
+ 'name': 'name',
+ 'phone': 'phone_office',
+ 'mobile': 'phone_mobile',
+ 'fax': 'phone_fax',
+ 'type': 'type',
+ 'street': type_address + '_address_street',
+ 'zip': type_address +'_address_postalcode',
+ 'city': type_address +'_address_city',
+ 'country_id/id': 'country_id/id',
+ 'type': 'type',
+ }
+
+ if val.get(type_address +'_address_country'):
+ country_id = self.get_all_countries(val.get(type_address +'_address_country'))
+ state = self.get_all_states(val.get(type_address +'_address_state'), country_id)
+ val['country_id/id'] = country_id
+ val['state_id/id'] = state
+
+ val['type'] = type
+ val['id_new'] = val['id'] + '_address_' + type
+ return self.import_object_mapping(map_partner_address, val, 'res.partner.address', self.TABLE_CONTACT, val['id_new'], self.DO_NOT_FIND_DOMAIN)
+
+ def get_partner_address(self, val):
+ address_id=[]
+ type_dict = {'billing_address_street' : 'invoice', 'shipping_address_street' : 'delivery', 'type': 'default'}
+ for key, type_value in type_dict.items():
+ if val.get(key):
+ id = self.get_address_type(val, type_value)
+ address_id.append(id)
+
+ return ','.join(address_id)
+
+ def get_partner_mapping(self):
+ return {
+ 'model' : 'res.partner',
+ 'dependencies' : [self.TABLE_USER],
+ 'map' : {
+ 'name': 'name',
+ 'website': 'website',
+ 'user_id/id': ref(self.TABLE_USER,'assigned_user_id'),
+ 'ref': 'sic_code',
+ 'comment': ppconcat('description', 'employees', 'ownership', 'annual_revenue', 'rating', 'industry', 'ticker_symbol'),
+ 'customer': const('1'),
+ 'supplier': const('0'),
+ 'address/id':'address/id',
+ 'parent_id/id_parent' : 'parent_id',
+ 'address/id' : self.get_partner_address,
+ }
+ }
+
+ """
+ import Employee
+ """
+ def get_ressource(self, val):
+ map_resource = {
+ 'name': concat('first_name', 'last_name'),
+ }
+ return self.import_object_mapping(map_resource, val, 'resource.resource', self.TABLE_RESSOURCE, val['id'], self.DO_NOT_FIND_DOMAIN)
+
+ def get_job_id(self, val):
+ fields = ['name']
+ data = [val.get('title')]
+ return self.import_object(fields, data, 'hr.job', 'hr_job', val.get('title'))
+
+ def get_user_address(self, val):
+ map_user_address = {
+ 'name': concat('first_name', 'last_name'),
+ 'city': 'address_city',
+ 'country_id/id': 'country_id/id',
+ 'state_id/id': 'state_id/id',
+ 'street': 'address_street',
+ 'zip': 'address_postalcode',
+ 'fax': 'phone_fax',
+ 'phone': 'phone_work',
+ 'mobile':'phone_mobile',
+ 'email': 'email1'
+ }
+
+ if val.get('address_country'):
+ country_id = self.get_all_countries(val.get('address_country'))
+ state_id = self.get_all_states(val.get('address_state'), country_id)
+ val['country_id/id'] = country_id
+ val['state_id/id'] = state_id
+
+ return self.import_object_mapping(map_user_address, val, 'res.partner.address', self.TABLE_CONTACT, val['id'], self.DO_NOT_FIND_DOMAIN)
+
+ def get_employee_mapping(self):
+ return {
+ 'model' : 'hr.employee',
+ 'dependencies' : [self.TABLE_USER],
+ 'map' : {
+ 'resource_id/id': self.get_ressource,
+ 'name': concat('first_name', 'last_name'),
+ 'work_phone': 'phone_work',
+ 'mobile_phone': 'phone_mobile',
+ 'user_id/id': ref(self.TABLE_USER, 'id'),
+ 'address_home_id/id': self.get_user_address,
+ 'notes': ppconcat('messenger_type', 'messenger_id', 'description'),
+ 'job_id/id': self.get_job_id,
+ 'work_email' : 'email1',
+ 'coach_id/id_parent' : 'reports_to_id',
+ }
+ }
+
+ """
+ import user
+ """
+ def import_user(self, val):
+ user_obj = self.obj.pool.get('res.users')
+ user_ids = user_obj.search(self.cr, self.uid, [('login', '=', val.get('user_name'))])
+ if user_ids:
+ val['.id'] = str(user_ids[0])
+ else:
+ val['password'] = 'sugarcrm' #default password for all user #TODO needed in documentation
+
+ val['context_lang'] = self.context.get('lang','en_US')
+ return val
+
+ def get_users_department(self, val):
+ dep = val.get('department')
+ fields = ['name']
+ data = [dep]
+ if not dep:
+ return False
+ return self.import_object(fields, data, 'hr.department', 'hr_department_user', dep)
+
+ def get_user_mapping(self):
+ return {
+ 'model' : 'res.users',
+ 'hook' : self.import_user,
+ 'map' : {
+ 'name': concat('first_name', 'last_name'),
+ 'login': value('user_name', fallback='last_name'),
+ 'context_lang' : 'context_lang',
+ 'password' : 'password',
+ '.id' : '.id',
+ 'context_department_id/id': self.get_users_department,
+ 'user_email' : 'email1',
+ }
+ }
+
+
+ def get_mapping(self):
+ return {
+ self.TABLE_USER : self.get_user_mapping(),
+ self.TABLE_EMPLOYEE : self.get_employee_mapping(),
+ self.TABLE_ACCOUNT : self.get_partner_mapping(),
+ self.TABLE_CONTACT : self.get_contact_mapping(),
+ self.TABLE_LEAD : self.get_lead_mapping(),
+ self.TABLE_OPPORTUNITY : self.get_opp_mapping(),
+ self.TABLE_MEETING : self.get_meeting_mapping(),
+ self.TABLE_CALL : self.get_calls_mapping(),
+ self.TABLE_TASK : self.get_task_mapping(),
+ self.TABLE_PROJECT : self.get_project_mapping(),
+ self.TABLE_PROJECT_TASK: self.get_project_task_mapping(),
+ self.TABLE_BUG: self.get_project_issue_mapping(),
+ self.TABLE_CASE: self.get_crm_claim_mapping(),
+ self.TABLE_NOTE: self.get_history_mapping(),
+ self.TABLE_EMAIL: self.get_email_mapping(),
+ self.TABLE_DOCUMENT: self.get_document_mapping(),
+ self.TABLE_COMPAIGN: self.get_compaign_mapping()
+ }
+
+ """
+ Email notification
+ """
+ def get_email_subject(self, result, error=False):
+ if error:
+ return "Sugarcrm data import failed at %s due to an unexpected error" % self.date_ended
+ return "your sugarcrm data were successfully imported at %s" % self.date_ended
+
+ def get_body_header(self, result):
+ return "Sugarcrm import : report of last import"
+
+
+class import_sugarcrm(osv.osv):
+ """Import SugarCRM DATA"""
+
+ _name = "import.sugarcrm"
+ _description = __doc__
+ _columns = {
+ 'username': fields.char('User Name', size=64, required=True),
+ 'password': fields.char('Password', size=24,required=True),
+ 'url' : fields.char('SugarSoap Api url:', size=264, required=True, help="Webservice's url where to get the data.\
+ example : 'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm application http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index"),
+ 'user' : fields.boolean('User', help="Check this box to import sugarCRM Users into OpenERP users, warning if a user with the same login exist in OpenERP, user information will be erase by sugarCRM user information", readonly=True),
+ 'opportunity': fields.boolean('Leads & Opp', help="Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads and Opportunities"),
+ 'contact': fields.boolean('Contacts', help="Check this box to import sugarCRM Contacts into OpenERP addresses"),
+ 'account': fields.boolean('Accounts', help="Check this box to import sugarCRM Accounts into OpenERP partners"),
+ 'employee': fields.boolean('Employee', help="Check this box to import sugarCRM Employees into OpenERP employees"),
+ 'meeting': fields.boolean('Meetings', help="Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings"),
+ 'call': fields.boolean('Calls', help="Check this box to import sugarCRM Calls into OpenERP calls"),
+ 'claim': fields.boolean('Cases', help="Check this box to import sugarCRM Cases into OpenERP claims"),
+ 'email_history': fields.boolean('Email and Note',help="Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP Messages and Attachments"),
+ 'project': fields.boolean('Projects', help="Check this box to import sugarCRM Projects into OpenERP projects"),
+ 'project_task': fields.boolean('Project Tasks', help="Check this box to import sugarCRM Project Tasks into OpenERP tasks"),
+ 'bug': fields.boolean('Bugs', help="Check this box to import sugarCRM Bugs into OpenERP project issues"),
+ 'document': fields.boolean('Documents', help="Check this box to import sugarCRM Documents into OpenERP documents"),
+ 'email_from': fields.char('Notify End Of Import To:', size=128),
+ 'instance_name': fields.char("Instance's Name", size=64, help="Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come from different server."),
+ }
+
+ def _get_email_id(self, cr, uid, context=None):
+ return self.pool.get('res.users').browse(cr, uid, uid, context=context).user_email
+
+ def _module_installed(self, cr, uid, model, context=None):
+ module_id = self.pool.get('ir.module.module').search(cr, uid, [('name', '=', model), ('state', "=", "installed")], context=context)
+ return bool(module_id)
+
+ def _project_installed(self, cr, uid, context=None):
+ return self._module_installed(cr,uid,'project',context=context)
+
+ def _crm_claim_installed(self, cr, uid, context=None):
+ return self._module_installed(cr,uid,'crm_claim',context=context)
+
+ def _project_issue_installed(self, cr, uid, context=None):
+ return self._module_installed(cr,uid,'project_issue',context=context)
+
+ def _hr_installed(self, cr, uid, context=None):
+ return self._module_installed(cr,uid,'hr',context=context)
+
+ _defaults = {#to be set to true, but easier for debugging
+ 'user' : True,
+ 'opportunity': True,
+ 'contact' : True,
+ 'account' : True,
+ 'employee' : _hr_installed,
+ 'meeting' : True,
+ 'call' : True,
+ 'claim' : _crm_claim_installed,
+ 'email_history' : True,
+ 'project' : _project_installed,
+ 'project_task': _project_installed,
+ 'bug': _project_issue_installed,
+ 'document': True,
+ 'instance_name': 'sugarcrm',
+ 'email_from': _get_email_id,
+ 'username' : 'admin',
+ 'password' : '',
+ 'url': "http://sugarcrm.example.com/soap.php"
+ }
+
+ def check_url(self, url, context):
+ if not context:
+ context = {}
+ user = context.get('username')
+ password = context.get('password')
+
+ try :
+ sugar.login(user, password, url)
+ return True
+ except Exception:
+ return False
+
+
+ def parse_valid_url(self, context=None):
+ if not context:
+ context = {}
+ url = context.get('url')
+ url_split = str(url).split('/')
+ while len(url_split) >= 3:
+ #3 case, soap.php is already at the end of url should be valid
+ #url end by / or not
+ if url_split[-1] == 'soap.php':
+ url = "/".join(url_split)
+ elif url_split[-1] == '':
+ url = "/".join(url_split) + "soap.php"
+ else:
+ url = "/".join(url_split) + "/soap.php"
+
+ if self.check_url(url, context):
+ return url
+ else:
+ url_split = url_split[:-1] #take parent folder
+ return url
+
+ def get_key(self, cr, uid, ids, context=None):
+ """Select Key as For which Module data we want import data."""
+ if not context:
+ context = {}
+ key_list = []
+ module = {}
+ for current in self.browse(cr, uid, ids, context):
+ context.update({'username': current.username, 'password': current.password, 'url': current.url, 'email_user': current.email_from or False, 'instance_name': current.instance_name or False})
+ if current.user:
+ key_list.append('Users')
+ if current.contact:
+ key_list.append('Contacts')
+ if current.account:
+ key_list.append('Accounts')
+ if current.opportunity:
+ key_list.append('Leads')
+ key_list.append('Opportunities')
+ if current.employee:
+ key_list.append('Employees')
+ module.update({'Employees':'hr'})
+ if current.meeting:
+ key_list.append('Meetings')
+ if current.call:
+ key_list.append('Calls')
+ if current.claim:
+ key_list.append('Cases')
+ module.update({'Cases':'crm_claim'})
+ if current.email_history:
+ key_list.append('Emails')
+ key_list.append('Notes')
+ if current.project:
+ key_list.append('Project')
+ module.update({'Project':'project'})
+ if current.project_task:
+ key_list.append('ProjectTask')
+ module.update({'ProjectTask':'project'})
+ if current.bug:
+ key_list.append('Bugs')
+ module.update({'Bugs':'project_issue'})
+ if current.document:
+ key_list.append('Documents')
+ return key_list,module
+
+
+ def do_import_all(self, cr, uid, *args):
+ """
+ scheduler Method
+ """
+ context = {'username': args[4], 'password': args[5], 'url': args[3], 'instance_name': args[3]}
+ imp = sugar_import(self, cr, uid, args[2], "import_sugarcrm", [args[1]], context)
+ imp.set_table_list(args[0])
+ imp.start()
+ return True
+
+ def import_from_scheduler_all(self, cr, uid, ids, context=None):
+ keys, module_list = self.get_key(cr, uid, ids, context)
+ if not keys:
+ raise osv.except_osv(_('Warning !'), _('Select Module to Import.'))
+ key_list = module_list.keys()
+ for module in key_list :
+ module = module_list[module]
+ state = self.get_all(cr,uid,module,context=context)
+ if state == False:
+ keys = ', '.join(key_list)
+ raise osv.except_osv(_('Error !!'), _("%s data required %s Module to be installed, Please install %s module") %(keys,module,module))
+ cron_obj = self.pool.get('ir.cron')
+ url = self.parse_valid_url(context)
+ args = (keys,context.get('email_user'), context.get('instance_name'), url, context.get('username'), context.get('password') )
+ new_create_id = cron_obj.create(cr, uid, {'name': 'Import SugarCRM datas','interval_type': 'hours','interval_number': 1, 'numbercall': -1,'model': 'import.sugarcrm','function': 'do_import_all', 'args': args, 'active': False})
+ return {
+ 'name': 'SugarCRM Scheduler',
+ 'view_type': 'form',
+ 'view_mode': 'form,tree',
+ 'res_model': 'ir.cron',
+ 'res_id': new_create_id,
+ 'type': 'ir.actions.act_window',
+ }
+
+ def import_all(self, cr, uid, ids, context=None):
+
+# """Import all sugarcrm data into openerp module"""
+ keys, module_list = self.get_key(cr, uid, ids, context)
+ if not keys:
+ raise osv.except_osv(_('Warning !'), _('Select Module to Import.'))
+ key_list = module_list.keys()
+ for module in key_list :
+ module = module_list[module]
+ state = self._module_installed(cr,uid,module,context=context)
+ if state == False:
+ keys = ', '.join(key_list)
+ raise osv.except_osv(_('Error !!'), _("%s data required %s Module to be installed, Please install %s module") %(keys,module,module))
+ url = self.parse_valid_url(context)
+ context.update({'url': url})
+ imp = sugar_import(self, cr, uid, context.get('instance_name'), "import_sugarcrm", [context.get('email_user')], context)
+ imp.set_table_list(keys)
+ imp.start()
+ obj_model = self.pool.get('ir.model.data')
+ model_data_ids = obj_model.search(cr,uid,[('model','=','ir.ui.view'),('name','=','import.message.form')])
+ resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id'])
+ return {
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'import.message',
+ 'views': [(resource_id,'form')],
+ 'type': 'ir.actions.act_window',
+ 'target': 'new',
+ }
+
+import_sugarcrm()
diff --git a/addons/import_sugarcrm/import_sugarcrm_view.xml b/addons/import_sugarcrm/import_sugarcrm_view.xml
new file mode 100644
index 00000000000..1f12a8fde57
--- /dev/null
+++ b/addons/import_sugarcrm/import_sugarcrm_view.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+ import.sugarcrm.form
+ import.sugarcrm
+ form
+
+
+
+
+
+
+
+
+ Import SugarCRM
+ import.sugarcrm
+ form
+ tree,form
+
+ new
+
+
+
+
+
+
+
+
diff --git a/addons/import_sugarcrm/sugar.py b/addons/import_sugarcrm/sugar.py
new file mode 100644
index 00000000000..783878723e9
--- /dev/null
+++ b/addons/import_sugarcrm/sugar.py
@@ -0,0 +1,170 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+
+import hashlib
+from sugarsoap_services import *
+from sugarsoap_services_types import *
+from osv import osv
+from tools.translate import _
+import base64
+from lxml import etree
+import tools
+import import_sugarcrm
+
+import logging
+
+
+class LoginError(Exception): pass
+
+def login(username, password, url):
+ setURL(url)
+ loc = sugarsoapLocator()
+ portType = loc.getsugarsoapPortType(url)
+ request = loginRequest()
+ uauth = ns0.user_auth_Def(request)
+ request._user_auth = uauth
+
+ uauth._user_name = username
+ uauth._password = hashlib.md5(password).hexdigest()
+ uauth._version = '1.1'
+ try:
+ response = portType.login(request)
+ except:
+ raise osv.except_osv(_('Error !'), _('Authentication error !\nBad Username or Password bad SugarSoap Api url !'))
+ if -1 == response._return._id:
+ raise LoginError(response._return._error._description)
+
+ return (portType, response._return._id)
+
+def relation_search(portType, sessionid, module_name=None, module_id=None, related_module=None, query=None, deleted=None):
+ se_req = get_relationshipsRequest()
+ se_req._session = sessionid
+ se_req._module_name = module_name
+ se_req._module_id = module_id
+ se_req._related_module = related_module
+ se_resp = portType.get_relationships(se_req)
+ ans_list = []
+ if se_resp:
+ list = se_resp._return.get_element_ids()
+ for i in list:
+ ans_list.append(i.get_element_id())
+ return ans_list
+
+def attachment_search(portType, sessionid, module_name, module_id=None):
+ se_req = get_note_attachmentRequest()
+ se_req._session = sessionid
+ se_req._id = module_id
+ se_req._module_name = module_name
+ se_resp = portType.get_note_attachment(se_req)
+ file = se_resp._return._note_attachment.File
+ filename = se_resp._return._note_attachment.Filename
+ return file, filename
+
+def user_get_attendee_list(portType, sessionid, module_name=None, module_id=None):
+ se_req = get_attendee_listRequest()
+ se_req._session = sessionid
+ se_req._module_name = module_name
+ se_req._id = module_id
+ se_resp = portType.get_attendee_list(se_req)
+ list = se_resp.get_element_return()
+ arch = base64.decodestring(list.Result)
+ eview = etree.XML(arch)
+ attendee_list = []
+ for child in eview:
+ attendee_dict = {}
+ for ch in child.getchildren():
+ attendee_dict[ch.tag] = tools.ustr(ch.text)
+ attendee_list.append(attendee_dict)
+ return attendee_list
+
+def get_contact_by_email(portType, username, password, email_address=None):
+ se_req = contact_by_emailRequest()
+ se_req._user_name = username
+ se_req._password = password
+ se_req._email_address = email_address
+ try:
+ se_resp = portType.contact_by_email(se_req)
+ email_list = []
+ for list in se_resp.get_element_return():
+ if list.Email_address in email_list:
+ continue
+ elif list.Email_address:
+ email_list.append(list.Email_address)
+ return email_list
+ except Exception,e:
+ logging.getLogger('sugarcrm_soap').error('Exception: %s\n' % (tools.ustr(e)))
+ return False
+
+def get_document_revision_search(portType, sessionid, module_id=None):
+ se_req = get_document_revisionRequest()
+ se_req._session = sessionid
+ se_req._i = module_id
+ se_resp = portType.get_document_list(se_req)
+ file = se_resp._return.Document_revision.File
+ filename = se_resp._return.Document_revision.Filename
+ return file, filename
+
+
+def email_search(portType, sessionid, module_name, module_id, select_fields=None):
+ se_req = get_entryRequest()
+ se_req._session = sessionid
+ se_req._module_name = module_name
+ se_req._id = module_id
+ se_req._select_fields = select_fields
+
+ se_resp = portType.get_entry(se_req)
+ ans_list = []
+ if se_resp:
+ list = se_resp._return._entry_list
+
+ for i in list:
+ ans_dir = {}
+ for j in i._name_value_list:
+ ans_dir[tools.ustr(j._name)] = tools.ustr(j._value)
+ #end for
+ ans_list.append(ans_dir)
+ #end for
+ return ans_list
+
+def search(portType, sessionid, module_name, offset, max_results, query=None, order_by=None, select_fields=None, deleted=None):
+ se_req = get_entry_listRequest()
+ se_req._session = sessionid
+ se_req._module_name = module_name
+ if query != None:
+ se_req._query = query
+ se_req._order_by = order_by
+ se_req._offset = offset
+ se_req._select_fields = select_fields
+ se_req._max_results = max_results
+ se_req._deleted = deleted
+ se_resp = portType.get_entry_list(se_req)
+ ans_list = []
+ if se_resp:
+ list = se_resp._return._entry_list
+ for i in list:
+ ans_dir = {}
+ for j in i._name_value_list:
+ ans_dir[tools.ustr(j._name)] = import_sugarcrm.unescape_htmlentities(tools.ustr(j._value))
+ #end for
+ ans_list.append(ans_dir)
+ #end for
+ return ans_list
diff --git a/addons/import_sugarcrm/sugarsoap_services.py b/addons/import_sugarcrm/sugarsoap_services.py
new file mode 100644
index 00000000000..a80102e5081
--- /dev/null
+++ b/addons/import_sugarcrm/sugarsoap_services.py
@@ -0,0 +1,1420 @@
+##################################################
+# sugarsoap_services.py
+# generated by ZSI.generate.wsdl2python
+##################################################
+
+
+from sugarsoap_services_types import *
+from osv import osv
+from tools.translate import _
+import socket
+import import_sugarcrm
+
+
+
+IP = socket.gethostbyname(socket.gethostname())
+URL = False
+
+try:
+ import ZSI
+ from ZSI.TCcompound import Struct
+ from ZSI import client
+except ImportError:
+ raise osv.except_osv(_('ZSI Import Error!'), _('Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci'))
+
+def setURL(url):
+ global URL
+ URL = url
+
+# Locator
+class sugarsoapLocator:
+ sugarsoapPortType_address = URL
+ def getsugarsoapPortTypeAddress(self):
+ return sugarsoapLocator.sugarsoapPortType_address
+ def getsugarsoapPortType(self, url=None, **kw):
+ return sugarsoapBindingSOAP(url or sugarsoapLocator.sugarsoapPortType_address, **kw)
+
+# Methods
+class sugarsoapBindingSOAP:
+ def __init__(self, url, **kw):
+ kw.setdefault("readerclass", None)
+ kw.setdefault("writerclass", None)
+ # no resource properties
+ self.binding = client.Binding(url=url, **kw)
+ # no ws-addressing
+
+ # op: create_session
+ def create_session(self, request):
+ if isinstance(request, create_sessionRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction= URL+"/create_session", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=create_sessionResponse.typecode.ofwhat, pyclass=create_sessionResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: end_session
+ def end_session(self, request):
+ if isinstance(request, end_sessionRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/end_session", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=end_sessionResponse.typecode.ofwhat, pyclass=end_sessionResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: contact_by_email
+ def contact_by_email(self, request):
+ if isinstance(request, contact_by_emailRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/contact_by_email", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=contact_by_emailResponse.typecode.ofwhat, pyclass=contact_by_emailResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: user_list
+ def user_list(self, request):
+ if isinstance(request, user_listRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/user_list", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=user_listResponse.typecode.ofwhat, pyclass=user_listResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: search
+ def search(self, request):
+ if isinstance(request, searchRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/search", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=searchResponse.typecode.ofwhat, pyclass=searchResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: track_email
+ def track_email(self, request):
+ if isinstance(request, track_emailRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/track_email", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=track_emailResponse.typecode.ofwhat, pyclass=track_emailResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: create_contact
+ def create_contact(self, request):
+ if isinstance(request, create_contactRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/create_contact", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=create_contactResponse.typecode.ofwhat, pyclass=create_contactResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: create_lead
+ def create_lead(self, request):
+ if isinstance(request, create_leadRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/create_lead", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=create_leadResponse.typecode.ofwhat, pyclass=create_leadResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: create_account
+ def create_account(self, request):
+ if isinstance(request, create_accountRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/create_account", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=create_accountResponse.typecode.ofwhat, pyclass=create_accountResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: create_opportunity
+ def create_opportunity(self, request):
+ if isinstance(request, create_opportunityRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/create_opportunity", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=create_opportunityResponse.typecode.ofwhat, pyclass=create_opportunityResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: create_case
+ def create_case(self, request):
+ if isinstance(request, create_caseRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/create_case", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=create_caseResponse.typecode.ofwhat, pyclass=create_caseResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: login
+ def login(self, request):
+ if isinstance(request, loginRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/login", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=loginResponse.typecode.ofwhat, pyclass=loginResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: is_loopback
+ def is_loopback(self, request):
+ if isinstance(request, is_loopbackRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/is_loopback", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=is_loopbackResponse.typecode.ofwhat, pyclass=is_loopbackResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: seamless_login
+ def seamless_login(self, request):
+ if isinstance(request, seamless_loginRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/seamless_login", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=seamless_loginResponse.typecode.ofwhat, pyclass=seamless_loginResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ #op: get_document_list
+ def get_document_list(self, request):
+ if isinstance(request, get_document_revisionRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction="http://"+ IP +"/sugarcrm/soap.php/get_document_list", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_document_revisionResponse.typecode.ofwhat, pyclass=get_document_revisionResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_entry_list
+ def get_entry_list(self, request):
+ if isinstance(request, get_entry_listRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_entry_list", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_entry_listResponse.typecode.ofwhat, pyclass=get_entry_listResponse.typecode.pyclass)
+ try:
+ response = self.binding.Receive(typecode)
+ except:
+ return None
+ return response
+
+ # op: get_entry
+ def get_entry(self, request):
+ if isinstance(request, get_entryRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_entry", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_entryResponse.typecode.ofwhat, pyclass=get_entryResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_entries
+ def get_entries(self, request):
+ if isinstance(request, get_entriesRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_entries", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_entriesResponse.typecode.ofwhat, pyclass=get_entriesResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: set_entry
+ def set_entry(self, request):
+ if isinstance(request, set_entryRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/set_entry", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=set_entryResponse.typecode.ofwhat, pyclass=set_entryResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: set_entries
+ def set_entries(self, request):
+ if isinstance(request, set_entriesRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/set_entries", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=set_entriesResponse.typecode.ofwhat, pyclass=set_entriesResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: set_note_attachment
+ def set_note_attachment(self, request):
+ if isinstance(request, set_note_attachmentRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/set_note_attachment", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=set_note_attachmentResponse.typecode.ofwhat, pyclass=set_note_attachmentResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_note_attachment
+ def get_note_attachment(self, request):
+ if isinstance(request, get_note_attachmentRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_note_attachment", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_note_attachmentResponse.typecode.ofwhat, pyclass=get_note_attachmentResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: relate_note_to_module
+ def relate_note_to_module(self, request):
+ if isinstance(request, relate_note_to_moduleRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/relate_note_to_module", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=relate_note_to_moduleResponse.typecode.ofwhat, pyclass=relate_note_to_moduleResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_related_notes
+ def get_related_notes(self, request):
+ if isinstance(request, get_related_notesRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_related_notes", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_related_notesResponse.typecode.ofwhat, pyclass=get_related_notesResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: logout
+ def logout(self, request):
+ if isinstance(request, logoutRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/logout", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=logoutResponse.typecode.ofwhat, pyclass=logoutResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_module_fields
+ def get_module_fields(self, request):
+ if isinstance(request, get_module_fieldsRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_module_fields", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_module_fieldsResponse.typecode.ofwhat, pyclass=get_module_fieldsResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_available_modules
+ def get_available_modules(self, request):
+ if isinstance(request, get_available_modulesRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_available_modules", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_available_modulesResponse.typecode.ofwhat, pyclass=get_available_modulesResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: update_portal_user
+ def update_portal_user(self, request):
+ if isinstance(request, update_portal_userRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/update_portal_user", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=update_portal_userResponse.typecode.ofwhat, pyclass=update_portal_userResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: test
+ def test(self, request):
+ if isinstance(request, testRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/test", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=testResponse.typecode.ofwhat, pyclass=testResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_user_id
+ def get_user_id(self, request):
+ if isinstance(request, get_user_idRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_user_id", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_user_idResponse.typecode.ofwhat, pyclass=get_user_idResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_user_team_id
+ def get_user_team_id(self, request):
+ if isinstance(request, get_user_team_idRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_user_team_id", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_user_team_idResponse.typecode.ofwhat, pyclass=get_user_team_idResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_server_time
+ def get_server_time(self, request):
+ if isinstance(request, get_server_timeRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_server_time", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_server_timeResponse.typecode.ofwhat, pyclass=get_server_timeResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_gmt_time
+ def get_gmt_time(self, request):
+ if isinstance(request, get_gmt_timeRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_gmt_time", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_gmt_timeResponse.typecode.ofwhat, pyclass=get_gmt_timeResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_sugar_flavor
+ def get_sugar_flavor(self, request):
+ if isinstance(request, get_sugar_flavorRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_sugar_flavor", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_sugar_flavorResponse.typecode.ofwhat, pyclass=get_sugar_flavorResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_server_version
+ def get_server_version(self, request):
+ if isinstance(request, get_server_versionRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_server_version", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_server_versionResponse.typecode.ofwhat, pyclass=get_server_versionResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_relationships
+ def get_relationships(self, request):
+ if isinstance(request, get_relationshipsRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_relationships", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_relationshipsResponse.typecode.ofwhat, pyclass=get_relationshipsResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: set_relationship
+ def set_relationship(self, request):
+ if isinstance(request, set_relationshipRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/set_relationship", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=set_relationshipResponse.typecode.ofwhat, pyclass=set_relationshipResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: set_relationships
+ def set_relationships(self, request):
+ if isinstance(request, set_relationshipsRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/set_relationships", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=set_relationshipsResponse.typecode.ofwhat, pyclass=set_relationshipsResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: set_document_revision
+ def set_document_revision(self, request):
+ if isinstance(request, set_document_revisionRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/set_document_revision", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=set_document_revisionResponse.typecode.ofwhat, pyclass=set_document_revisionResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: search_by_module
+ def search_by_module(self, request):
+ if isinstance(request, search_by_moduleRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/search_by_module", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=search_by_moduleResponse.typecode.ofwhat, pyclass=search_by_moduleResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: sync_get_modified_relationships
+ def sync_get_modified_relationships(self, request):
+ if isinstance(request, sync_get_modified_relationshipsRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/sync_get_modified_relationships", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=sync_get_modified_relationshipsResponse.typecode.ofwhat, pyclass=sync_get_modified_relationshipsResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_modified_entries
+ def get_modified_entries(self, request):
+ if isinstance(request, get_modified_entriesRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_modified_entries", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_modified_entriesResponse.typecode.ofwhat, pyclass=get_modified_entriesResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+ # op: get_attendee_list
+ def get_attendee_list(self, request):
+ if isinstance(request, get_attendee_listRequest) is False:
+ raise TypeError, "%s incorrect request type" % (request.__class__)
+ kw = {}
+ # no input wsaction
+ self.binding.Send(None, None, request, soapaction=URL+"/get_attendee_list", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw)
+ # no output wsaction
+ typecode = Struct(pname=None, ofwhat=get_attendee_listResponse.typecode.ofwhat, pyclass=get_attendee_listResponse.typecode.pyclass)
+ response = self.binding.Receive(typecode)
+ return response
+
+_create_sessionRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_session"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class create_sessionRequest:
+ typecode = _create_sessionRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._user_name = None
+ self._password = None
+ return
+create_sessionRequest.typecode.pyclass = create_sessionRequest
+
+_create_sessionResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_sessionResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class create_sessionResponse:
+ typecode = _create_sessionResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+create_sessionResponse.typecode.pyclass = create_sessionResponse
+
+_end_sessionRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","end_session"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class end_sessionRequest:
+ typecode = _end_sessionRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._user_name = None
+ return
+end_sessionRequest.typecode.pyclass = end_sessionRequest
+
+_end_sessionResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","end_sessionResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class end_sessionResponse:
+ typecode = _end_sessionResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+end_sessionResponse.typecode.pyclass = end_sessionResponse
+
+_contact_by_emailRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","contact_by_email"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="email_address", aname="_email_address", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class contact_by_emailRequest:
+ typecode = _contact_by_emailRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._user_name = None
+ self._password = None
+ self._email_address = None
+ return
+contact_by_emailRequest.typecode.pyclass = contact_by_emailRequest
+
+_contact_by_emailResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","contact_by_emailResponse"), ofwhat=[ns0.contact_detail_array_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class contact_by_emailResponse:
+ typecode = _contact_by_emailResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+contact_by_emailResponse.typecode.pyclass = contact_by_emailResponse
+
+_user_listRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","user_list"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class user_listRequest:
+ typecode = _user_listRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._user_name = None
+ self._password = None
+ return
+user_listRequest.typecode.pyclass = user_listRequest
+
+_user_listResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","user_listResponse"), ofwhat=[ns0.user_detail_array_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class user_listResponse:
+ typecode = _user_listResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+user_listResponse.typecode.pyclass = user_listResponse
+
+_searchRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","search"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="name", aname="_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class searchRequest:
+ typecode = _searchRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._user_name = None
+ self._password = None
+ self._name = None
+ return
+searchRequest.typecode.pyclass = searchRequest
+
+_searchResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","searchResponse"), ofwhat=[ns0.contact_detail_array_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class searchResponse:
+ typecode = _searchResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+searchResponse.typecode.pyclass = searchResponse
+
+_track_emailRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","track_email"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="parent_id", aname="_parent_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="contact_ids", aname="_contact_ids", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCtimes.gDate(pname="date_sent", aname="_date_sent", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="email_subject", aname="_email_subject", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="email_body", aname="_email_body", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class track_emailRequest:
+ typecode = _track_emailRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._user_name = None
+ self._password = None
+ self._parent_id = None
+ self._contact_ids = None
+ self._date_sent = None
+ self._email_subject = None
+ self._email_body = None
+ return
+track_emailRequest.typecode.pyclass = track_emailRequest
+
+_track_emailResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","track_emailResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class track_emailResponse:
+ typecode = _track_emailResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+track_emailResponse.typecode.pyclass = track_emailResponse
+
+_create_contactRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_contact"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="first_name", aname="_first_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="last_name", aname="_last_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="email_address", aname="_email_address", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class create_contactRequest:
+ typecode = _create_contactRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._user_name = None
+ self._password = None
+ self._first_name = None
+ self._last_name = None
+ self._email_address = None
+ return
+create_contactRequest.typecode.pyclass = create_contactRequest
+
+_create_contactResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_contactResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class create_contactResponse:
+ typecode = _create_contactResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+create_contactResponse.typecode.pyclass = create_contactResponse
+
+_create_leadRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_lead"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="first_name", aname="_first_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="last_name", aname="_last_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="email_address", aname="_email_address", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class create_leadRequest:
+ typecode = _create_leadRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._user_name = None
+ self._password = None
+ self._first_name = None
+ self._last_name = None
+ self._email_address = None
+ return
+create_leadRequest.typecode.pyclass = create_leadRequest
+
+_create_leadResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_leadResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class create_leadResponse:
+ typecode = _create_leadResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+create_leadResponse.typecode.pyclass = create_leadResponse
+
+_create_accountRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_account"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="name", aname="_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="phone", aname="_phone", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="website", aname="_website", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class create_accountRequest:
+ typecode = _create_accountRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._user_name = None
+ self._password = None
+ self._name = None
+ self._phone = None
+ self._website = None
+ return
+create_accountRequest.typecode.pyclass = create_accountRequest
+
+_create_accountResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_accountResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class create_accountResponse:
+ typecode = _create_accountResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+create_accountResponse.typecode.pyclass = create_accountResponse
+
+_create_opportunityRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_opportunity"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="name", aname="_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="amount", aname="_amount", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class create_opportunityRequest:
+ typecode = _create_opportunityRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._user_name = None
+ self._password = None
+ self._name = None
+ self._amount = None
+ return
+create_opportunityRequest.typecode.pyclass = create_opportunityRequest
+
+_create_opportunityResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_opportunityResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class create_opportunityResponse:
+ typecode = _create_opportunityResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+create_opportunityResponse.typecode.pyclass = create_opportunityResponse
+
+_create_caseRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_case"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="name", aname="_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class create_caseRequest:
+ typecode = _create_caseRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._user_name = None
+ self._password = None
+ self._name = None
+ return
+create_caseRequest.typecode.pyclass = create_caseRequest
+
+_create_caseResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_caseResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class create_caseResponse:
+ typecode = _create_caseResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+create_caseResponse.typecode.pyclass = create_caseResponse
+
+_loginRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","login"), ofwhat=[ns0.user_auth_Def(pname="user_auth", aname="_user_auth", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="application_name", aname="_application_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class loginRequest:
+ typecode = _loginRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._user_auth = None
+ self._application_name = None
+ return
+loginRequest.typecode.pyclass = loginRequest
+
+_loginResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","loginResponse"), ofwhat=[ns0.set_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class loginResponse:
+ typecode = _loginResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+loginResponse.typecode.pyclass = loginResponse
+
+_is_loopbackRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","is_loopback"), ofwhat=[], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class is_loopbackRequest:
+ typecode = _is_loopbackRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ return
+is_loopbackRequest.typecode.pyclass = is_loopbackRequest
+
+_is_loopbackResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","is_loopbackResponse"), ofwhat=[ZSI.TCnumbers.Iint(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class is_loopbackResponse:
+ typecode = _is_loopbackResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+is_loopbackResponse.typecode.pyclass = is_loopbackResponse
+
+_seamless_loginRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","seamless_login"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class seamless_loginRequest:
+ typecode = _seamless_loginRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ return
+seamless_loginRequest.typecode.pyclass = seamless_loginRequest
+
+_seamless_loginResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","seamless_loginResponse"), ofwhat=[ZSI.TCnumbers.Iint(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class seamless_loginResponse:
+ typecode = _seamless_loginResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+seamless_loginResponse.typecode.pyclass = seamless_loginResponse
+
+_get_entry_listRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_entry_list"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="query", aname="_query", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="order_by", aname="_order_by", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="select_fields", aname="_select_fields", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="max_results", aname="_max_results", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="deleted", aname="_deleted", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_entry_listRequest:
+ typecode = _get_entry_listRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._module_name = None
+ self._query = None
+ self._order_by = None
+ self._offset = None
+ self._select_fields = None
+ self._max_results = None
+ self._deleted = None
+ return
+get_entry_listRequest.typecode.pyclass = get_entry_listRequest
+
+_get_entry_listResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_entry_listResponse"), ofwhat=[ns0.get_entry_list_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_entry_listResponse:
+ typecode = _get_entry_listResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_entry_listResponse.typecode.pyclass = get_entry_listResponse
+
+_get_entryRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_entry"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="id", aname="_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="select_fields", aname="_select_fields", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_entryRequest:
+ typecode = _get_entryRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._module_name = None
+ self._id = None
+ self._select_fields = None
+ return
+get_entryRequest.typecode.pyclass = get_entryRequest
+
+_get_entryResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_entryResponse"), ofwhat=[ns0.get_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_entryResponse:
+ typecode = _get_entryResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_entryResponse.typecode.pyclass = get_entryResponse
+
+_get_entriesRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_entries"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="ids", aname="_ids", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="select_fields", aname="_select_fields", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_entriesRequest:
+ typecode = _get_entriesRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._module_name = None
+ self._ids = None
+ self._select_fields = None
+ return
+get_entriesRequest.typecode.pyclass = get_entriesRequest
+
+_get_entriesResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_entriesResponse"), ofwhat=[ns0.get_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_entriesResponse:
+ typecode = _get_entriesResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_entriesResponse.typecode.pyclass = get_entriesResponse
+
+_set_entryRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_entry"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.name_value_list_Def(pname="name_value_list", aname="_name_value_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+
+class get_document_revisionRequest:
+ def __init__(self):
+ self._session = None
+ self._i = None
+ return
+get_document_revisionRequest.typecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_document_revision"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="i", aname="_i", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_document_revisionRequest, encoded="http://www.sugarcrm.com/sugarcrm")
+
+class get_document_revisionResponse:
+ def __init__(self):
+ self._return = None
+ return
+get_document_revisionResponse.typecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_document_revisionResponse"), ofwhat=[ns0.return_document_revision_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_document_revisionResponse, encoded="http://www.sugarcrm.com/sugarcrm")
+
+
+
+class set_entryRequest:
+ typecode = _set_entryRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._module_name = None
+ self._name_value_list = None
+ return
+set_entryRequest.typecode.pyclass = set_entryRequest
+
+_set_entryResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_entryResponse"), ofwhat=[ns0.set_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class set_entryResponse:
+ typecode = _set_entryResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+set_entryResponse.typecode.pyclass = set_entryResponse
+
+_set_entriesRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_entries"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.name_value_lists_Def(pname="name_value_lists", aname="_name_value_lists", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class set_entriesRequest:
+ typecode = _set_entriesRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._module_name = None
+ self._name_value_lists = None
+ return
+set_entriesRequest.typecode.pyclass = set_entriesRequest
+
+_set_entriesResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_entriesResponse"), ofwhat=[ns0.set_entries_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class set_entriesResponse:
+ typecode = _set_entriesResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+set_entriesResponse.typecode.pyclass = set_entriesResponse
+
+_set_note_attachmentRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_note_attachment"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.note_attachment_Def(pname="note", aname="_note", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class set_note_attachmentRequest:
+ typecode = _set_note_attachmentRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._note = None
+ return
+set_note_attachmentRequest.typecode.pyclass = set_note_attachmentRequest
+
+_set_note_attachmentResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_note_attachmentResponse"), ofwhat=[ns0.set_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class set_note_attachmentResponse:
+ typecode = _set_note_attachmentResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+set_note_attachmentResponse.typecode.pyclass = set_note_attachmentResponse
+
+_get_note_attachmentRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_note_attachment"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="id", aname="_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_note_attachmentRequest:
+ typecode = _get_note_attachmentRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._id = None
+ return
+get_note_attachmentRequest.typecode.pyclass = get_note_attachmentRequest
+
+_get_note_attachmentResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_note_attachmentResponse"), ofwhat=[ns0.return_note_attachment_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_note_attachmentResponse:
+ typecode = _get_note_attachmentResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_note_attachmentResponse.typecode.pyclass = get_note_attachmentResponse
+
+_relate_note_to_moduleRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","relate_note_to_module"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="note_id", aname="_note_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_id", aname="_module_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class relate_note_to_moduleRequest:
+ typecode = _relate_note_to_moduleRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._note_id = None
+ self._module_name = None
+ self._module_id = None
+ return
+relate_note_to_moduleRequest.typecode.pyclass = relate_note_to_moduleRequest
+
+_relate_note_to_moduleResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","relate_note_to_moduleResponse"), ofwhat=[ns0.error_value_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class relate_note_to_moduleResponse:
+ typecode = _relate_note_to_moduleResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+relate_note_to_moduleResponse.typecode.pyclass = relate_note_to_moduleResponse
+
+_get_related_notesRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_related_notes"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_id", aname="_module_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="select_fields", aname="_select_fields", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_related_notesRequest:
+ typecode = _get_related_notesRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._module_name = None
+ self._module_id = None
+ self._select_fields = None
+ return
+get_related_notesRequest.typecode.pyclass = get_related_notesRequest
+
+_get_related_notesResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_related_notesResponse"), ofwhat=[ns0.get_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_related_notesResponse:
+ typecode = _get_related_notesResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_related_notesResponse.typecode.pyclass = get_related_notesResponse
+
+_logoutRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","logout"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class logoutRequest:
+ typecode = _logoutRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ return
+logoutRequest.typecode.pyclass = logoutRequest
+
+_logoutResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","logoutResponse"), ofwhat=[ns0.error_value_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class logoutResponse:
+ typecode = _logoutResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+logoutResponse.typecode.pyclass = logoutResponse
+
+_get_module_fieldsRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_module_fields"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_module_fieldsRequest:
+ typecode = _get_module_fieldsRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._module_name = None
+ return
+get_module_fieldsRequest.typecode.pyclass = get_module_fieldsRequest
+
+_get_module_fieldsResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_module_fieldsResponse"), ofwhat=[ns0.module_fields_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_module_fieldsResponse:
+ typecode = _get_module_fieldsResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_module_fieldsResponse.typecode.pyclass = get_module_fieldsResponse
+
+_get_available_modulesRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_available_modules"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_available_modulesRequest:
+ typecode = _get_available_modulesRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ return
+get_available_modulesRequest.typecode.pyclass = get_available_modulesRequest
+
+_get_available_modulesResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_available_modulesResponse"), ofwhat=[ns0.module_list_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_available_modulesResponse:
+ typecode = _get_available_modulesResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_available_modulesResponse.typecode.pyclass = get_available_modulesResponse
+
+_update_portal_userRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","update_portal_user"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="portal_name", aname="_portal_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.name_value_list_Def(pname="name_value_list", aname="_name_value_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class update_portal_userRequest:
+ typecode = _update_portal_userRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._portal_name = None
+ self._name_value_list = None
+ return
+update_portal_userRequest.typecode.pyclass = update_portal_userRequest
+
+_update_portal_userResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","update_portal_userResponse"), ofwhat=[ns0.error_value_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class update_portal_userResponse:
+ typecode = _update_portal_userResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+update_portal_userResponse.typecode.pyclass = update_portal_userResponse
+
+_testRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","test"), ofwhat=[ZSI.TC.String(pname="string", aname="_string", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class testRequest:
+ typecode = _testRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._string = None
+ return
+testRequest.typecode.pyclass = testRequest
+
+_testResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","testResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class testResponse:
+ typecode = _testResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+testResponse.typecode.pyclass = testResponse
+
+_get_user_idRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_user_id"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_user_idRequest:
+ typecode = _get_user_idRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ return
+get_user_idRequest.typecode.pyclass = get_user_idRequest
+
+_get_user_idResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_user_idResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_user_idResponse:
+ typecode = _get_user_idResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_user_idResponse.typecode.pyclass = get_user_idResponse
+
+_get_user_team_idRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_user_team_id"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_user_team_idRequest:
+ typecode = _get_user_team_idRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ return
+get_user_team_idRequest.typecode.pyclass = get_user_team_idRequest
+
+_get_user_team_idResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_user_team_idResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_user_team_idResponse:
+ typecode = _get_user_team_idResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_user_team_idResponse.typecode.pyclass = get_user_team_idResponse
+
+_get_server_timeRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_server_time"), ofwhat=[], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_server_timeRequest:
+ typecode = _get_server_timeRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ return
+get_server_timeRequest.typecode.pyclass = get_server_timeRequest
+
+_get_server_timeResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_server_timeResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_server_timeResponse:
+ typecode = _get_server_timeResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_server_timeResponse.typecode.pyclass = get_server_timeResponse
+
+_get_gmt_timeRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_gmt_time"), ofwhat=[], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_gmt_timeRequest:
+ typecode = _get_gmt_timeRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ return
+get_gmt_timeRequest.typecode.pyclass = get_gmt_timeRequest
+
+_get_gmt_timeResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_gmt_timeResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_gmt_timeResponse:
+ typecode = _get_gmt_timeResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_gmt_timeResponse.typecode.pyclass = get_gmt_timeResponse
+
+_get_sugar_flavorRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_sugar_flavor"), ofwhat=[], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_sugar_flavorRequest:
+ typecode = _get_sugar_flavorRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ return
+get_sugar_flavorRequest.typecode.pyclass = get_sugar_flavorRequest
+
+_get_sugar_flavorResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_sugar_flavorResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_sugar_flavorResponse:
+ typecode = _get_sugar_flavorResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_sugar_flavorResponse.typecode.pyclass = get_sugar_flavorResponse
+
+_get_server_versionRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_server_version"), ofwhat=[], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_server_versionRequest:
+ typecode = _get_server_versionRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ return
+get_server_versionRequest.typecode.pyclass = get_server_versionRequest
+
+_get_server_versionResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_server_versionResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_server_versionResponse:
+ typecode = _get_server_versionResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_server_versionResponse.typecode.pyclass = get_server_versionResponse
+
+_get_relationshipsRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_relationships"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_id", aname="_module_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="related_module", aname="_related_module", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="related_module_query", aname="_related_module_query", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="deleted", aname="_deleted", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_relationshipsRequest:
+ typecode = _get_relationshipsRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._module_name = None
+ self._module_id = None
+ self._related_module = None
+ self._related_module_query = None
+ self._deleted = None
+ return
+get_relationshipsRequest.typecode.pyclass = get_relationshipsRequest
+
+_get_relationshipsResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_relationshipsResponse"), ofwhat=[ns0.get_relationships_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_relationshipsResponse:
+ typecode = _get_relationshipsResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_relationshipsResponse.typecode.pyclass = get_relationshipsResponse
+
+_set_relationshipRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_relationship"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.set_relationship_value_Def(pname="set_relationship_value", aname="_set_relationship_value", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class set_relationshipRequest:
+ typecode = _set_relationshipRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._set_relationship_value = None
+ return
+set_relationshipRequest.typecode.pyclass = set_relationshipRequest
+
+_set_relationshipResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_relationshipResponse"), ofwhat=[ns0.error_value_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class set_relationshipResponse:
+ typecode = _set_relationshipResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+set_relationshipResponse.typecode.pyclass = set_relationshipResponse
+
+_set_relationshipsRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_relationships"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.set_relationship_list_Def(pname="set_relationship_list", aname="_set_relationship_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class set_relationshipsRequest:
+ typecode = _set_relationshipsRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._set_relationship_list = None
+ return
+set_relationshipsRequest.typecode.pyclass = set_relationshipsRequest
+
+_set_relationshipsResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_relationshipsResponse"), ofwhat=[ns0.set_relationship_list_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class set_relationshipsResponse:
+ typecode = _set_relationshipsResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+set_relationshipsResponse.typecode.pyclass = set_relationshipsResponse
+
+_set_document_revisionRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_document_revision"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.document_revision_Def(pname="note", aname="_note", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class set_document_revisionRequest:
+ typecode = _set_document_revisionRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._note = None
+ return
+set_document_revisionRequest.typecode.pyclass = set_document_revisionRequest
+
+_set_document_revisionResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_document_revisionResponse"), ofwhat=[ns0.set_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class set_document_revisionResponse:
+ typecode = _set_document_revisionResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+set_document_revisionResponse.typecode.pyclass = set_document_revisionResponse
+
+_search_by_moduleRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","search_by_module"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="search_string", aname="_search_string", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="modules", aname="_modules", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="max_results", aname="_max_results", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class search_by_moduleRequest:
+ typecode = _search_by_moduleRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._user_name = None
+ self._password = None
+ self._search_string = None
+ self._modules = None
+ self._offset = None
+ self._max_results = None
+ return
+search_by_moduleRequest.typecode.pyclass = search_by_moduleRequest
+
+_search_by_moduleResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","search_by_moduleResponse"), ofwhat=[ns0.get_entry_list_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class search_by_moduleResponse:
+ typecode = _search_by_moduleResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+search_by_moduleResponse.typecode.pyclass = search_by_moduleResponse
+
+_sync_get_modified_relationshipsRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","sync_get_modified_relationships"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="related_module", aname="_related_module", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="from_date", aname="_from_date", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="to_date", aname="_to_date", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="max_results", aname="_max_results", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="deleted", aname="_deleted", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_id", aname="_module_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="select_fields", aname="_select_fields", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="ids", aname="_ids", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="relationship_name", aname="_relationship_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="deletion_date", aname="_deletion_date", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="php_serialize", aname="_php_serialize", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class sync_get_modified_relationshipsRequest:
+ typecode = _sync_get_modified_relationshipsRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._module_name = None
+ self._related_module = None
+ self._from_date = None
+ self._to_date = None
+ self._offset = None
+ self._max_results = None
+ self._deleted = None
+ self._module_id = None
+ self._select_fields = None
+ self._ids = None
+ self._relationship_name = None
+ self._deletion_date = None
+ self._php_serialize = None
+ return
+sync_get_modified_relationshipsRequest.typecode.pyclass = sync_get_modified_relationshipsRequest
+
+_sync_get_modified_relationshipsResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","sync_get_modified_relationshipsResponse"), ofwhat=[ns0.get_entry_list_result_encoded_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class sync_get_modified_relationshipsResponse:
+ typecode = _sync_get_modified_relationshipsResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+sync_get_modified_relationshipsResponse.typecode.pyclass = sync_get_modified_relationshipsResponse
+
+_get_modified_entriesRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_modified_entries"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="ids", aname="_ids", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="select_fields", aname="_select_fields", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_modified_entriesRequest:
+ typecode = _get_modified_entriesRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._module_name = None
+ self._ids = None
+ self._select_fields = None
+ return
+get_modified_entriesRequest.typecode.pyclass = get_modified_entriesRequest
+
+_get_modified_entriesResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_modified_entriesResponse"), ofwhat=[ns0.get_sync_result_encoded_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_modified_entriesResponse:
+ typecode = _get_modified_entriesResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_modified_entriesResponse.typecode.pyclass = get_modified_entriesResponse
+
+_get_attendee_listRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_attendee_list"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="id", aname="_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_attendee_listRequest:
+ typecode = _get_attendee_listRequestTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._session = None
+ self._module_name = None
+ self._id = None
+ return
+get_attendee_listRequest.typecode.pyclass = get_attendee_listRequest
+
+_get_attendee_listResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_attendee_listResponse"), ofwhat=[ns0.get_sync_result_encoded_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm")
+class get_attendee_listResponse:
+ typecode = _get_attendee_listResponseTypecode
+ __metaclass__ = pyclass_type
+ def __init__(self):
+ self._return = None
+ return
+get_attendee_listResponse.typecode.pyclass = get_attendee_listResponse
diff --git a/addons/import_sugarcrm/sugarsoap_services_types.py b/addons/import_sugarcrm/sugarsoap_services_types.py
new file mode 100644
index 00000000000..acd22bbb97f
--- /dev/null
+++ b/addons/import_sugarcrm/sugarsoap_services_types.py
@@ -0,0 +1,646 @@
+##################################################
+# sugarsoap_services_types.py
+# generated by ZSI.generate.wsdl2python
+##################################################
+from osv import osv
+from tools.translate import _
+try:
+ import ZSI
+ import ZSI.TCcompound
+ from ZSI.TC import TypeDefinition
+ from ZSI.TC import _get_type_definition as GTD
+ from ZSI.generate.pyclass import pyclass_type
+except ImportError:
+ raise osv.except_osv(_('ZSI Import Error!'), _('Please install SOAP for python - ZSI-2.0-rc3.tar.gz from http://pypi.python.org/pypi/ZSI/'))
+
+##############################
+# targetNamespace
+# http://www.sugarcrm.com/sugarcrm
+##############################
+
+class ns0:
+ targetNamespace = "http://www.sugarcrm.com/sugarcrm"
+
+ class contact_detail_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "contact_detail")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #Unused variable ns.
+ #ns = ns0.contact_detail_Def.schema
+ TClist = [ZSI.TC.String(pname="email_address", aname="_email_address", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="name1", aname="_name1", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="name2", aname="_name2", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="association", aname="_association", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="msi_id", aname="_msi_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._email_address = None
+ self._name1 = None
+ self._name2 = None
+ self._association = None
+ self._id = None
+ self._msi_id = None
+ self._type = None
+ return
+ Holder.__name__ = "contact_detail_Holder"
+ self.pyclass = Holder
+
+ class contact_detail_array_Def(ZSI.TC.Array, TypeDefinition):
+ #complexType/complexContent base="SOAP-ENC:Array"
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "contact_detail_array")
+ def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+ ofwhat = ns0.contact_detail_Def(None, typed=False)
+ atype = (u'http://www.sugarcrm.com/sugarcrm', u'contact_detail[]')
+ ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+ class user_detail_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "user_detail")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.user_detail_Def.schema
+ TClist = [ZSI.TC.String(pname="email_address", aname="_email_address", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="user_name", aname="_user_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="first_name", aname="_first_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="last_name", aname="_last_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="department", aname="_department", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="title", aname="_title", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._email_address = None
+ self._user_name = None
+ self._first_name = None
+ self._last_name = None
+ self._department = None
+ self._id = None
+ self._title = None
+ return
+ Holder.__name__ = "user_detail_Holder"
+ self.pyclass = Holder
+
+ class user_detail_array_Def(ZSI.TC.Array, TypeDefinition):
+ #complexType/complexContent base="SOAP-ENC:Array"
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "user_detail_array")
+ def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+ ofwhat = ns0.user_detail_Def(None, typed=False)
+ atype = (u'http://www.sugarcrm.com/sugarcrm', u'user_detail[]')
+ ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+ class note_attachment_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "note_attachment")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ # ns = ns0.note_attachment_Def.schema
+ TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="filename", aname="_filename", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="file", aname="_file", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._id = None
+ self._filename = None
+ self._file = None
+ return
+ Holder.__name__ = "note_attachment_Holder"
+ self.pyclass = Holder
+
+ class return_note_attachment_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "return_note_attachment")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.return_note_attachment_Def.schema
+ TClist = [GTD("http://www.sugarcrm.com/sugarcrm","note_attachment",lazy=False)(pname="note_attachment", aname="_note_attachment", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._note_attachment = None
+ self._error = None
+ return
+ Holder.__name__ = "return_note_attachment_Holder"
+ self.pyclass = Holder
+
+ class user_auth_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "user_auth")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.user_auth_Def.schema
+ TClist = [ZSI.TC.String(pname="user_name", aname="_user_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="password", aname="_password", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="version", aname="_version", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._user_name = None
+ self._password = None
+ self._version = None
+ return
+ Holder.__name__ = "user_auth_Holder"
+ self.pyclass = Holder
+
+ class field_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "field")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.field_Def.schema
+ TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="label", aname="_label", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="required", aname="_required", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","name_value_list",lazy=False)(pname="options", aname="_options", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._name = None
+ self._type = None
+ self._label = None
+ self._required = None
+ self._options = None
+ return
+ Holder.__name__ = "field_Holder"
+ self.pyclass = Holder
+
+ class field_list_Def(ZSI.TC.Array, TypeDefinition):
+ #complexType/complexContent base="SOAP-ENC:Array"
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "field_list")
+ def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+ ofwhat = ns0.field_Def(None, typed=False)
+ atype = (u'http://www.sugarcrm.com/sugarcrm', u'field[]')
+ ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+ class name_value_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "name_value")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.name_value_Def.schema
+ TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._name = None
+ self._value = None
+ return
+ Holder.__name__ = "name_value_Holder"
+ self.pyclass = Holder
+
+ class name_value_list_Def(ZSI.TC.Array, TypeDefinition):
+ #complexType/complexContent base="SOAP-ENC:Array"
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "name_value_list")
+ def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+ ofwhat = ns0.name_value_Def(None, typed=False)
+ atype = (u'http://www.sugarcrm.com/sugarcrm', u'name_value[]')
+ ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+ class name_value_lists_Def(ZSI.TC.Array, TypeDefinition):
+ #complexType/complexContent base="SOAP-ENC:Array"
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "name_value_lists")
+ def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+ ofwhat = ns0.name_value_list_Def(None, typed=False)
+ atype = (u'http://www.sugarcrm.com/sugarcrm', u'name_value_list[]')
+ ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+ class select_fields_Def(ZSI.TC.Array, TypeDefinition):
+ #complexType/complexContent base="SOAP-ENC:Array"
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "select_fields")
+ def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+ ofwhat = ZSI.TC.String(None, typed=False)
+ atype = (u'http://www.w3.org/2001/XMLSchema', u'string[]')
+ ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+ class module_fields_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "module_fields")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ # ns = ns0.module_fields_Def.schema
+ TClist = [ZSI.TC.String(pname="module_name", aname="_module_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","field_list",lazy=False)(pname="module_fields", aname="_module_fields", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._module_name = None
+ self._module_fields = None
+ self._error = None
+ return
+ Holder.__name__ = "module_fields_Holder"
+ self.pyclass = Holder
+
+ class module_list_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "module_list")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.module_list_Def.schema
+ TClist = [GTD("http://www.sugarcrm.com/sugarcrm","select_fields",lazy=False)(pname="modules", aname="_modules", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._modules = None
+ self._error = None
+ return
+ Holder.__name__ = "module_list_Holder"
+ self.pyclass = Holder
+
+ class error_value_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "error_value")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.error_value_Def.schema
+ TClist = [ZSI.TC.String(pname="number", aname="_number", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="description", aname="_description", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._number = None
+ self._name = None
+ self._description = None
+ return
+ Holder.__name__ = "error_value_Holder"
+ self.pyclass = Holder
+
+ class entry_value_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "entry_value")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.entry_value_Def.schema
+ TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="module_name", aname="_module_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","name_value_list",lazy=False)(pname="name_value_list", aname="_name_value_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._id = None
+ self._module_name = None
+ self._name_value_list = None
+ return
+ Holder.__name__ = "entry_value_Holder"
+ self.pyclass = Holder
+
+ class entry_list_Def(ZSI.TC.Array, TypeDefinition):
+ #complexType/complexContent base="SOAP-ENC:Array"
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "entry_list")
+ def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+ ofwhat = ns0.entry_value_Def(None, typed=False)
+ atype = (u'http://www.sugarcrm.com/sugarcrm', u'entry_value[]')
+ ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+ class get_entry_list_result_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "get_entry_list_result")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.get_entry_list_result_Def.schema
+ TClist = [ZSI.TCnumbers.Iint(pname="result_count", aname="_result_count", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="next_offset", aname="_next_offset", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","field_list",lazy=False)(pname="field_list", aname="_field_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","entry_list",lazy=False)(pname="entry_list", aname="_entry_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._result_count = None
+ self._next_offset = None
+ self._field_list = None
+ self._entry_list = None
+ self._error = None
+ return
+ Holder.__name__ = "get_entry_list_result_Holder"
+ self.pyclass = Holder
+
+ class get_entry_result_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "get_entry_result")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.get_entry_result_Def.schema
+ TClist = [GTD("http://www.sugarcrm.com/sugarcrm","field_list",lazy=False)(pname="field_list", aname="_field_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","entry_list",lazy=False)(pname="entry_list", aname="_entry_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._field_list = None
+ self._entry_list = None
+ self._error = None
+ return
+ Holder.__name__ = "get_entry_result_Holder"
+ self.pyclass = Holder
+
+ class set_entry_result_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "set_entry_result")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.set_entry_result_Def.schema
+ TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._id = None
+ self._error = None
+ return
+ Holder.__name__ = "set_entry_result_Holder"
+ self.pyclass = Holder
+
+ class set_entries_result_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "set_entries_result")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.set_entries_result_Def.schema
+ TClist = [GTD("http://www.sugarcrm.com/sugarcrm","select_fields",lazy=False)(pname="ids", aname="_ids", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._ids = None
+ self._error = None
+ return
+ Holder.__name__ = "set_entries_result_Holder"
+ self.pyclass = Holder
+
+ class id_mod_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "id_mod")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.id_mod_Def.schema
+ TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="date_modified", aname="_date_modified", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="deleted", aname="_deleted", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._id = None
+ self._date_modified = None
+ self._deleted = None
+ return
+ Holder.__name__ = "id_mod_Holder"
+ self.pyclass = Holder
+
+ class ids_mods_Def(ZSI.TC.Array, TypeDefinition):
+ #complexType/complexContent base="SOAP-ENC:Array"
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "ids_mods")
+ def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+ ofwhat = ns0.id_mod_Def(None, typed=False)
+ atype = (u'http://www.sugarcrm.com/sugarcrm', u'id_mod[]')
+ ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+ class get_relationships_result_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "get_relationships_result")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.get_relationships_result_Def.schema
+ TClist = [GTD("http://www.sugarcrm.com/sugarcrm","ids_mods",lazy=False)(pname="ids", aname="_ids", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._ids = None
+ self._error = None
+ return
+ Holder.__name__ = "get_relationships_result_Holder"
+ self.pyclass = Holder
+
+ class set_relationship_value_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "set_relationship_value")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.set_relationship_value_Def.schema
+ TClist = [ZSI.TC.String(pname="module1", aname="_module1", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="module1_id", aname="_module1_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="module2", aname="_module2", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="module2_id", aname="_module2_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._module1 = None
+ self._module1_id = None
+ self._module2 = None
+ self._module2_id = None
+ return
+ Holder.__name__ = "set_relationship_value_Holder"
+ self.pyclass = Holder
+
+ class set_relationship_list_Def(ZSI.TC.Array, TypeDefinition):
+ #complexType/complexContent base="SOAP-ENC:Array"
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "set_relationship_list")
+ def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw):
+ ofwhat = ns0.set_relationship_value_Def(None, typed=False)
+ atype = (u'http://www.sugarcrm.com/sugarcrm', u'set_relationship_value[]')
+ ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw)
+
+ class set_relationship_list_result_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "set_relationship_list_result")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.set_relationship_list_result_Def.schema
+ TClist = [ZSI.TCnumbers.Iint(pname="created", aname="_created", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="failed", aname="_failed", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._created = None
+ self._failed = None
+ self._error = None
+ return
+ Holder.__name__ = "set_relationship_list_result_Holder"
+ self.pyclass = Holder
+
+ class document_revision_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "document_revision")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.document_revision_Def.schema
+ TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="document_name", aname="_document_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="revision", aname="_revision", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="filename", aname="_filename", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="file", aname="_file", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._id = None
+ self._document_name = None
+ self._revision = None
+ self._filename = None
+ self._file = None
+ return
+ Holder.__name__ = "document_revision_Holder"
+ self.pyclass = Holder
+
+ class get_entry_list_result_encoded_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "get_entry_list_result_encoded")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ # ns = ns0.get_entry_list_result_encoded_Def.schema
+ TClist = [ZSI.TCnumbers.Iint(pname="result_count", aname="_result_count", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="next_offset", aname="_next_offset", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="total_count", aname="_total_count", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","select_fields",lazy=False)(pname="field_list", aname="_field_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="entry_list", aname="_entry_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._result_count = None
+ self._next_offset = None
+ self._total_count = None
+ self._field_list = None
+ self._entry_list = None
+ self._error = None
+ return
+ Holder.__name__ = "get_entry_list_result_encoded_Holder"
+ self.pyclass = Holder
+
+ class get_sync_result_encoded_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "get_sync_result_encoded")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ # ns = ns0.get_sync_result_encoded_Def.schema
+ TClist = [ZSI.TC.String(pname="result", aname="_result", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._result = None
+ self._error = None
+ return
+ Holder.__name__ = "get_sync_result_encoded_Holder"
+ self.pyclass = Holder
+
+ class get_quick_sync_result_encoded_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "get_quick_sync_result_encoded")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.get_quick_sync_result_encoded_Def.schema
+ TClist = [ZSI.TC.String(pname="result", aname="_result", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="result_count", aname="_result_count", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="next_offset", aname="_next_offset", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="total_count", aname="_total_count", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._result = None
+ self._result_count = None
+ self._next_offset = None
+ self._total_count = None
+ self._error = None
+ return
+ Holder.__name__ = "get_quick_sync_result_encoded_Holder"
+ self.pyclass = Holder
+
+ class return_document_revision_Def(ZSI.TCcompound.ComplexType, TypeDefinition):
+ schema = "http://www.sugarcrm.com/sugarcrm"
+ type = (schema, "return_document_revision")
+ def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw):
+ #ns = ns0.return_document_revision_Def.schema
+ TClist = [GTD("http://www.sugarcrm.com/sugarcrm","document_revision",lazy=False)(pname="document_revision", aname="_document_revision", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))]
+ self.attribute_typecode_dict = attributes or {}
+ if extend: TClist += ofwhat
+ if restrict: TClist = ofwhat
+ ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw)
+ class Holder:
+ __metaclass__ = pyclass_type
+ typecode = self
+ def __init__(self):
+ # pyclass
+ self._document_revision = None
+ self._error = None
+ return
+ Holder.__name__ = "return_document_revision_Holder"
+ self.pyclass = Holder
+
+# end class ns0 (tns: http://www.sugarcrm.com/sugarcrm)
diff --git a/addons/import_sugarcrm/wizard/__init__.py b/addons/import_sugarcrm/wizard/__init__.py
new file mode 100644
index 00000000000..6910c3981bd
--- /dev/null
+++ b/addons/import_sugarcrm/wizard/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+import import_message
diff --git a/addons/import_sugarcrm/wizard/import_message.py b/addons/import_sugarcrm/wizard/import_message.py
new file mode 100644
index 00000000000..7c9f1703282
--- /dev/null
+++ b/addons/import_sugarcrm/wizard/import_message.py
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL ().
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+from osv import fields, osv
+
+class import_message(osv.osv):
+ """Import Message"""
+
+ _name = "import.message"
+ _description = __doc__
+
+import_message()
diff --git a/addons/import_sugarcrm/wizard/import_message_view.xml b/addons/import_sugarcrm/wizard/import_message_view.xml
new file mode 100644
index 00000000000..581d862e408
--- /dev/null
+++ b/addons/import_sugarcrm/wizard/import_message_view.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+ import.message.form
+ import.message
+ form
+
+
+
+
+
+
+
\ No newline at end of file