From 8718ff19ce81064ba4ee65fee37813974ca0f276 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Wed, 20 Apr 2011 12:56:11 +0530 Subject: [PATCH 1/5] [Fix]MRP: Setting one work order to In progress lp bug: https://launchpad.net/bugs/764281 fixed bzr revid: aag@tinyerp.co.in-20110420072611-oxsjmau6p8jshdxv --- addons/mrp_operations/mrp_operations.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py index 496dc1db5c1..0fd8b126051 100644 --- a/addons/mrp_operations/mrp_operations.py +++ b/addons/mrp_operations/mrp_operations.py @@ -232,10 +232,13 @@ class mrp_production(osv.osv): """ Finishes work order if production order is done. @return: Super method """ + work_obj = self.pool.get('mrp.production.workcenter.line') obj = self.browse(cr, uid, ids)[0] wf_service = netsvc.LocalService("workflow") for workcenter_line in obj.workcenter_lines: wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_done', cr) + if workcenter_line.state == 'draft': + work_obj.write(cr, uid, workcenter_line.id, {'state': 'done'}) return super(mrp_production,self).action_production_end(cr, uid, ids) def action_in_production(self, cr, uid, ids): @@ -243,9 +246,12 @@ class mrp_production(osv.osv): @return: True """ obj = self.browse(cr, uid, ids)[0] + workcenter_pool = self.pool.get('mrp.production.workcenter.line') wf_service = netsvc.LocalService("workflow") - for workcenter_line in obj.workcenter_lines: - wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_start_working', cr) + for prod in self.browse(cr, uid, ids): + workorder_ids = workcenter_pool.search(cr, uid, [('production_id', '=', prod.id)], limit=1) + for wo_id in workorder_ids: + wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wo_id, 'button_start_working', cr) return super(mrp_production,self).action_in_production(cr, uid, ids) def action_cancel(self, cr, uid, ids, context=None): From 784c5782742bed217967538fa4f0d1e7817e79e6 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Wed, 20 Apr 2011 17:08:30 +0530 Subject: [PATCH 2/5] [Fix]MRP:Need Fixing- Setting one work order to In progress lp bug: https://launchpad.net/bugs/764281 fixed bzr revid: aag@tinyerp.co.in-20110420113830-gq350i19dxzljfqr --- addons/mrp_operations/mrp_operations.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py index 0fd8b126051..0cde6d4ee3c 100644 --- a/addons/mrp_operations/mrp_operations.py +++ b/addons/mrp_operations/mrp_operations.py @@ -118,6 +118,7 @@ class mrp_production_workcenter_line(osv.osv): @param action: Action to perform. @return: Nothing """ + work_obj = self.pool.get('mrp.production.workcenter.line') wf_service = netsvc.LocalService("workflow") prod_obj_pool = self.pool.get('mrp.production') oper_obj = self.browse(cr, uid, ids)[0] @@ -138,7 +139,9 @@ class mrp_production_workcenter_line(osv.osv): flag = True for line in obj: if line.state != 'done': - flag = False + if line.state == 'draft': + wf_service.trg_validate(uid, 'mrp.production.workcenter.line', line.id, 'button_start_working', cr) + flag = False if flag: for production in prod_obj_pool.browse(cr, uid, [prod_obj.id], context= None): if production.move_lines or production.move_created_ids: @@ -237,8 +240,6 @@ class mrp_production(osv.osv): wf_service = netsvc.LocalService("workflow") for workcenter_line in obj.workcenter_lines: wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_done', cr) - if workcenter_line.state == 'draft': - work_obj.write(cr, uid, workcenter_line.id, {'state': 'done'}) return super(mrp_production,self).action_production_end(cr, uid, ids) def action_in_production(self, cr, uid, ids): From fa1b3c285b82636c9ccb955d9a3baa3e92e36c7f Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Wed, 20 Apr 2011 17:13:43 +0530 Subject: [PATCH 3/5] [Fix]MRP:Code Optimize lp bug: https://launchpad.net/bugs/764281 fixed bzr revid: aag@tinyerp.co.in-20110420114343-7qu7rws1y72wrhte --- addons/mrp_operations/mrp_operations.py | 1 - 1 file changed, 1 deletion(-) diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py index 0cde6d4ee3c..d4106717939 100644 --- a/addons/mrp_operations/mrp_operations.py +++ b/addons/mrp_operations/mrp_operations.py @@ -235,7 +235,6 @@ class mrp_production(osv.osv): """ Finishes work order if production order is done. @return: Super method """ - work_obj = self.pool.get('mrp.production.workcenter.line') obj = self.browse(cr, uid, ids)[0] wf_service = netsvc.LocalService("workflow") for workcenter_line in obj.workcenter_lines: From cdf19b641ec5ce3dd338acc6c08220fe6352828c Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Wed, 20 Apr 2011 17:42:56 +0530 Subject: [PATCH 4/5] [Fix]MRP:Again Optimize code bzr revid: aag@tinyerp.co.in-20110420121256-9eofhp13s17sddud --- addons/mrp_operations/mrp_operations.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py index d4106717939..73810f1bd75 100644 --- a/addons/mrp_operations/mrp_operations.py +++ b/addons/mrp_operations/mrp_operations.py @@ -139,8 +139,6 @@ class mrp_production_workcenter_line(osv.osv): flag = True for line in obj: if line.state != 'done': - if line.state == 'draft': - wf_service.trg_validate(uid, 'mrp.production.workcenter.line', line.id, 'button_start_working', cr) flag = False if flag: for production in prod_obj_pool.browse(cr, uid, [prod_obj.id], context= None): @@ -238,6 +236,8 @@ class mrp_production(osv.osv): obj = self.browse(cr, uid, ids)[0] wf_service = netsvc.LocalService("workflow") for workcenter_line in obj.workcenter_lines: + if workcenter_line.state == 'draft': + wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_start_working', cr) wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_done', cr) return super(mrp_production,self).action_production_end(cr, uid, ids) From 94cc1cc94843adbdec3021f668e33f0daf661201 Mon Sep 17 00:00:00 2001 From: "aag (OpenERP)" Date: Wed, 20 Apr 2011 17:48:01 +0530 Subject: [PATCH 5/5] [Fix]MRP:Again Optimize code 2 bzr revid: aag@tinyerp.co.in-20110420121801-7o1uizjpgi7p1hy1 --- addons/mrp_operations/mrp_operations.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py index 73810f1bd75..b816e053a26 100644 --- a/addons/mrp_operations/mrp_operations.py +++ b/addons/mrp_operations/mrp_operations.py @@ -118,7 +118,6 @@ class mrp_production_workcenter_line(osv.osv): @param action: Action to perform. @return: Nothing """ - work_obj = self.pool.get('mrp.production.workcenter.line') wf_service = netsvc.LocalService("workflow") prod_obj_pool = self.pool.get('mrp.production') oper_obj = self.browse(cr, uid, ids)[0] @@ -139,7 +138,7 @@ class mrp_production_workcenter_line(osv.osv): flag = True for line in obj: if line.state != 'done': - flag = False + flag = False if flag: for production in prod_obj_pool.browse(cr, uid, [prod_obj.id], context= None): if production.move_lines or production.move_created_ids: