[Erp5-report] r7361 - /erp5/trunk/products/ERP5/TargetSolver/CopyToTarget.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu May 18 17:21:25 CEST 2006


Author: alex
Date: Thu May 18 17:21:22 2006
New Revision: 7361

URL: http://svn.erp5.org?rev=7361&view=rev
Log:
set DeliveryError on simulation movement, so that the Delivery can converge
even if there is a floating point rounding error (99.0/98.0*98.0 != 99.0).

Modified:
    erp5/trunk/products/ERP5/TargetSolver/CopyToTarget.py

Modified: erp5/trunk/products/ERP5/TargetSolver/CopyToTarget.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/TargetSolver/CopyToTarget.py?rev=7361&r1=7360&r2=7361&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/TargetSolver/CopyToTarget.py (original)
+++ erp5/trunk/products/ERP5/TargetSolver/CopyToTarget.py Thu May 18 17:21:22 2006
@@ -100,15 +100,18 @@
       parent_movement = None
     return parent_movement, value_delta_dict
 
-  def _recursivelySolve(self, simulation_movement, **value_delta_dict):
+  def _recursivelySolve(self, simulation_movement, is_last_movement=1, **value_delta_dict):
     """
       Update value of the current simulation movement, and update
       his parent movement.
     """
     value_dict = self._generateValueDict(simulation_movement, **value_delta_dict)
     simulation_movement.edit(**value_dict)
+    if is_last_movement:
+      delivery_quantity = simulation_movement.getDeliveryValue().getQuantity()
+      simulation_movement.setDeliveryError(delivery_quantity - value_dict['quantity'])
     parent_movement, parent_value_delta_dict = \
                 self._getParentParameters(simulation_movement, **value_delta_dict)
     if parent_movement is not None:
       # Modify the parent movement
-      self._recursivelySolve(parent_movement, **parent_value_delta_dict)
+      self._recursivelySolve(parent_movement, is_last_movement=0, **parent_value_delta_dict)




More information about the Erp5-report mailing list