[Erp5-report] r17080 - in /erp5/trunk/products/ERP5: Tool/ tests/

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Oct 22 11:00:33 CEST 2007


Author: jerome
Date: Mon Oct 22 11:00:33 2007
New Revision: 17080

URL: http://svn.erp5.org?rev=17080&view=rev
Log:
support group_by_date in inventory API

Modified:
    erp5/trunk/products/ERP5/Tool/SimulationTool.py
    erp5/trunk/products/ERP5/tests/testInventoryAPI.py

Modified: erp5/trunk/products/ERP5/Tool/SimulationTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Tool/SimulationTool.py?rev=17080&r1=17079&r2=17080&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Tool/SimulationTool.py (original)
+++ erp5/trunk/products/ERP5/Tool/SimulationTool.py Mon Oct 22 11:00:33 2007
@@ -476,6 +476,7 @@
         group_by_variation=0,
         group_by_movement=0,
         group_by_resource=0,
+        group_by_date=0,
         # sort_on
         sort_on=None,
         # keywords for related keys
@@ -649,6 +650,8 @@
         group_by_expression_list.append('uid')
       if group_by_resource:
         group_by_expression_list.append('resource_uid')
+      if group_by_date:
+        group_by_expression_list.append('date')
       if group_by_expression_list:
         new_kw['group_by'] = group_by_expression_list
       return sql_kw, new_kw 
@@ -827,7 +830,7 @@
         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_movement=0, group_by_date=0,
         group_by_resource=None,
         **ignored):
       """
@@ -843,7 +846,8 @@
       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:
+           group_by_sub_variation or group_by_variation or \
+           group_by_movement or group_by_date:
           if group_by_resource is None:
             group_by_resource = 1
           new_group_by_dict['group_by_resource'] = group_by_resource

Modified: erp5/trunk/products/ERP5/tests/testInventoryAPI.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testInventoryAPI.py?rev=17080&r1=17079&r2=17080&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testInventoryAPI.py (original)
+++ erp5/trunk/products/ERP5/tests/testInventoryAPI.py Mon Oct 22 11:00:33 2007
@@ -692,6 +692,21 @@
                       None][0].inventory, 100)
     self.assertEquals([r for r in inventory_list if r.payment_uid ==
                        self.payment_node.getUid()][0].inventory, 200)
+
+  def test_GroupByDate(self):
+    # group by date currently only groups by *exact* date
+    getInventoryList = self.getSimulationTool().getInventoryList
+    self._makeMovement(quantity=1, start_date=DateTime(2000, 1, 1))
+    self._makeMovement(quantity=1, start_date=DateTime(2000, 1, 1))
+    self._makeMovement(quantity=1, start_date=DateTime(2001, 1, 1))
+    inventory_list = getInventoryList(node_uid=self.node.getUid(),
+                                      group_by_date=1)
+    self.assertEquals(2, len(inventory_list))
+    self.assertEquals([r for r in inventory_list
+                        if r.date.year() == 2000][0].inventory, 2)
+    self.assertEquals([r for r in inventory_list
+                        if r.date.year() == 2001][0].inventory, 1)
+
 
   def test_OmitInputOmitOutput(self):
     getInventoryList = self.getSimulationTool().getInventoryList




More information about the Erp5-report mailing list