From 7dde2be7913dd822c9ab6e240ed5eecc348d4d5d Mon Sep 17 00:00:00 2001 From: jke-openerp Date: Fri, 11 Oct 2013 18:04:23 +0200 Subject: [PATCH] task : misc - part 1 bzr revid: jke@openerp.com-20131011160423-arlw8cb809us4c9f --- addons/purchase/purchase.py | 41 +++++++++++++++++++ addons/purchase/purchase_view.xml | 2 +- addons/stock/product.py | 2 +- addons/stock/stock.py | 27 +++++++++--- addons/stock/stock_view.xml | 11 ++++- addons/stock_location/stock_location.py | 26 ++++++++++++ addons/stock_location/stock_location_view.xml | 11 ++++- 7 files changed, 109 insertions(+), 11 deletions(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 4e656649349..03d7e0987e4 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -422,6 +422,47 @@ class purchase_order(osv.osv): }) return action + + def view_picking_(self, cr, uid, ids, context=None): + ''' + This function returns an action that display existing picking orders of given purchase order ids. + ''' + + import ipdb; ipdb.set_trace() + + if context is None: + context = {} + mod_obj = self.pool.get('ir.model.data') + pick_ids = [] + for po in self.browse(cr, uid, ids, context=context): + pick_ids += [picking.id for picking in po.picking_ids] + + print(pick_ids) + + action_model, action_id = tuple(mod_obj.get_object_reference(cr, uid, 'stock', 'action_picking_tree')) + action = self.pool[action_model].read(cr, uid, action_id, context=context) + active_id = context.get('active_id',ids[0]) + picking_type_id = self.browse(cr, uid, active_id, context=context)['picking_type_id'].id + + ctx = eval(action['context'],{'active_id': picking_type_id}, nocopy=True) + ctx.update({ + 'search_default_purchase_id': ids[0] + }) + if pick_ids and len(pick_ids) == 1: + form_view_ids = [view_id for view_id, view in action['views'] if view == 'form'] + view_id = form_view_ids and form_view_ids[0] or False + action.update({ + 'views': [], + 'view_mode': 'form', + 'view_id': view_id, + 'res_id': pick_ids[0] + }) + + action.update({ + 'context': ctx, + }) + return action + def wkf_approve_order(self, cr, uid, ids, context=None): self.write(cr, uid, ids, {'state': 'approved', 'date_approve': fields.date.context_today(self,cr,uid,context=context)}) return True diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index 23ff2f3271e..8048910f53d 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -170,7 +170,7 @@