[Erp5-report] r27968 - /erp5/trunk/products/ERP5/Document/Movement.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Jul 6 12:46:01 CEST 2009
Author: luke
Date: Mon Jul 6 12:45:55 2009
New Revision: 27968
URL: http://svn.erp5.org?rev=27968&view=rev
Log:
- enable BPM related isFrozen checking, only if BPM was used to generate movement
Modified:
erp5/trunk/products/ERP5/Document/Movement.py
Modified: erp5/trunk/products/ERP5/Document/Movement.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/Movement.py?rev=27968&r1=27967&r2=27968&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/Movement.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/Movement.py [utf8] Mon Jul 6 12:45:55 2009
@@ -497,25 +497,33 @@
'isFrozen')
def isFrozen(self):
"""
- Returns the frozen status of this movemnt.
+ Returns the frozen status of this movement.
a movement in started, stopped, delivered is automatically frozen.
If frozen is locally set to '0', we must check for a parent set to '1', in
which case, we want the children to be frozen as well.
- """
- # XXX Hardcoded
- # Maybe, we should use getPortalCurrentInventoryStateList
- # and another portal method for cancelled (and deleted)
-# LOG("Movement, isFrozen", DEBUG, "Hardcoded state list")
- if self.getSimulationState() in ('stopped', 'delivered', 'cancelled'):
- return 1
+
+ BPM evaluation allows to set frozen state list per Business Path.
+ """
+ business_path = self.getCausalityValue(portal_type='Business Path')
+ if business_path is None:
+ # XXX Hardcoded
+ # Maybe, we should use getPortalCurrentInventoryStateList
+ # and another portal method for cancelled (and deleted)
+ # LOG("Movement, isFrozen", DEBUG, "Hardcoded state list")
+ if self.getSimulationState() in ('stopped', 'delivered', 'cancelled'):
+ return 1
+ else:
+ # conditional BPM enabled frozen state check
+ LOG("Movement.isFrozen", WARNING, "%s is using BPM experimental \
+ evaluation" % self.getPath())
+ # BPM dynamic configuration
+ if self.getSimulationState() in business_path.getFrozenStateList():
+ return True
+
+ # manually frozen
if self._baseIsFrozen() == 0:
self._baseSetFrozen(None)
- return self._baseGetFrozen() or 0
- # Future implementation - for information
- path = self.getCausalityValue()
- if path is not None:
- return self.getSimulationState() in path.getCompletedSimulationStateList()
- return False
+ return self._baseGetFrozen() or False
security.declareProtected( Permissions.AccessContentsInformation,
'getExplanation')
More information about the Erp5-report
mailing list