diff --git a/addons/stock/wizard/stock_partial_move.py b/addons/stock/wizard/stock_partial_move.py index 946a72d604d..b982a4023ef 100644 --- a/addons/stock/wizard/stock_partial_move.py +++ b/addons/stock/wizard/stock_partial_move.py @@ -64,7 +64,7 @@ class stock_partial_move(osv.osv_memory): move_ids = move_obj.search(cr, uid, [('id','in',move_ids)]) for move in move_obj.browse(cr, uid, move_ids): - if move.picking_id.type == 'in': + if move.picking_id.type == 'in' and move.product_id.cost_method == 'average': return True return False diff --git a/addons/stock/wizard/stock_partial_picking.py b/addons/stock/wizard/stock_partial_picking.py index 40d0fd47932..ad75c142a96 100644 --- a/addons/stock/wizard/stock_partial_picking.py +++ b/addons/stock/wizard/stock_partial_picking.py @@ -41,11 +41,13 @@ class stock_partial_picking(osv.osv_memory): return False pick_obj = self.pool.get('stock.picking') - move_ids = pick_obj.search(cr, uid, [('id','in',pick_ids)]) + pick_ids = pick_obj.search(cr, uid, [('id','in',pick_ids)]) + - for pick in pick_obj.browse(cr, uid, move_ids): - if pick.type == 'in': - return True + for pick in pick_obj.browse(cr, uid, pick_ids): + for move in pick.move_lines: + if pick.type == 'in' and move.product_id.cost_method == 'average': + return True return False def __get_picking_type(self, cr, uid, pick_ids): @@ -159,10 +161,10 @@ class stock_partial_picking(osv.osv_memory): continue partial_datas['move%s' % (move.id)] = { - 'product_id' : p_moves[move.id].id, - 'product_qty' : p_moves[move.id].quantity, - 'product_uom' :p_moves[move.id].product_uom.id, - 'prodlot_id' : p_moves[move.id].prodlot_id.id, + 'product_id' : p_moves[move.id].id, + 'product_qty' : p_moves[move.id].quantity, + 'product_uom' :p_moves[move.id].product_uom.id, + 'prodlot_id' : p_moves[move.id].prodlot_id.id, }