From 984044c4b947611bb0e9c02cde5d64684c18ac09 Mon Sep 17 00:00:00 2001
From: Guillaume Michon <guillaume@nexedi.com>
Date: Fri, 24 Jun 2005 14:36:09 +0000
Subject: [PATCH] Some bug fix, and added some reindexing, because divergence
 status is indexed in catalog

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@3334 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/Document/DeliveryBuilder.py | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/product/ERP5/Document/DeliveryBuilder.py b/product/ERP5/Document/DeliveryBuilder.py
index 80658bae04..bab0d3e317 100755
--- a/product/ERP5/Document/DeliveryBuilder.py
+++ b/product/ERP5/Document/DeliveryBuilder.py
@@ -371,7 +371,7 @@ class DeliveryBuilder(XMLObject, Amount, Predicate):
     if collect_order_list != []:
       # Get sorted movement for each delivery line
       for group in movement_group.getGroupList():
-        self._deliveryLineGroupProcessing(
+        self._deliveryCellGroupProcessing(
                                     delivery_line, 
                                     group, 
                                     collect_order_list[1:], 
@@ -397,7 +397,7 @@ class DeliveryBuilder(XMLObject, Amount, Predicate):
           # update line
           object_to_update = delivery_line
           if self.testObjectProperties(delivery_line, property_dict):
-            if update_existing_movement == 1:
+            if update_existing_line == 1:
               # We update a initialized line
               update_existing_movement=1
 
@@ -464,6 +464,10 @@ class DeliveryBuilder(XMLObject, Amount, Predicate):
 
     # Update simulation movement
     simulation_movement.setDeliveryValue(delivery_movement)
+    # To update the divergence status, the simulation movement must be reindexed
+    # and the delivery must be touched.
+    simulation_movement.immediateReindexObject()
+    delivery_movement.edit()
 
   # Simulation consistency propagation
   security.declareProtected(Permissions.ModifyPortalContent, 
@@ -519,6 +523,11 @@ class DeliveryBuilder(XMLObject, Amount, Predicate):
             simulation_movement.setDeliveryRatio(mvt_ratio)
 
       movement.edit(quantity=total_quantity)
+      # To update the divergence status, the simulation movements
+      # must be reindexed, and then the delivery must be touched
+      for simulation_movement in movement.getDeliveryRelatedValueList():
+        simulation_movement.immediateReindexObject()
+      movement.edit()
 
     # Launch delivery creation
     if (create_new_delivery == 1) and\
-- 
2.30.9