[Erp5-report] r16062 - /erp5/trunk/products/ERP5/Tool/SimulationTool.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Sep 5 10:48:50 CEST 2007
Author: vincent
Date: Wed Sep 5 10:48:50 2007
New Revision: 16062
URL: http://svn.erp5.org?rev=16062&view=rev
Log:
Update group-by heuristic method:
- it's its job to handle group-by-resource-by-default behaviour when another group-by is provided
- move task of updating dictionnary from this method to caller, to make it easier to understand when reading caller
Modified:
erp5/trunk/products/ERP5/Tool/SimulationTool.py
Modified: erp5/trunk/products/ERP5/Tool/SimulationTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Tool/SimulationTool.py?rev=16062&r1=16061&r2=16062&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/SimulationTool.py (original)
+++ erp5/trunk/products/ERP5/Tool/SimulationTool.py Wed Sep 5 10:48:50 2007
@@ -806,20 +806,34 @@
"""
return self.getInventory(simulation_period='Future', **kw)
- def _getDefaultGroupByParameters(self, ignore_group_by=0, **kw):
+ def _getDefaultGroupByParameters(self, ignore_group_by=0,
+ group_by_node=0, group_by_mirror_node=0,
+ group_by_section=0, group_by_mirror_section=0,
+ group_by_payment=0,
+ group_by_variation=0, group_by_sub_variation=0,
+ group_by_movement=0,
+ group_by_resource=1,
+ **ignored):
"""
Set defaults group_by parameters
- """
- if not (ignore_group_by \
- or kw.get('group_by_node', 0) or kw.get('group_by_mirror_node', 0) \
- or kw.get('group_by_section', 0) or kw.get('group_by_mirror_section', 0) \
- or kw.get('group_by_payment', 0) or kw.get('group_by_sub_variation', 0) \
- or kw.get('group_by_variation', 0) or kw.get('group_by_movement', 0) \
- or kw.get('group_by_resource', 0)):
- kw['group_by_movement'] = 1
- kw['group_by_node'] = 1
- kw['group_by_resource'] = 1
- return kw
+
+ If ignore_group_by is true, this function returns an empty dict.
+
+ If any group-by is provided, automatically group by resource aswell
+ unless group_by_resource is explicitely set to false.
+ If no group by is provided, group by movement, node and resource.
+ """
+ new_group_by_dict = {}
+ if not ignore_group_by:
+ if group_by_node or group_by_mirror_node or group_by_section or \
+ group_by_mirror_section or group_by_payment or \
+ group_by_sub_variation or group_by_variation or group_by_movement:
+ new_group_by_dict['group_by_resource'] = group_by_resource
+ else:
+ new_group_by_dict['group_by_movement'] = 1
+ new_group_by_dict['group_by_node'] = 1
+ new_group_by_dict['group_by_resource'] = 1
+ return new_group_by_dict
security.declareProtected(Permissions.AccessContentsInformation,
'getInventoryList')
@@ -838,7 +852,7 @@
average, cost, etc.)
"""
# If no group at all, give a default sort group by
- kw = self._getDefaultGroupByParameters(**kw)
+ kw.update(self._getDefaultGroupByParameters(**kw))
sql_kw = self._generateSQLKeywordDict(**kw)
return self.Resource_zGetInventoryList(
src__=src__, ignore_variation=ignore_variation,
More information about the Erp5-report
mailing list