[Erp5-report] r15847 - /erp5/trunk/products/ERP5/Tool/SimulationTool.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Aug 27 16:49:59 CEST 2007
Author: vincent
Date: Mon Aug 27 16:49:59 2007
New Revision: 15847
URL: http://svn.erp5.org?rev=15847&view=rev
Log:
Split up _generateSQLKeywordDict to be able to access the list of columns to group on.
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=15847&r1=15846&r2=15847&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/SimulationTool.py (original)
+++ erp5/trunk/products/ERP5/Tool/SimulationTool.py Mon Aug 27 16:49:59 2007
@@ -350,7 +350,18 @@
return omit_query
- def _generateSQLKeywordDict(self, table='stock',
+ def _generateSQLKeywordDict(self, table='stock', **kw):
+ sql_kw, new_kw = self._generateKeywordDict(table=table, **kw)
+ return self._generateSQLKeywordDictFromKeywordDict(table=table, sql_kw=sql_kw, new_kw=new_kw)
+
+ def _generateSQLKeywordDictFromKeywordDict(self, table, sql_kw, new_kw):
+ group_by = new_kw.pop('group_by', [])
+ if len(group_by):
+ new_kw['group_by_expression'] = ', '.join(['%s.%s' % (table, x) for x in group_by])
+ sql_kw.update(self.portal_catalog.buildSQLQuery(**new_kw))
+ return sql_kw
+
+ def _generateKeywordDict(self, table='stock',
# dates
from_date=None, to_date=None, at_date=None,
omit_mirror_date=1,
@@ -610,29 +621,27 @@
# build the group by expression
group_by_expression_list = []
if group_by_node:
- group_by_expression_list.append('%s.node_uid' % table)
+ group_by_expression_list.append('node_uid')
if group_by_mirror_node:
- group_by_expression_list.append('%s.mirror_node_uid' % table)
+ group_by_expression_list.append('mirror_node_uid')
if group_by_section:
- group_by_expression_list.append('%s.section_uid' % table)
+ group_by_expression_list.append('section_uid')
if group_by_mirror_section:
- group_by_expression_list.append('%s.mirror_section_uid' % table)
+ group_by_expression_list.append('mirror_section_uid')
if group_by_payment:
- group_by_expression_list.append('%s.payment_uid' % table)
+ group_by_expression_list.append('payment_uid')
if group_by_sub_variation:
- group_by_expression_list.append('%s.sub_variation_text' % table)
+ group_by_expression_list.append('sub_variation_text')
if group_by_variation:
- group_by_expression_list.append('%s.variation_text' % table)
+ group_by_expression_list.append('variation_text')
if group_by_movement:
- group_by_expression_list.append('%s.uid' % table)
+ group_by_expression_list.append('uid')
if group_by_expression_list:
# by default, we group by resource
if group_by_resource:
- group_by_expression_list.append('%s.resource_uid' % table)
- new_kw['group_by_expression'] = ', '.join(group_by_expression_list)
-
- sql_kw.update(self.portal_catalog.buildSQLQuery(**new_kw))
- return sql_kw
+ group_by_expression_list.append('resource_uid')
+ new_kw['group_by'] = group_by_expression_list
+ return sql_kw, new_kw
#######################################################
# Inventory management
More information about the Erp5-report
mailing list