Kirti Savalia(OpenERP) has proposed merging 
lp:~openerp-dev/openobject-addons/trunk-bug-798890-ksa into 
lp:openobject-addons.

Requested reviews:
  Rucha (Open ERP) (rpa-openerp)
Related bugs:
  Bug #798890 in OpenERP Addons: "[trunk][procurement] MRP Scheduler 'looping' 
on confirmed procurement past scheduled date"
  https://bugs.launchpad.net/openobject-addons/+bug/798890

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-798890-ksa/+merge/82678

use for loop instead of while loop.
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-798890-ksa/+merge/82678
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/trunk-bug-798890-ksa.
=== modified file 'procurement/schedulers.py'
--- procurement/schedulers.py	2011-11-13 16:07:32 +0000
+++ procurement/schedulers.py	2011-11-18 13:07:34 +0000
@@ -61,7 +61,7 @@
 
             procurement_obj = self.pool.get('procurement.order')
             if not ids:
-                ids = procurement_obj.search(cr, uid, [('state', '=', 'exception')], order="date_planned")
+                ids = procurement_obj.search(cr, uid, [], order="date_planned", context=context)
             for id in ids:
                 wf_service.trg_validate(uid, 'procurement.order', id, 'button_restart', cr)
             if use_new_cursor:
@@ -74,7 +74,8 @@
             report_total = 0
             report_except = 0
             report_later = 0
-            while True:
+            report_ids = []
+            for id in ids:
                 ids = procurement_obj.search(cr, uid, [('state', '=', 'confirmed'), ('procure_method', '=', 'make_to_order')], offset=offset, limit=500, order='priority, date_planned', context=context)
                 for proc in procurement_obj.browse(cr, uid, ids, context=context):
                     if maxdate >= proc.date_planned:
@@ -91,14 +92,9 @@
                     report_total += 1
                 if use_new_cursor:
                     cr.commit()
-                if not ids:
-                    break
-            offset = 0
-            ids = []
-            while True:
-                report_ids = []
+
                 ids = procurement_obj.search(cr, uid, [('state', '=', 'confirmed'), ('procure_method', '=', 'make_to_stock')], offset=offset)
-                for proc in procurement_obj.browse(cr, uid, ids):
+                for proc in procurement_obj.browse(cr, uid, ids, context=context):
                     if maxdate >= proc.date_planned:
                         wf_service.trg_validate(uid, 'procurement.order', proc.id, 'button_check', cr)
                         report_ids.append(proc.id)
@@ -115,7 +111,6 @@
                 if use_new_cursor:
                     cr.commit()
                 offset += len(ids)
-                if not ids: break
             end_date = time.strftime('%Y-%m-%d, %Hh %Mm %Ss')
             if uid:
                 request = self.pool.get('res.request')

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to