[REF]project_mrp: refector method: action_produce_assign_service in procurement.oder model to make internal method to convert qty into company time unit as planning hours

bzr revid: hmo@tinyerp.com-20111213085224-ns77hhhzz6dkodod
This commit is contained in:
Harry (OpenERP) 2011-12-13 14:22:24 +05:30
parent e4029d6055
commit 447e9987b9
1 changed files with 16 additions and 17 deletions

View File

@ -32,26 +32,27 @@ class procurement_order(osv.osv):
def check_produce_service(self, cr, uid, procurement, context=None):
return True
def _convert_qty_company_hours(self, cr, uid, procurement, context=None):
product_uom = self.pool.get('product.uom')
company_time_uom_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.project_time_mode_id.id
if procurement.product_uom.id != company_time_uom_id:
planned_hours = product_uom._compute_qty(cr, uid, procurement.product_uom.id, procurement.product_qty, company_time_uom_id)
else:
planned_hours = procurement.product_qty
return planned_hours
def action_produce_assign_service(self, cr, uid, ids, context=None):
project_obj = self.pool.get('project.project')
uom_obj = self.pool.get('product.uom')
default_uom = self.pool.get('res.users').browse(cr, uid, uid).company_id.project_time_mode_id.id
project_task = self.pool.get('project.task')
for procurement in self.browse(cr, uid, ids, context=context):
project_id = False
if procurement.product_id.project_id:
project_id = procurement.product_id.project_id.id
elif procurement.sale_line_id:
account_id = procurement.sale_line_id.order_id.project_id.id
if account_id:
project_ids = project_obj.search(cr, uid, [('analytic_account_id', '=', account_id)])
project_id = project_ids and project_ids[0] or False
if procurement.product_uom.id != default_uom:
planned_hours = uom_obj._compute_qty(cr, uid, procurement.product_uom.id, procurement.product_qty, default_uom)
else:
planned_hours = procurement.product_qty
self.write(cr, uid, [procurement.id], {'state': 'running'})
task_id = self.pool.get('project.task').create(cr, uid, {
project_id = procurement.sale_line_id.order_id.project_id.id
planned_hours = self._convert_qty_company_hours(cr, uid, procurement, context=context)
task_id = project_task.create(cr, uid, {
'name': '%s:%s' % (procurement.origin or '', procurement.product_id.name),
'date_deadline': procurement.date_planned,
'planned_hours':planned_hours,
@ -60,12 +61,10 @@ class procurement_order(osv.osv):
'notes': procurement.note,
'procurement_id': procurement.id,
'description': procurement.note,
'date_deadline': procurement.date_planned,
'project_id': project_id,
'state': 'draft',
'company_id': procurement.company_id.id,
},context=context)
self.write(cr, uid, [procurement.id],{'task_id':task_id})
self.write(cr, uid, [procurement.id], {'task_id':task_id, 'state': 'running'}, context=context)
return task_id
procurement_order()