[FIX] edi: get partner already exits or not using get_object and get_object_by_name.
bzr revid: hmo@tinyerp.com-20110916110800-8dec58lrgyilv144
This commit is contained in:
parent
52c5e29710
commit
63987af41e
|
@ -420,6 +420,12 @@ class edi(object):
|
|||
openobject = model.browse(cr, uid, data.res_id, context=context)
|
||||
return openobject
|
||||
|
||||
def edi_create_relation(self, cr, uid, relation_model, relation_value, context=None):
|
||||
relation_model = self.pool.get(relation_model)
|
||||
values = {} #relation_model.default_get(cr, uid, fields, context=context)
|
||||
values[relation_model._rec_name] = relation_value
|
||||
return relation_model.create(cr, uid, values, context=context)
|
||||
|
||||
def edi_import_relation(self, cr, uid, relation_model, relation_value, xml_id=None, context=None):
|
||||
relation = False
|
||||
if xml_id:
|
||||
|
@ -427,10 +433,7 @@ class edi(object):
|
|||
if not relation:
|
||||
relation = self.edi_get_object_by_name(cr, uid, relation_value, relation_model, context=context)
|
||||
if not relation:
|
||||
relation_model = self.pool.get(relation_model)
|
||||
values = {} #relation_model.default_get(cr, uid, fields, context=context)
|
||||
values[relation_model._rec_name] = relation_value
|
||||
relation_id = relation_model.create(cr, uid, values, context=context)
|
||||
relation_id = self.edi_create_relation(cr, uid, relation_model, relation_value, context=context)
|
||||
relation = relation_model.browse(cr, uid, relation_id, context=context)
|
||||
|
||||
record_xml = self.record_xml_id(cr, uid, relation, context=context)
|
||||
|
|
|
@ -54,13 +54,29 @@ class res_company(osv.osv):
|
|||
"""
|
||||
if values is None:
|
||||
values = {}
|
||||
partner_pool = self.pool.get('res.partner')
|
||||
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': 'res.partner',
|
||||
'__id' : edi_document['company_id'][0],
|
||||
'name' : edi_document['company_id'][1],
|
||||
'address': [edi_document['company_address']]
|
||||
'__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)
|
||||
|
||||
|
|
Loading…
Reference in New Issue