diff --git a/addons/purchase/stock.py b/addons/purchase/stock.py
index d3cf16c42a8..3ed3987fbb3 100644
--- a/addons/purchase/stock.py
+++ b/addons/purchase/stock.py
@@ -135,30 +135,7 @@ class stock_picking_in(osv.osv):
_columns = {
'purchase_id': fields.many2one('purchase.order', 'Purchase Order',
ondelete='set null', select=True),
- 'purchase_invoice_method': fields.related('purchase_id', 'invoice_method', type='selection', selection=[('manual','Based on Purchase Order lines'),('order','Based on generated draft invoice'),('picking','Based on incoming shipments')], string='Purchase Invoice Method'),
'warehouse_id': fields.related('purchase_id', 'warehouse_id', type='many2one', relation='stock.warehouse', string='Destination Warehouse'),
}
- def view_invoice(self, cr, uid, ids, context=None):
- pur_obj = self.pool.get('purchase.order')
- models_data = self.pool.get('ir.model.data')
- pur_ids = []
- inv_ids = []
- for pur_id in self.browse(cr, uid, ids, context=context):
- pur_ids.append(pur_id.purchase_id.id)
- for po in pur_obj.browse(cr, uid, pur_ids, context=context):
- inv_ids+= [invoice.id for invoice in po.invoice_ids]
- form_view = models_data.get_object_reference(cr, uid, 'stock', 'view_stock_invoice_onshipping')
- if inv_ids:
- return pur_obj.view_invoice(cr, uid, pur_ids, context=context)
- else:
- return {
- 'name': _('Create Supplier Invoice'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'stock.invoice.onshipping',
- 'view_id': False,
- 'views': [(form_view and form_view[1] or False, 'form')],
- 'target': 'new',
- 'type': 'ir.actions.act_window',
- }
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/purchase/stock_view.xml b/addons/purchase/stock_view.xml
index f88a8e48950..188baeccd69 100644
--- a/addons/purchase/stock_view.xml
+++ b/addons/purchase/stock_view.xml
@@ -37,20 +37,6 @@
-
- stock.picking.in.form.inherit
- stock.picking.in
-
-
-
-
-
-
-
-
-
-
-
Purchase Picking Inherited
diff --git a/addons/stock/wizard/stock_partial_picking.py b/addons/stock/wizard/stock_partial_picking.py
index 61ae519f65f..3bacee38c4c 100644
--- a/addons/stock/wizard/stock_partial_picking.py
+++ b/addons/stock/wizard/stock_partial_picking.py
@@ -154,6 +154,26 @@ class stock_partial_picking(osv.osv_memory):
partial_move.update(update_cost=True, **self._product_cost_for_average_update(cr, uid, move))
return partial_move
+ def view_invoice(self, cr, uid, ids, context=None):
+ """Launch Create invoice wizard.
+ """
+ if context is None: context = {}
+ result = self.do_partial(cr, uid, ids, context=context)
+ partial = self.browse(cr, uid, ids[0], context=context)
+ context.update(active_model='stock.picking',
+ active_ids=[partial.picking_id.id])
+ if partial.picking_id.invoice_state == '2binvoiced':
+ return {
+ 'name': 'Create Invoice',
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'stock.invoice.onshipping',
+ 'type': 'ir.actions.act_window',
+ 'target': 'new',
+ 'context': context
+ }
+ return {'type': 'ir.actions.act_window_close'}
+
def do_partial(self, cr, uid, ids, context=None):
assert len(ids) == 1, 'Partial picking processing may only be done one at a time.'
stock_picking = self.pool.get('stock.picking')
diff --git a/addons/stock/wizard/stock_partial_picking_view.xml b/addons/stock/wizard/stock_partial_picking_view.xml
index 98f599da48b..4f760fa3519 100644
--- a/addons/stock/wizard/stock_partial_picking_view.xml
+++ b/addons/stock/wizard/stock_partial_picking_view.xml
@@ -32,6 +32,7 @@