[Erp5-report] r31448 kazuhiko - /erp5/trunk/products/ERP5/mixin/movement_collection_updater.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Dec 23 18:10:58 CET 2009


Author: kazuhiko
Date: Wed Dec 23 18:10:54 2009
New Revision: 31448

URL: http://svn.erp5.org?rev=31448&view=rev
Log:
initial attempt to aggregate passed prevision movement list (temporary simulation movements), i.e. if we have two same sale order lines (from matching tester point of view), only one simulation movement will be created for them.

Modified:
    erp5/trunk/products/ERP5/mixin/movement_collection_updater.py

Modified: erp5/trunk/products/ERP5/mixin/movement_collection_updater.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/mixin/movement_collection_updater.py?rev=31448&r1=31447&r2=31448&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/mixin/movement_collection_updater.py [utf8] (original)
+++ erp5/trunk/products/ERP5/mixin/movement_collection_updater.py [utf8] Wed Dec 23 18:10:54 2009
@@ -95,7 +95,22 @@
         else:
           tester_key.append(None)
       tester_key = tuple(tester_key)
-      prevision_movement_dict.setdefault(tester_key, []).append(movement)
+      # try to aggregate
+      group_list = prevision_movement_dict.setdefault(tester_key, [])
+      no_match = True
+      for group_movement in group_list:
+        if _compare(tester_list, group_movement, movement):
+          no_match = False
+          order = movement.getOrder()
+          if order is not None:
+            group_movement.setOrderList(
+              group_movement.getOrderList() + [order])
+          # XXX how to handle quantity unit conversion here?
+          group_movement.setQuantity(
+            group_movement.getQuantity() + movement.getQuantity())
+      if no_match:
+        group_list.append(movement)
+      prevision_movement_dict[tester_key] = group_list
 
     # Prepare a mapping between prevision and decision
     # The prevision_to_decision_map is a list of tuples




More information about the Erp5-report mailing list