From c05dea763fa05b826fcf775785f3d33aaadf636d Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Fri, 12 Aug 2011 15:00:56 +0530 Subject: [PATCH 1/3] [FIX] Linking Analytical Account form SO for Task lp bug: https://launchpad.net/bugs/821261 fixed bzr revid: jam@tinyerp.com-20110812093056-f63k8vnyx9cijz5n --- addons/project_mrp/project_procurement.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/addons/project_mrp/project_procurement.py b/addons/project_mrp/project_procurement.py index 0a7fa12ce6f..1602884078a 100644 --- a/addons/project_mrp/project_procurement.py +++ b/addons/project_mrp/project_procurement.py @@ -33,7 +33,18 @@ class procurement_order(osv.osv): return True def action_produce_assign_service(self, cr, uid, ids, context=None): + line_pool=self.pool.get('sale.order.line') + project_pool=self.pool.get('project.project') for procurement in self.browse(cr, uid, ids, context=context): + project_id = False + line_ids = line_pool.search(cr, uid , [('procurement_id', '=', procurement.id)]) + order_lines = line_pool.browse(cr, uid, line_ids) + for line in order_lines: + if line.product_id and line.product_id.project_id: + project_id = line.product_id.project_id.id + if not project_id and line.order_id.project_id: + project_id = project_pool.search(cr, uid , [('name', '=', line.order_id.project_id.name)]) + project_id = project_id and project_id[0] or False self.write(cr, uid, [procurement.id], {'state': 'running'}) planned_hours = procurement.product_qty task_id = self.pool.get('project.task').create(cr, uid, { @@ -46,7 +57,7 @@ class procurement_order(osv.osv): 'procurement_id': procurement.id, 'description': procurement.note, 'date_deadline': procurement.date_planned, - 'project_id': procurement.product_id.project_id and procurement.product_id.project_id.id or False, + 'project_id': project_id, 'state': 'draft', 'company_id': procurement.company_id.id, },context=context) From 2923c456a786c0d54588df5d8606aa08c3f18649 Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Thu, 20 Oct 2011 16:21:30 +0530 Subject: [PATCH 2/3] [FIX] project_mrp : Imporved code bzr revid: jam@tinyerp.com-20111020105130-yyn1xf1eakh5tndf --- addons/project_mrp/project_procurement.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/addons/project_mrp/project_procurement.py b/addons/project_mrp/project_procurement.py index 489535222f7..80d25bd15a7 100644 --- a/addons/project_mrp/project_procurement.py +++ b/addons/project_mrp/project_procurement.py @@ -37,15 +37,18 @@ class procurement_order(osv.osv): line_pool=self.pool.get('sale.order.line') project_pool=self.pool.get('project.project') for procurement in self.browse(cr, uid, ids, context=context): - project_id = False - line_ids = line_pool.search(cr, uid , [('procurement_id', '=', procurement.id)]) - order_lines = line_pool.browse(cr, uid, line_ids) - for line in order_lines: - if line.product_id and line.product_id.project_id: - project_id = line.product_id.project_id.id - if not project_id and line.order_id.project_id: - project_id = project_pool.search(cr, uid , [('name', '=', line.order_id.project_id.name)]) - project_id = project_id and project_id[0] or False + # project_id = the product's associated project if it exists, + # the sales order's associated project otherwise + if procurement.product_id.project_id: + project_id = procurement.product_id.project_id.id + else: + project_id = False + line_ids = line_pool.search(cr, uid , [('procurement_id', '=', procurement.id)]) + for line in line_pool.browse(cr, uid, line_ids): + if line.order_id.project_id: + project_id = line.order_id.project_id.id + break + self.write(cr, uid, [procurement.id], {'state': 'running'}) planned_hours = procurement.product_qty task_id = self.pool.get('project.task').create(cr, uid, { From a4afdc2be01c190e151000612ddb88bb192d52dc Mon Sep 17 00:00:00 2001 From: Jigar Amin - OpenERP Date: Thu, 20 Oct 2011 16:23:37 +0530 Subject: [PATCH 3/3] [FIX] project_mrp : Removed unused Veriable and iMport bzr revid: jam@tinyerp.com-20111020105337-3jrhebdk1lov5cb7 --- addons/project_mrp/project_procurement.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/addons/project_mrp/project_procurement.py b/addons/project_mrp/project_procurement.py index 80d25bd15a7..6066ba1149a 100644 --- a/addons/project_mrp/project_procurement.py +++ b/addons/project_mrp/project_procurement.py @@ -19,9 +19,7 @@ # ############################################################################## -from osv import fields, osv, orm - -import tools +from osv import fields, osv class procurement_order(osv.osv): _name = "procurement.order" @@ -35,7 +33,6 @@ class procurement_order(osv.osv): def action_produce_assign_service(self, cr, uid, ids, context=None): line_pool=self.pool.get('sale.order.line') - project_pool=self.pool.get('project.project') for procurement in self.browse(cr, uid, ids, context=context): # project_id = the product's associated project if it exists, # the sales order's associated project otherwise