[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
This commit is contained in:
Cedric Snauwaert 2013-09-11 16:00:34 +02:00
parent e17e0a2e42
commit 2452ef4404
2 changed files with 13 additions and 7 deletions

View File

@ -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 {}

View File

@ -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)