From 00215e94e0703c0970109d2c04ed278e2132dea4 Mon Sep 17 00:00:00 2001
From: Romain Courteaud <romain@nexedi.com>
Date: Mon, 18 Apr 2005 08:58:14 +0000
Subject: [PATCH] Try to remove flushActivity.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@2900 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/Document/Order.py | 52 ++++++++++++++++++++--------------
 1 file changed, 30 insertions(+), 22 deletions(-)

diff --git a/product/ERP5/Document/Order.py b/product/ERP5/Document/Order.py
index f284655358..5205c89926 100755
--- a/product/ERP5/Document/Order.py
+++ b/product/ERP5/Document/Order.py
@@ -117,40 +117,48 @@ class Order(Delivery):
       # Make sure there is exactly one applied rule
       my_applied_rule_list = self.getCausalityRelatedValueList( \
                                             portal_type='Applied Rule')
-      if len(my_applied_rule_list) != 1:
+      if len(my_applied_rule_list)==0:
         # Make sure we have an order rule
         self._createOrderRule()
-      # Make sure there is exactly one applied rule
-      my_applied_rule_list = self.getCausalityRelatedValueList( \
+        my_applied_rule_list = self.getCausalityRelatedValueList( \
                                             portal_type='Applied Rule')
-      if len(my_applied_rule_list) != 1:
-        # XXX This is an error
-        raise CategoryError, "Order has no or too many order rule(s)"
+      elif len(my_applied_rule_list)>1:
+        raise SimulationError, 'Order %s has more than one applied rule.' %\
+                                self.getRelativeUrl()
+
       applied_rule = my_applied_rule_list[0].getObject()
       if applied_rule is None:
         # XXX This is an error
-        raise CategoryError, "Order has None order rule"
+        raise SimulationError, "Order %s has None order rule" %\
+                               self.getRelativeUrl()
+
       # Make sure applied rule has been reindexed
+      applied_rule.immediateReindexObject()
       # Make sure there are no more activities on this order related to expand
-      self.flushActivity(invoke=0, method_id='expand') 
+      # XXX do not use flushActivity anymore ! So, call expand to be sure...
+#       self.flushActivity(invoke=0, method_id='expand') 
       # Make sure expand is finished
       # We are expanding but are not allowed to if state wrong...
       # (ex. confirmed)
-      applied_rule.expand(force = 1)                   
+#       applied_rule.expand(force = 1)                   
+      applied_rule.expand()
       # thus, we mist force expand of applied order rule
-      applied_rule.flushActivity(invoke=1)
-      # Build delivery list on applied rule
-      # Currently, we build it 'again' but we should actually only build
-      # deliveries for orphaned movements
-      if self.getPortalType() == 'Production Order' :
-        delivery_list = self.ProductionOrder_buildDeliveryList() 
-        # Coramy specific moved to portal_simulation
-      #else:
-      elif self.getPortalType() in ('Purchase Order', 'Sale Order') :
-        delivery_list = self.Order_createPackingList() 
-        # Coramy specific should be moved to portal_simulation
-      #self.informDeliveryList(delivery_list=delivery_list, 
-      # comment=repr(delivery_list)) # XXX Not ready
+#       applied_rule.flushActivity(invoke=1)
+      # Make sure applied rule has been reindexed
+      applied_rule.recursiveImmediateReindexObject()
+
+#       # Build delivery list on applied rule
+#       # Currently, we build it 'again' but we should actually only build
+#       # deliveries for orphaned movements
+#       if self.getPortalType() == 'Production Order' :
+#         delivery_list = self.ProductionOrder_buildDeliveryList() 
+#         # Coramy specific moved to portal_simulation
+#       #else:
+#       elif self.getPortalType() in ('Purchase Order', 'Sale Order') :
+#         delivery_list = self.Order_createPackingList() 
+#         # Coramy specific should be moved to portal_simulation
+#       #self.informDeliveryList(delivery_list=delivery_list, 
+#       # comment=repr(delivery_list)) # XXX Not ready
 
     def applyToOrderRelatedMovement(self, portal_type='Simulation Movement', \
                                     method_id = 'expand'):
-- 
GitLab