diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index 553d398984b..8dbd27d1c5a 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -3,6 +3,7 @@
+
@@ -1447,7 +1448,7 @@
-
+
@@ -1510,9 +1511,9 @@
-
+
@@ -1530,7 +1531,7 @@
-
+
@@ -1551,7 +1552,7 @@
- Incoming Products
+ Incoming Packings
stock.move
ir.actions.act_window
form
@@ -1761,5 +1762,33 @@
calendar
+
+
+ Outcoming Packings
+ stock.move
+ ir.actions.act_window
+ form
+ tree,form
+ [('picking_id','!=',False),('picking_id.type','=','out')]
+
+ {"search_default_receive":1}
+
+
+
+
+
+ tree
+
+
+
+
+
+ form
+
+
+
+
+
+
diff --git a/addons/stock/wizard/stock_move.py b/addons/stock/wizard/stock_move.py
index cf290c2d011..9d3b2fd1ace 100644
--- a/addons/stock/wizard/stock_move.py
+++ b/addons/stock/wizard/stock_move.py
@@ -203,9 +203,12 @@ class split_in_production_lot(osv.osv_memory):
move = self.pool.get('stock.move').browse(cr, uid, context['active_id'], context=context)
if 'product_id' in fields:
res.update({'product_id': move.product_id.id})
+ if 'qty' in fields:
+ res.update({'qty': move.product_qty})
return res
_columns = {
+ 'qty': fields.integer('Quantity'),
'product_id': fields.many2one('product.product', 'Product', required=True, select=True),
'line_ids': fields.one2many('stock.move.split.lines', 'lot_id', 'Lots Number'),
'line_exist_ids': fields.one2many('stock.move.split.lines.exist', 'lot_id', 'Lots Existing Numbers'),
diff --git a/addons/stock/wizard/stock_move_view.xml b/addons/stock/wizard/stock_move_view.xml
index bc666e179c4..bba27bfe9c7 100644
--- a/addons/stock/wizard/stock_move_view.xml
+++ b/addons/stock/wizard/stock_move_view.xml
@@ -107,6 +107,7 @@
+
diff --git a/addons/stock/wizard/stock_partial_move.py b/addons/stock/wizard/stock_partial_move.py
index 4475e441622..9121f647264 100644
--- a/addons/stock/wizard/stock_partial_move.py
+++ b/addons/stock/wizard/stock_partial_move.py
@@ -180,6 +180,20 @@ class stock_partial_move(osv.osv_memory):
if 'move%s_product_uom'%(m.id) in fields:
res['move%s_product_uom'%(m.id)] = m.product_uom.id
+ if (m.picking_id.type == 'out') and (m.product_id.cost_method == 'average'):
+ price = 0
+ if hasattr(m, 'sale_line_id') and m.sale_line_id:
+ price = m.sale_line_id.price_unit
+
+ currency = False
+ if hasattr(m.picking_id, 'sale_id') and m.picking_id.sale_id:
+ currency = m.picking_id.sale_id.pricelist_id.currency_id.id
+
+ if 'move%s_product_price'%(m.id) in fields:
+ res['move%s_product_price'%(m.id)] = price
+ if 'move%s_product_currency'%(m.id) in fields:
+ res['move%s_product_currency'%(m.id)] = currency
+
if (m.picking_id.type == 'in') and (m.product_id.cost_method == 'average'):
price = 0
if hasattr(m, 'purchase_line_id') and m.purchase_line_id:
diff --git a/addons/stock/wizard/stock_partial_picking.py b/addons/stock/wizard/stock_partial_picking.py
index c5a931f567b..95e28e0d46d 100644
--- a/addons/stock/wizard/stock_partial_picking.py
+++ b/addons/stock/wizard/stock_partial_picking.py
@@ -52,7 +52,7 @@ class stock_partial_picking(osv.osv_memory):
if 'move%s_product_uom'%(m.id) not in self._columns:
self._columns['move%s_product_uom'%(m.id)] = fields.many2one('product.uom',string="Product UOM")
- if (pick.type == 'in') and (m.product_id.cost_method == 'average'):
+ if (m.product_id.cost_method == 'average'):
if 'move%s_product_price'%(m.id) not in self._columns:
self._columns['move%s_product_price'%(m.id)] = fields.float("Price")
if 'move%s_product_currency'%(m.id) not in self._columns:
@@ -63,16 +63,14 @@ class stock_partial_picking(osv.osv_memory):
result = super(stock_partial_picking, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar,submenu)
pick_obj = self.pool.get('stock.picking')
picking_ids = context.get('active_ids', False)
- picking_ids = pick_obj.search(cr, uid, [('id', 'in', picking_ids)])
- partner_id = set([pick.partner_id for pick in pick_obj.browse(cr, uid, picking_ids)])
_moves_arch_lst = """