diff --git a/addons/stock/wizard/stock_partial_move.py b/addons/stock/wizard/stock_partial_move.py index 4a5206d1ef0..4475e441622 100644 --- a/addons/stock/wizard/stock_partial_move.py +++ b/addons/stock/wizard/stock_partial_move.py @@ -160,9 +160,19 @@ class stock_partial_move(osv.osv_memory): moveids = [] if 'date' in fields: res.update({'date': time.strftime('%Y-%m-%d %H:%M:%S')}) + move_ids = context.get('active_ids', []) + move_ids = move_obj.search(cr, uid, [('id','in',move_ids)]) for m in move_obj.browse(cr, uid, context.get('active_ids', [])): if m.state in ('done', 'cancel'): continue + address_ids = list(set([(pick.address_id and pick.address_id.id, pick.address_id and pick.address_id.partner_id and pick.address_id.partner_id.id) for pick in move_obj.browse(cr, uid, move_ids)])) + if len(address_ids) == 1: + address_id = address_ids[0][0] + partner_id = address_ids[0][1] + res['address_id'] = address_ids[0][0] + res['partner_id'] = address_ids[0][1] + else: + address_id = partner_id = False if 'move%s_product_id'%(m.id) in fields: res['move%s_product_id'%(m.id)] = m.product_id.id if 'move%s_product_qty'%(m.id) in fields: