diff --git a/openerp/addons/base/res/edi_res_company.py b/openerp/addons/base/res/edi_res_company.py index 53ddf487996..3cf236756a4 100644 --- a/openerp/addons/base/res/edi_res_company.py +++ b/openerp/addons/base/res/edi_res_company.py @@ -19,101 +19,105 @@ # ############################################################################## -from osv import osv -from osv import fields -from tools.translate import _ +#from osv import osv +#from osv import fields +#from tools.translate import _ -class res_company(osv.osv): - _inherit = "res.company" +# TODO: CHECK below, seems useless +# +#class res_company(osv.osv): +# """Helper subclass for res.company providing util methods for working with +# companies in the context of EDI import/export. The res.company object +# itself is not EDI-exportable""" +# _inherit = "res.company" +# +# def edi_import_as_partner(self, cr, uid, edi_document, values=None, context=None): +# """ +# import company as a new partner +# company_address data used to add address to new partner +# +# edi_document is a dict to have company datas +# edi_document = { +# 'company_address': { +# 'street': True, +# 'street2': True, +# 'zip': True, +# 'city': True, +# 'state_id': True, +# 'country_id': True, +# 'email': True, +# 'phone': True, +# +# }, +# 'company_id': True, +# } +# values is a dict to have other datas of partner which are need to import of partner record +# values = { +# 'customer': True, +# 'supplier': True, +# } +# """ +# if values is None: +# values = {} +# partner_model = 'res.partner' +# partner_pool = self.pool.get(partner_model) +# xml_id = edi_document['company_id'][0] +# company_address = edi_document.get('company_address', False) +# partner_name = edi_document['company_id'][1] +# partner = partner_pool.edi_get_object(cr, uid, xml_id, partner_model, context=context) +# if not partner: +# partner = partner_pool.edi_get_object_by_name(cr, uid, partner_name, partner_model, context=context) +# +# if partner: + #FIXME +# record_xml = partner_pool._get_external_id(cr, uid, [partner.id], context=context) +# if record_xml: +# module, xml_id = record_xml +# xml_id = '%s.%s' % (module, xml_id) +# +# edi_document_partner = { +# '__model': partner_model, +# '__id' : xml_id, +# 'name' : partner_name, +# } +# if company_address: +# edi_document_partner['address'] = [company_address] +# +# edi_document_partner.update(values) +# return partner_pool.edi_import(cr, uid, edi_document_partner, context=context) +# +# def edi_export_address(self, cr, uid, records, edi_address_struct=None, context=None): +# """Return a dict representation of the address of each company record, suitable for +# inclusion in an EDI document, and matching the given edi_address_struct if provided. +# +# :param list(browse_record) records: list of companies to export +# :rtype: list(dict) +# :return: list of dicts, where each dict contains the address representation for +# the company record as the same index in ``records``. +# """ +# if context is None: +# context = {} +# res_partner = self.pool.get('res.partner') +# res_partner_address = self.pool.get('res.partner.address') +# if edi_address_struct is None: +# edi_address_struct = { +# 'street': True, +# 'street2': True, +# 'zip': True, +# 'city': True, +# 'state_id': True, +# 'country_id': True, +# 'email': True, +# 'phone': True, +# } +# results = [] +# for company in records: +# res = res_partner.address_get(cr, uid, [company.partner_id.id], ['default', 'contact', 'invoice']) +# addr_id = res['invoice'] or res['contact'] or res['default'] +# result = {} +# if addr_id: +# address = res_partner_address.browse(cr, uid, addr_id, context=context) +# result = res_partner_address.edi_export(cr, uid, [address], edi_struct=edi_address_struct, context=ctx)[0] +# results.append(result) +# return results - def edi_import_as_partner(self, cr, uid, edi_document, values=None, context=None): - """ - import company as a new partner - company_address data used to add address to new partner - - edi_document is a dict to have company datas - edi_document = { - 'company_address': { - 'street': True, - 'street2': True, - 'zip': True, - 'city': True, - 'state_id': True, - 'country_id': True, - 'email': True, - 'phone': True, - - }, - 'company_id': True, - } - values is a dict to have other datas of partner which are need to import of partner record - values = { - 'customer': True, - 'supplier': True, - } - """ - if values is None: - values = {} - partner_model = 'res.partner' - partner_pool = self.pool.get(partner_model) - xml_id = edi_document['company_id'][0] - company_address = edi_document.get('company_address', False) - partner_name = edi_document['company_id'][1] - partner = partner_pool.edi_get_object(cr, uid, xml_id, partner_model, context=context) - if not partner: - partner = partner_pool.edi_get_object_by_name(cr, uid, partner_name, partner_model, context=context) - - if partner: - record_xml = partner_pool.record_xml_id(cr, uid, partner, context=context) - if record_xml: - module, xml_id = record_xml - xml_id = '%s.%s' % (module, xml_id) - - edi_document_partner = { - '__model': partner_model, - '__id' : xml_id, - 'name' : partner_name, - } - if company_address: - edi_document_partner['address'] = [company_address] - - edi_document_partner.update(values) - return partner_pool.edi_import(cr, uid, edi_document_partner, context=context) - - def edi_export_address(self, cr, uid, records, edi_address_struct=None, context=None): - if context is None: - context = {} - partner_pool = self.pool.get('res.partner') - partner_address_pool = self.pool.get('res.partner.address') - if edi_address_struct is None: - edi_address_struct = { - 'street': True, - 'street2': True, - 'zip': True, - 'city': True, - 'state_id': True, - 'country_id': True, - 'email': True, - 'phone': True, - - } - edi_company_dict = {} - for company in records: - edi_doc = {} - company_address = False - res = partner_pool.address_get(cr, uid, [company.partner_id.id], ['default', 'contact', 'invoice']) - addr_id = res['invoice'] or res['contact'] or res['default'] - if addr_id: - address = partner_address_pool.browse(cr, uid, addr_id, context=context) - ctx = context.copy() - ctx.update({'o2m_export':True}) - edi_address_dict_list = partner_address_pool.edi_export(cr, uid, [address], edi_struct=edi_address_struct, context=ctx) - if edi_address_dict_list: - company_address = edi_address_dict_list[0] - edi_doc.update({ - 'company_address': company_address, - #'company_logo': company.logo,#TODO - }) - edi_company_dict[company.id] = edi_doc - return edi_company_dict -res_company()