From f162ad8845ada71545bfcd79d5a77e923e904618 Mon Sep 17 00:00:00 2001 From: "rha@tinyerp.com" <> Date: Mon, 3 Jan 2011 16:24:56 +0530 Subject: [PATCH 01/11] [Fix] stock: incoming shipments price is wrong lp bug: https://launchpad.net/bugs/696372 fixed bzr revid: rha@tinyerp.com-20110103105456-46dhel6b7b8891uc --- addons/purchase/purchase.py | 3 +- addons/stock/wizard/stock_partial_picking.py | 46 ++++++++++---------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 0de19189fc3..6adb726b97a 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -455,6 +455,7 @@ class purchase_order(osv.osv): 'state': 'draft', 'purchase_line_id': order_line.id, 'company_id': order.company_id.id, + 'price_unit': order_line.price_unit }) if order_line.move_dest_id: self.pool.get('stock.move').write(cr, uid, [order_line.move_dest_id.id], {'location_id':order.location_id.id}) @@ -672,7 +673,7 @@ class purchase_order_line(osv.osv): seller_delay = 0 prod_name = self.pool.get('product.product').name_get(cr, uid, [prod.id], context=context)[0][1] - res = {} + res = {} for s in prod.seller_ids: if s.name.id == partner_id: seller_delay = s.delay diff --git a/addons/stock/wizard/stock_partial_picking.py b/addons/stock/wizard/stock_partial_picking.py index ad75c142a96..305304e8c7e 100644 --- a/addons/stock/wizard/stock_partial_picking.py +++ b/addons/stock/wizard/stock_partial_picking.py @@ -32,24 +32,24 @@ class stock_partial_picking(osv.osv_memory): 'product_moves_out' : fields.one2many('stock.move.memory.out', 'wizard_id', 'Moves'), 'product_moves_in' : fields.one2many('stock.move.memory.in', 'wizard_id', 'Moves'), } - + def __is_in(self,cr, uid, pick_ids): """ @return: True if one of the moves has as picking type 'in' """ if not pick_ids: return False - + pick_obj = self.pool.get('stock.picking') pick_ids = pick_obj.search(cr, uid, [('id','in',pick_ids)]) - - + + 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): if self.__is_in(cr, uid, pick_ids): return "product_moves_in" @@ -62,11 +62,11 @@ class stock_partial_picking(osv.osv_memory): def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False,submenu=False): result = super(stock_partial_picking, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar,submenu) - - + + picking_ids = context.get('active_ids', False) picking_type = self.__get_picking_type(cr, uid, picking_ids) - + _moves_arch_lst = """
@@ -77,7 +77,7 @@ class stock_partial_picking(osv.osv_memory): 'product_moves_in' : {'relation': 'stock.move.memory.in', 'type' : 'one2many', 'string' : 'Product Moves'}, 'product_moves_out' : {'relation': 'stock.move.memory.out', 'type' : 'one2many', 'string' : 'Product Moves'} }) - + _moves_arch_lst += """