From 0b75c584c3d778d8e5d08854335297c31b72b24d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Fri, 18 Jan 2008 17:16:44 +0000
Subject: [PATCH] PaymentTransaction_selectMovement could select movements by
 date

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@18797 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../PaymentTransaction_selectMovement.xml     |  5 ++-
 .../PaymentTransaction_zSelectMovement.xml    | 38 ++++++++++++++-----
 bt5/erp5_accounting/bt/revision               |  2 +-
 3 files changed, 34 insertions(+), 11 deletions(-)

diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/PaymentTransaction_selectMovement.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/PaymentTransaction_selectMovement.xml
index 74dade9ae9..634325acdb 100644
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/PaymentTransaction_selectMovement.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/PaymentTransaction_selectMovement.xml
@@ -70,9 +70,11 @@
 kw[\'parent_specialise_portal_type\'] = \'Payment Rule\'\n
 kw[\'portal_type\'] = \'Simulation Movement\'\n
 kw.update(context.portal_catalog.buildSQLQuery(**kw))\n
+kw[\'max_movement_date\'] = DateTime() + 30\n
 \n
-movement_list = [x.getObject() for x in context.PaymentTransaction_zSelectMovement(**kw)]\n
 LOG("SQL used = %s"%context.PaymentTransaction_zSelectMovement(src__=1, **kw))\n
+movement_list = [x.getObject() for x in context.PaymentTransaction_zSelectMovement(**kw)]\n
+\n
 LOG("movement_list = %s"%movement_list)\n
 return movement_list\n
 </string> </value>
@@ -124,6 +126,7 @@ return movement_list\n
                             <string>_getattr_</string>
                             <string>_apply_</string>
                             <string>context</string>
+                            <string>DateTime</string>
                             <string>append</string>
                             <string>$append0</string>
                             <string>_getiter_</string>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/PaymentTransaction_zSelectMovement.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/PaymentTransaction_zSelectMovement.xml
index ce552291a5..9e1faab64b 100644
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/PaymentTransaction_zSelectMovement.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/PaymentTransaction_zSelectMovement.xml
@@ -48,6 +48,12 @@
                                   </dictionary>
                                 </value>
                             </item>
+                            <item>
+                                <key> <string>max_movement_date</string> </key>
+                                <value>
+                                  <dictionary/>
+                                </value>
+                            </item>
                             <item>
                                 <key> <string>order_by_expression</string> </key>
                                 <value>
@@ -70,6 +76,7 @@
 <string>from_table_list</string>
 <string>where_expression</string>
 <string>order_by_expression</string>
+<string>max_movement_date</string>
                           </list>
                         </value>
                     </item>
@@ -88,7 +95,8 @@
             <key> <string>arguments_src</string> </key>
             <value> <string>from_table_list:list\r\n
 where_expression\r\n
-order_by_expression</string> </value>
+order_by_expression\r\n
+max_movement_date</string> </value>
         </item>
         <item>
             <key> <string>cache_time_</string> </key>
@@ -153,17 +161,23 @@ WHERE\n
     AND <dtml-var where_expression> \n
   </dtml-if>\n
 \n
-    AND parent.uid = catalog.parent_uid\n
+  AND parent.uid = catalog.parent_uid\n
   AND grandparent.uid = parent.parent_uid\n
-  AND grandparent.simulation_state  in (\'confirmed\', \'stopped\', \'delivered\')\n
 \n
-  AND movement.source_uid is not NULL\n
+  AND ((\n
+        grandparent.simulation_state  NOT IN (\'cancelled\', \'deleted\')\n
+    AND ( movement.start_date < <dtml-sqlvar max_movement_date type="datetime"> OR \n
+          movement.stop_date < <dtml-sqlvar max_movement_date type="datetime"> )\n
+  ) OR (\n
+        grandparent.simulation_state  in (\'confirmed\', \'stopped\', \'delivered\')\n
+  ))\n
+\n
   AND movement.uid = catalog.uid\n
   AND movement.resource_uid is not NULL\n
   AND category.category_uid is NULL\n
 \n
 <dtml-if order_by_expression>\n
-ORDER BY <dtml-var order_by_expression>\n
+  ORDER BY <dtml-var order_by_expression>\n
 </dtml-if>
 
 ]]></string> </value>
@@ -229,17 +243,23 @@ WHERE\n
     AND <dtml-var where_expression> \n
   </dtml-if>\n
 \n
-    AND parent.uid = catalog.parent_uid\n
+  AND parent.uid = catalog.parent_uid\n
   AND grandparent.uid = parent.parent_uid\n
-  AND grandparent.simulation_state  in (\'confirmed\', \'stopped\', \'delivered\')\n
 \n
-  AND movement.source_uid is not NULL\n
+  AND ((\n
+        grandparent.simulation_state  NOT IN (\'cancelled\', \'deleted\')\n
+    AND ( movement.start_date < <dtml-sqlvar max_movement_date type="datetime"> OR \n
+          movement.stop_date < <dtml-sqlvar max_movement_date type="datetime"> )\n
+  ) OR (\n
+        grandparent.simulation_state  in (\'confirmed\', \'stopped\', \'delivered\')\n
+  ))\n
+\n
   AND movement.uid = catalog.uid\n
   AND movement.resource_uid is not NULL\n
   AND category.category_uid is NULL\n
 \n
 <dtml-if order_by_expression>\n
-ORDER BY <dtml-var order_by_expression>\n
+  ORDER BY <dtml-var order_by_expression>\n
 </dtml-if>
 
 ]]></string> </value>
diff --git a/bt5/erp5_accounting/bt/revision b/bt5/erp5_accounting/bt/revision
index 64ae959863..ea5ca3642f 100644
--- a/bt5/erp5_accounting/bt/revision
+++ b/bt5/erp5_accounting/bt/revision
@@ -1 +1 @@
-546
\ No newline at end of file
+547
\ No newline at end of file
-- 
2.30.9