[FIX] project_mrp: removal of picked_rate as it was also removed in sale_stock module by fp's big refactoring of revision 8844. Seems like this is deprecated and useless
bzr revid: qdp-launchpad@openerp.com-20131220105722-qo110vpk626ge7zh
This commit is contained in:
parent
3972c0948c
commit
7226e699bb
|
@ -158,52 +158,4 @@ class sale_order_line(osv.osv):
|
|||
return True
|
||||
return super(sale_order_line, self).need_procurement(cr, uid, ids, context=context)
|
||||
|
||||
class sale_order(osv.osv):
|
||||
_inherit = 'sale.order'
|
||||
|
||||
def _picked_rate(self, cr, uid, ids, name, arg, context=None):
|
||||
if not ids:
|
||||
return {}
|
||||
res_sale = {}
|
||||
res = super(sale_order, self)._picked_rate(cr, uid, ids, name, arg, context=context)
|
||||
cr.execute('''select sol.order_id as sale_id, stage.closed as task_closed ,
|
||||
t.id as task_id, sum(sol.product_uom_qty) as total
|
||||
from project_task as t
|
||||
left join sale_order_line as sol on sol.id = t.sale_line_id
|
||||
left join project_task_type as stage on stage.id = t.stage_id
|
||||
where sol.order_id in %s group by sol.order_id,stage.closed,t.id ''',(tuple(ids),))
|
||||
sale_task_data = cr.dictfetchall()
|
||||
|
||||
if not sale_task_data:
|
||||
return res
|
||||
|
||||
for id in ids:
|
||||
res_sale[id] = {
|
||||
'number_of_done': 0,
|
||||
'total_no_task': 0,
|
||||
}
|
||||
#compute the sum of quantity for each SO
|
||||
cr.execute('''select sol.order_id as sale_id, sum(sol.product_uom_qty) as total
|
||||
from sale_order_line sol where sol.order_id in %s group by sol.order_id''',(tuple(ids),))
|
||||
total_qtty_ref = cr.dictfetchall()
|
||||
for item in total_qtty_ref:
|
||||
res_sale[item['sale_id']]['number_of_stockable'] = item['total']
|
||||
|
||||
for item in sale_task_data:
|
||||
res_sale[item['sale_id']]['total_no_task'] += item['total']
|
||||
if item['task_closed']:
|
||||
res_sale[item['sale_id']]['number_of_done'] += item['total']
|
||||
|
||||
for sale in self.browse(cr, uid, ids, context=context):
|
||||
if 'number_of_stockable' in res_sale[sale.id]:
|
||||
res_sale[sale.id]['number_of_stockable'] -= res_sale[sale.id]['total_no_task']
|
||||
#adjust previously percentage because now we must also count the product of type service
|
||||
res[sale.id] = res[sale.id] * float(res_sale[sale.id]['number_of_stockable']) / (res_sale[sale.id]['number_of_stockable'] + res_sale[sale.id]['total_no_task'])
|
||||
#add the task
|
||||
res[sale.id] += res_sale[sale.id]['number_of_done'] * 100 / (res_sale[sale.id]['number_of_stockable'] + res_sale[sale.id]['total_no_task'])
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'picked_rate': fields.function(_picked_rate, method=True, string='Picked', type='float'),
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue