[Erp5-report] r39277 yo - /erp5/trunk/products/ERP5Legacy/Document/OpenOrderRule.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Oct 18 13:32:25 CEST 2010


Author: yo
Date: Mon Oct 18 13:32:21 2010
New Revision: 39277

URL: http://svn.erp5.org?rev=39277&view=rev
Log:
If calculation_base_date is passed explicitly, use that instead of calculating internally.

Modified:
    erp5/trunk/products/ERP5Legacy/Document/OpenOrderRule.py

Modified: erp5/trunk/products/ERP5Legacy/Document/OpenOrderRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Legacy/Document/OpenOrderRule.py?rev=39277&r1=39276&r2=39277&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Legacy/Document/OpenOrderRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5Legacy/Document/OpenOrderRule.py [utf8] Mon Oct 18 13:32:21 2010
@@ -49,7 +49,7 @@ class OpenOrderRule(DeliveryRule):
 
   # Simulation workflow
   security.declareProtected(Permissions.ModifyPortalContent, 'expand')
-  def expand(self, applied_rule, force=0, **kw):
+  def expand(self, applied_rule, force=0, calculation_base_date=None, **kw):
     """
       Expands the Order to a new simulation tree.
       expand is only allowed to modify a simulation movement if it doesn't
@@ -71,12 +71,16 @@ class OpenOrderRule(DeliveryRule):
         portal_type=order.getPortalOrderMovementTypeList())
 
       now = DateTime()
+      passed_calculation_base_date = calculation_base_date
       for order_movement in order_movement_list:
-        end_date = order_movement.getStopDate() - order.getForecastingTermDayCount()
-        if end_date > now:
-          calculation_base_date = now
+        if passed_calculation_base_date is None:
+          end_date = order_movement.getStopDate() - order.getForecastingTermDayCount()
+          if end_date > now:
+            calculation_base_date = now
+          else:
+            calculation_base_date = end_date
         else:
-          calculation_base_date = end_date
+          calculation_base_date = passed_calculation_base_date
         last_simulation_movement = self._getLastSimulationMovementValue(applied_rule, order_movement)
         if last_simulation_movement is not None:
           schedule_start_date = last_simulation_movement.getStartDate()




More information about the Erp5-report mailing list