[Erp5-report] r31940 kazuhiko - /erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Jan 25 16:33:38 CET 2010


Author: kazuhiko
Date: Mon Jan 25 16:33:37 2010
New Revision: 31940

URL: http://svn.erp5.org?rev=31940&view=rev
Log:
support BPM.

Modified:
    erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoicingRule.py
    erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/OrderRule.py

Modified: erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoicingRule.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoicingRule.py?rev=31940&r1=31939&r2=31940&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoicingRule.py [utf8] (original)
+++ erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/InvoicingRule.py [utf8] Mon Jan 25 16:33:37 2010
@@ -36,6 +36,7 @@
 from Products.ERP5.mixin.rule import RuleMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin
+from Products.ERP5.mixin.movement_generator import MovementGeneratorMixin
 from Products.ERP5.MovementCollectionDiff import _getPropertyAndCategoryList
 
 # XXX this class should be moved to Rule.py once new simulation is fully
@@ -125,7 +126,7 @@
     # or destination.
     return (movement.getSource() is None or movement.getDestination() is None)
 
-class InvoicingRuleMovementGenerator(object):
+class InvoicingRuleMovementGenerator(MovementGeneratorMixin):
   def getGeneratedMovementList(self, context, movement_list=None,
                                 rounding=False):
     """
@@ -135,8 +136,9 @@
     i.e. business paths are not taken into account.
     """
     ret = []
-    for movement in [context.getParentValue(),]:
-      kw = _getPropertyAndCategoryList(movement)
+    for input_movement, business_path in self \
+            ._getInputMovementAndPathTupleList(context):
+      kw = self._getPropertyAndCategoryList(input_movement, business_path)
       kw.update({'order':None,'delivery':None})
       simulation_movement = context.newContent(
         portal_type=RuleMixin.movement_type,
@@ -144,3 +146,6 @@
         **kw)
       ret.append(simulation_movement)
     return ret
+
+  def _getInputMovementList(self, context):
+    return [context.getParentValue(),]

Modified: erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/OrderRule.py
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/OrderRule.py?rev=31940&r1=31939&r2=31940&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/OrderRule.py [utf8] (original)
+++ erp5/trunk/bt5/erp5_simulation/DocumentTemplateItem/OrderRule.py [utf8] Mon Jan 25 16:33:37 2010
@@ -36,6 +36,7 @@
 from Products.ERP5.mixin.rule import RuleMixin
 from Products.ERP5.mixin.movement_collection_updater import \
      MovementCollectionUpdaterMixin
+from Products.ERP5.mixin.movement_generator import MovementGeneratorMixin
 from Products.ERP5.MovementCollectionDiff import _getPropertyAndCategoryList
 
 # XXX this class should be moved to Rule.py once new simulation is fully
@@ -128,7 +129,7 @@
     # or destination.
     return (movement.getSource() is None or movement.getDestination() is None)
 
-class OrderRuleMovementGenerator(object):
+class OrderRuleMovementGenerator(MovementGeneratorMixin):
   def getGeneratedMovementList(self, context, movement_list=None,
                                 rounding=False):
     """
@@ -137,17 +138,23 @@
     XXX This implementation is very primitive, and does not support BPM,
     i.e. business paths are not taken into account.
     """
+    ret = []
+    for input_movement, business_path in self \
+            ._getInputMovementAndPathTupleList(context):
+      kw = self._getPropertyAndCategoryList(input_movement, business_path)
+      simulation_movement = context.newContent(
+        portal_type=RuleMixin.movement_type,
+        temp_object=True,
+        order_value=input_movement,
+        **kw)
+      ret.append(simulation_movement)
+    return ret
+
+  def _getInputMovementList(self, context):
+    """Input movement list comes from order"""
     order = context.getDefaultCausalityValue()
     if order is None:
       return []
-    ret = []
-    for movement in order.getMovementList(
-      portal_type=order.getPortalOrderMovementTypeList()):
-      kw = _getPropertyAndCategoryList(movement)
-      simulation_movement = context.newContent(
-        portal_type=RuleMixin.movement_type,
-        temp_object=True,
-        order_value=movement,
-        **kw)
-      ret.append(simulation_movement)
-    return ret
+    else:
+      return order.getMovementList(
+        portal_type=order.getPortalOrderMovementTypeList())




More information about the Erp5-report mailing list