From 2452ef440477f66e54fd571b061c2e479bbc8a30 Mon Sep 17 00:00:00 2001 From: Cedric Snauwaert Date: Wed, 11 Sep 2013 16:00:34 +0200 Subject: [PATCH] [FIX]_prepare_order_line_procurement should not return False (cause problem with super), instead add another function to know if the so can create a procurement or not bzr revid: csn@openerp.com-20130911140034-5so2qbe4rd2m6131 --- addons/project_mrp/project_mrp.py | 12 ++++++++---- addons/sale/sale.py | 8 +++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/addons/project_mrp/project_mrp.py b/addons/project_mrp/project_mrp.py index 1d72375e03c..b4052509e38 100644 --- a/addons/project_mrp/project_mrp.py +++ b/addons/project_mrp/project_mrp.py @@ -153,14 +153,18 @@ class sale_order(osv.osv): _inherit = 'sale.order' def _prepare_order_line_procurement(self, cr, uid, order, line, group_id=False, context=None): - if not(line.product_id.type== "service" and not line.product_id.auto_create_task): - proc_data = super(sale_order, self)._prepare_order_line_procurement(cr, + proc_data = super(sale_order, self)._prepare_order_line_procurement(cr, uid, order, line, group_id = group_id, context=context) + if not(line.product_id.type== "service" and not line.product_id.auto_create_task): proc_data['sale_line_id'] = line.id - else: - proc_data = False return proc_data + def _check_create_procurement(self, cr, uid, order, line, context=None): + create = super(sale_order, self)._check_create_procurement(cr, uid, order, line, context=context) + if (line.product_id.type== "service" and not line.product_id.auto_create_task): + create = True + return create + def _picked_rate(self, cr, uid, ids, name, arg, context=None): if not ids: return {} diff --git a/addons/sale/sale.py b/addons/sale/sale.py index a2f961848ea..2b479442597 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -650,6 +650,9 @@ class sale_order(osv.osv): 'name': order.name, 'partner_id': order.partner_shipping_id.id, } + def _check_create_procurement(self, cr, uid, order, line, context=None): + return True + def action_ship_create(self, cr, uid, ids, context=None): """Create the required procurements to supply sales order lines, also connecting the procurements to appropriate stock moves in order to bring the goods to the @@ -671,9 +674,8 @@ class sale_order(osv.osv): for line in order.order_line: if (line.state == 'done') or not line.product_id: continue - - vals = self._prepare_order_line_procurement(cr, uid, order, line, group_id=group_id, context=context) - if vals: + if self._check_create_procurement(cr, uid, order, line, context=context): + vals = self._prepare_order_line_procurement(cr, uid, order, line, group_id=group_id, context=context) proc_id = procurement_obj.create(cr, uid, vals, context=context) proc_ids.append(proc_id)