[Erp5-report] r31337 kazuhiko - /erp5/trunk/products/ERP5/Document/NewOrderRule.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Dec 16 15:37:28 CET 2009
Author: kazuhiko
Date: Wed Dec 16 15:37:24 2009
New Revision: 31337
URL: http://svn.erp5.org?rev=31337&view=rev
Log:
define Rule class in NewOrderRule.py temporarily, that will be a super class of any rule in the new simulation implementation.
Modified:
erp5/trunk/products/ERP5/Document/NewOrderRule.py
Modified: erp5/trunk/products/ERP5/Document/NewOrderRule.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/NewOrderRule.py?rev=31337&r1=31336&r2=31337&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/NewOrderRule.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/NewOrderRule.py [utf8] Wed Dec 16 15:37:24 2009
@@ -38,17 +38,9 @@
MovementCollectionUpdaterMixin
from Products.ERP5.MovementCollectionDiff import _getPropertyAndCategoryList
-class NewOrderRule(RuleMixin, MovementCollectionUpdaterMixin, Predicate):
- """
- Order Rule object make sure an Order in the simulation
- is consistent with the real order
-
- WARNING: what to do with movement split ?
- """
- # CMF Type Definition
- meta_type = 'ERP5 New Order Rule'
- portal_type = 'New Order Rule'
-
+# XXX this class should be moved to Rule.py once new simulation is fully
+# integrated.
+class Rule(RuleMixin, MovementCollectionUpdaterMixin, Predicate):
# Declarative security
security = ClassSecurityInfo()
security.declareObjectProtected(Permissions.AccessContentsInformation)
@@ -70,6 +62,38 @@
PropertySheet.Version,
PropertySheet.Rule
)
+
+ security.declareProtected(Permissions.View, 'getDivergenceList')
+ def getDivergenceList(self, movement):
+ """
+ Returns a list of divergences of the movements provided
+ in delivery_or_movement.
+
+ movement -- a movement, a delivery, a simulation movement,
+ or a list thereof
+ """
+ if movement.getDelivery() is None:
+ return []
+ result_list = []
+ for divergence_tester in self._getDivergenceTesterList(
+ exclude_quantity=False):
+ result = divergence_tester.explain(movement)
+ if isinstance(result, (list, tuple)): # for compatibility
+ result_list.extend(result)
+ elif result is not None:
+ result_list.append(result)
+ return result_list
+
+class NewOrderRule(Rule):
+ """
+ Order Rule object make sure an Order in the simulation
+ is consistent with the real order
+
+ WARNING: what to do with movement split ?
+ """
+ # CMF Type Definition
+ meta_type = 'ERP5 New Order Rule'
+ portal_type = 'New Order Rule'
# XXX this method is missing in interface.
def isOrderable(self, movement):
More information about the Erp5-report
mailing list