[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' _inherit = 'sale.order'
def _prepare_order_line_procurement(self, cr, uid, order, line, group_id=False, context=None): 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) 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 proc_data['sale_line_id'] = line.id
else:
proc_data = False
return proc_data 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): def _picked_rate(self, cr, uid, ids, name, arg, context=None):
if not ids: if not ids:
return {} return {}

View File

@ -650,6 +650,9 @@ class sale_order(osv.osv):
'name': order.name, 'partner_id': order.partner_shipping_id.id, '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): def action_ship_create(self, cr, uid, ids, context=None):
"""Create the required procurements to supply sales order lines, also connecting """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 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: for line in order.order_line:
if (line.state == 'done') or not line.product_id: if (line.state == 'done') or not line.product_id:
continue continue
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) vals = self._prepare_order_line_procurement(cr, uid, order, line, group_id=group_id, context=context)
if vals:
proc_id = procurement_obj.create(cr, uid, vals, context=context) proc_id = procurement_obj.create(cr, uid, vals, context=context)
proc_ids.append(proc_id) proc_ids.append(proc_id)