281
281
if 'address_type' in data_record['shipping_address']:
282
282
data_record['shipping_address'].update(self.get_mage_customer_address_id(data_record['shipping_address']))
283
283
shipping_default = {}
287
res['partner_id'] = self.pool.get('res.partner').extid_to_oeid(cr, uid, data_record['customer_id'], external_referential_id)
288
# always update the customer when importing an order
289
partner_obj.get_external_data(
291
context.get('conn_obj'),
292
external_referential_id,
294
context={'id': data_record['customer_id']})
295
res['partner_id'] = partner_obj.extid_to_oeid(cr, uid, data_record['customer_id'], external_referential_id)
288
297
if res.get('partner_id', False):
289
298
shipping_default = {'partner_id': res.get('partner_id', False)}
290
299
billing_default = shipping_default.copy()
291
300
billing_default.update({'email' : data_record.get('customer_email', False)})
293
inv_res = partner_address_obj.ext_import(cr, uid, [data_record['billing_address']], external_referential_id, billing_default, context)
294
if 'address_type' in data_record['shipping_address']:
295
ship_res = partner_address_obj.ext_import(cr, uid, [data_record['shipping_address']], external_referential_id, shipping_default, context)
297
ship_res = partner_address_obj.ext_import(cr, uid, [data_record['billing_address']], external_referential_id, shipping_default, context)
299
res['partner_order_id'] = len(inv_res['create_ids']) > 0 and inv_res['create_ids'][0] or inv_res['write_ids'][0]
302
inv_res = partner_address_obj.ext_import(
303
cr, uid, [data_record['billing_address']], external_referential_id, billing_default, context)
304
res['partner_order_id'] = inv_res.get('create_ids') and inv_res['create_ids'][0] or inv_res['write_ids'][0]
300
305
res['partner_invoice_id'] = res['partner_order_id']
301
res['partner_shipping_id'] = (len(ship_res['create_ids']) > 0 and ship_res['create_ids'][0]) or (len(ship_res['write_ids']) > 0 and ship_res['write_ids'][0]) or res['partner_order_id'] #shipping might be the same as invoice address
307
if data_record['shipping_address']:
308
ship_res = partner_address_obj.ext_import(
309
cr, uid, [data_record['shipping_address']], external_referential_id, shipping_default, context)
310
res['partner_shipping_id'] = (ship_res.get('create_ids') and ship_res['create_ids'][0]) or \
311
(ship_res.get('write_ids') and ship_res['write_ids'][0]) \
314
# when there is no shipping address, use the order's one
315
if not res.get('partner_shipping_id'):
316
res['partner_shipping_id'] = res['partner_order_id']
303
318
result = partner_address_obj.read(cr, uid, res['partner_order_id'], ['partner_id'])
304
319
if result and result['partner_id']:
305
320
partner_id = result['partner_id'][0]