From f1098e1162f6b3bdc9485e2190ef4f1cb7ea7647 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Mon, 21 Nov 2011 20:25:15 -0200 Subject: [PATCH 1/2] [REF] sale: use standard context argument in new modular picking creation methods appeared recently. NB this doesn't fix the fact the workflow engine doesn't pass us the context bzr revid: rvalyi@gmail.com-20111121222515-rkgdmc3hkhnojnli --- addons/sale/sale.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 2188f6dee5f..55413070a3a 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -676,7 +676,7 @@ class sale_order(osv.osv): return False return canceled - def _prepare_order_line_procurement(self, cr, uid, order, line, move_id, date_planned, *args): + def _prepare_order_line_procurement(self, cr, uid, order, line, move_id, date_planned, context=None): return { 'name': line.name, 'origin': order.name, @@ -695,7 +695,7 @@ class sale_order(osv.osv): 'company_id': order.company_id.id, } - def _prepare_order_line_move(self, cr, uid, order, line, picking_id, date_planned, *args): + def _prepare_order_line_move(self, cr, uid, order, line, picking_id, date_planned, context=None): location_id = order.shop_id.warehouse_id.lot_stock_id.id output_id = order.shop_id.warehouse_id.lot_output_id.id return { @@ -722,7 +722,7 @@ class sale_order(osv.osv): 'price_unit': line.product_id.standard_price or 0.0 } - def _prepare_order_picking(self, cr, uid, order, *args): + def _prepare_order_picking(self, cr, uid, order, context=None): pick_name = self.pool.get('ir.sequence').get(cr, uid, 'stock.picking.out') return { 'name': pick_name, @@ -772,13 +772,13 @@ class sale_order(osv.osv): if line.product_id: if line.product_id.product_tmpl_id.type in ('product', 'consu'): if not picking_id: - picking_id = picking_obj.create(cr, uid, self._prepare_order_picking(cr, uid, order, *args)) - move_id = move_obj.create(cr, uid, self._prepare_order_line_move(cr, uid, order, line, picking_id, date_planned, *args)) + picking_id = picking_obj.create(cr, uid, self._prepare_order_picking(cr, uid, order, {})) #TODO pass context if present + move_id = move_obj.create(cr, uid, self._prepare_order_line_move(cr, uid, order, line, picking_id, date_planned, {})) else: # a service has no stock move move_id = False - proc_id = procurement_obj.create(cr, uid, self._prepare_order_line_procurement(cr, uid, order, line, move_id, date_planned, *args)) + proc_id = procurement_obj.create(cr, uid, self._prepare_order_line_procurement(cr, uid, order, line, move_id, date_planned, {})) proc_ids.append(proc_id) line.write({'procurement_id': proc_id}) From e47622c9ce9dece49e0ffe6437ac7ec48e88ce0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Valyi?= Date: Mon, 21 Nov 2011 20:31:37 -0200 Subject: [PATCH 2/2] [REF] purchase: use standard context argument in new modular picking creation methods appeared recently. NB this doesn't fix the fact the workflow engine doesn't pass us the context bzr revid: rvalyi@gmail.com-20111121223137-go7ojq1ie05bffgw --- addons/purchase/purchase.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 0dc015834a0..8cb9a5d32cf 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -453,7 +453,7 @@ class purchase_order(osv.osv): self.log(cr, uid, id, message) return True - def _prepare_order_picking(self, cr, uid, order, *args): + def _prepare_order_picking(self, cr, uid, order, context=None): return { 'name': self.pool.get('ir.sequence').get(cr, uid, 'stock.picking.in'), 'origin': order.name + ((order.origin and (':' + order.origin)) or ''), @@ -466,7 +466,7 @@ class purchase_order(osv.osv): 'move_lines' : [], } - def _prepare_order_line_move(self, cr, uid, order, order_line, picking_id, *args): + def _prepare_order_line_move(self, cr, uid, order, order_line, picking_id, context=None): return { 'name': order.name + ': ' + (order_line.name or ''), 'product_id': order_line.product_id.id, @@ -487,7 +487,7 @@ class purchase_order(osv.osv): 'price_unit': order_line.price_unit } - def _create_pickings(self, cr, uid, order, order_lines, picking_id=False, *args): + def _create_pickings(self, cr, uid, order, order_lines, picking_id=False, context=None): """Creates pickings and appropriate stock moves for given order lines, then confirms the moves, makes them available, and confirms the picking. @@ -507,7 +507,7 @@ class purchase_order(osv.osv): :return: list of IDs of pickings used/created for the given order lines (usually just one) """ if not picking_id: - picking_id = self.pool.get('stock.picking').create(cr, uid, self._prepare_order_picking(cr, uid, order, *args)) + picking_id = self.pool.get('stock.picking').create(cr, uid, self._prepare_order_picking(cr, uid, order, context)) todo_moves = [] stock_move = self.pool.get('stock.move') wf_service = netsvc.LocalService("workflow") @@ -515,7 +515,7 @@ class purchase_order(osv.osv): if not order_line.product_id: continue if order_line.product_id.type in ('product', 'consu'): - move = stock_move.create(cr, uid, self._prepare_order_line_move(cr, uid, order, order_line, picking_id, *args)) + move = stock_move.create(cr, uid, self._prepare_order_line_move(cr, uid, order, order_line, picking_id, context)) if order_line.move_dest_id: order_line.move_dest_id.write({'location_id': order.location_id.id}) todo_moves.append(move) @@ -527,7 +527,7 @@ class purchase_order(osv.osv): def action_picking_create(self,cr, uid, ids, *args): picking_ids = [] for order in self.browse(cr, uid, ids): - picking_ids.extend(self._create_pickings(cr, uid, order, order.order_line, None, *args)) + picking_ids.extend(self._create_pickings(cr, uid, order, order.order_line, None, {}))#TODO propagate context the day we have it # Must return one unique picking ID: the one to connect in the subflow of the purchase order. # In case of multiple (split) pickings, we should return the ID of the critical one, i.e. the