From 0153f990d23c460eb860c57dd0eb66bc4902bd19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Tue, 7 Feb 2006 19:43:14 +0000
Subject: [PATCH] use total_price instead of quantity be side independant

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@5617 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../AccountModule_statBalance.xml             |  24 ++-
 .../Account_zGetAccountingTransactionList.xml | 160 +++++++++--------
 ...nkAccount_getAccountingTransactionList.xml |  16 +-
 ...kAccount_zGetAccountingTransactionList.xml | 108 ++++++-----
 .../Entity_getAccountingTransactionList.xml   |  38 ++--
 .../Entity_zGetAccountingTransactionList.xml  | 168 +++++++++++-------
 6 files changed, 305 insertions(+), 209 deletions(-)

diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statBalance.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statBalance.xml
index 55db24ea3b..e59bf5227b 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statBalance.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/AccountModule_statBalance.xml
@@ -72,16 +72,23 @@ LOG=lambda message: context.log("AccountModule_statBalance", message)\n
 \n
 # read settings from user preference\n
 preference = context.getPortalObject().portal_preferences\n
-from_date = preference.getPreferredAccountingTransactionFromDate()\n
+from_date = preference.getPreferredAccountingTransactionFromDate()\\\n
+                      or kw.get(\'from_date\', None)\n
 if from_date :\n
   params[\'from_date\'] = from_date\n
-at_date = preference.getPreferredAccountingTransactionAtDate()\n
+  \n
+at_date = preference.getPreferredAccountingTransactionAtDate()\\\n
+                      or kw.get(\'at_date\', None)\n
 if at_date :\n
   params[\'at_date\'] = at_date\n
-simulation_state = preference.getPreferredAccountingTransactionSimulationStateList()\n
+\n
+simulation_state = preference.getPreferredAccountingTransactionSimulationStateList()\\\n
+                      or kw.get(\'simulation_state\', kw.get(\'transaction_simulation_state\', None))\n
 if simulation_state :\n
   params[\'simulation_state\'] = simulation_state\n
-section_category = preference.getPreferredAccountingTransactionSectionCategory()\n
+\n
+section_category = preference.getPreferredAccountingTransactionSectionCategory()\\\n
+                      or kw.get(\'section_category\', kw.get(\'transaction_section_category\', None))\n
 if section_category :\n
   params[\'section_category\'] = section_category\n
 \n
@@ -116,12 +123,14 @@ if kw.get(\'omit_input\'):\n
 if kw.get(\'omit_output\'):\n
   params[\'omit_output\'] = 1\n
 \n
+context.log(\'params\', params)\n
+context.log(\'at_date\', at_date)\n
 results = context.Resource_zStatInventory(omit_simulation=1,\n
                                          **params)\n
 row = results[0]\n
 total = 0\n
-if row.quantity :\n
-  total = row.quantity or 0.00\n
+if row.total_price :\n
+  total = row.total_price or 0.00\n
 return total\n
 \n
 # FIXME:\n
@@ -145,7 +154,7 @@ return context.portal_simulation.getInventory( omit_simulation=1, **params )\n
         </item>
         <item>
             <key> <string>_filepath</string> </key>
-            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/AccountModule_statBalance</string> </value>
+            <value> <string>Script (Python):/erp5/portal_skins/erp5_accounting/AccountModule_statBalance</string> </value>
         </item>
         <item>
             <key> <string>_params</string> </key>
@@ -183,6 +192,7 @@ return context.portal_simulation.getInventory( omit_simulation=1, **params )\n
                             <string>LOG</string>
                             <string>context</string>
                             <string>preference</string>
+                            <string>None</string>
                             <string>from_date</string>
                             <string>_write_</string>
                             <string>at_date</string>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_zGetAccountingTransactionList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_zGetAccountingTransactionList.xml
index 4a67d035d2..c0d9a88bc4 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_zGetAccountingTransactionList.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Account_zGetAccountingTransactionList.xml
@@ -47,31 +47,31 @@
                                 </value>
                             </item>
                             <item>
-                                <key> <string>destination_section_uid</string> </key>
+                                <key> <string>from_date</string> </key>
                                 <value>
                                   <dictionary/>
                                 </value>
                             </item>
                             <item>
-                                <key> <string>from_date</string> </key>
+                                <key> <string>getUid</string> </key>
                                 <value>
                                   <dictionary/>
                                 </value>
                             </item>
                             <item>
-                                <key> <string>getUid</string> </key>
+                                <key> <string>mirror_section_uid</string> </key>
                                 <value>
                                   <dictionary/>
                                 </value>
                             </item>
                             <item>
-                                <key> <string>no_destination_section_uid</string> </key>
+                                <key> <string>no_mirror_section_uid</string> </key>
                                 <value>
                                   <dictionary/>
                                 </value>
                             </item>
                             <item>
-                                <key> <string>no_source_payment_uid</string> </key>
+                                <key> <string>no_payment_uid</string> </key>
                                 <value>
                                   <dictionary/>
                                 </value>
@@ -88,6 +88,12 @@
                                   <dictionary/>
                                 </value>
                             </item>
+                            <item>
+                                <key> <string>payment_uid</string> </key>
+                                <value>
+                                  <dictionary/>
+                                </value>
+                            </item>
                             <item>
                                 <key> <string>resource_uid</string> </key>
                                 <value>
@@ -117,12 +123,6 @@
                                   <dictionary/>
                                 </value>
                             </item>
-                            <item>
-                                <key> <string>source_payment_uid</string> </key>
-                                <value>
-                                  <dictionary/>
-                                </value>
-                            </item>
                             <item>
                                 <key> <string>to_date</string> </key>
                                 <value>
@@ -159,23 +159,23 @@
                         <key> <string>_keys</string> </key>
                         <value>
                           <list>
-<string>selection</string>
-<string>selection_domain</string>
-<string>selection_report</string>
-<string>getUid</string>
-<string>where_expression</string>
-<string>omit_input</string>
-<string>omit_output</string>
-<string>resource_uid</string>
-<string>from_date</string>
-<string>to_date</string>
-<string>at_date</string>
-<string>transaction_simulation_state</string>
-<string>transaction_section_category</string>
-<string>source_payment_uid</string>
-<string>no_source_payment_uid</string>
-<string>destination_section_uid</string>
-<string>no_destination_section_uid</string>
+                            <string>selection</string>
+                            <string>selection_domain</string>
+                            <string>selection_report</string>
+                            <string>getUid</string>
+                            <string>where_expression</string>
+                            <string>omit_input</string>
+                            <string>omit_output</string>
+                            <string>resource_uid</string>
+                            <string>from_date</string>
+                            <string>to_date</string>
+                            <string>at_date</string>
+                            <string>transaction_simulation_state</string>
+                            <string>transaction_section_category</string>
+                            <string>payment_uid</string>
+                            <string>no_payment_uid</string>
+                            <string>mirror_section_uid</string>
+                            <string>no_mirror_section_uid</string>
                           </list>
                         </value>
                     </item>
@@ -217,10 +217,10 @@ to_date\r\n
 at_date\r\n
 transaction_simulation_state:list\r\n
 transaction_section_category\r\n
-source_payment_uid\r\n
-no_source_payment_uid\r\n
-destination_section_uid\r\n
-no_destination_section_uid</string> </value>
+payment_uid\r\n
+no_payment_uid\r\n
+mirror_section_uid\r\n
+no_mirror_section_uid</string> </value>
         </item>
         <item>
             <key> <string>cache_time_</string> </key>
@@ -265,13 +265,14 @@ SELECT\n
   DISTINCT transaction.uid, transaction.path,\n
   transaction_line.path as current_transaction_line_path,\n
   transaction.title as transaction_title,\n
-  destination_section.title AS third_party,\n
-  IF(stock.quantity > 0, stock.quantity, 0.0) AS source_debit,\n
-  IF(stock.quantity < 0, - stock.quantity, 0.0) AS source_credit,\n
-  stock.quantity AS source_balance,\n
-  stock.payment_uid AS source_payment_uid\n
+  mirror_section.title AS third_party,\n
+  IF(stock.total_price > 0, stock.total_price, 0.0) AS debit,\n
+  IF(stock.total_price < 0, - stock.total_price, 0.0) AS credit,\n
+  stock.date AS date,\n
+  transaction.source_reference AS specific_reference,\n
+  stock.total_price AS balance,\n
+  stock.payment_uid AS payment_uid\n
 FROM\n
-  movement,\n
   catalog,\n
   catalog  AS transaction_line,\n
   catalog  AS transaction,\n
@@ -283,38 +284,37 @@ FROM\n
   <dtml-if selection_report><dtml-var "selection_report.asSqlJoinExpression()">, </dtml-if>\n
   <dtml-if where_expression>, category </dtml-if>\n
   stock\n
-  LEFT JOIN catalog AS destination_section \n
-      ON destination_section.uid = stock.mirror_section_uid\n
+  LEFT JOIN catalog AS mirror_section\n
+      ON mirror_section.uid = stock.mirror_section_uid\n
         AND stock.node_uid = <dtml-var getUid>\n
 \n
 WHERE stock.node_uid = <dtml-var getUid>\n
-  AND transaction_line.uid = stock.uid \n
+  AND transaction_line.uid = stock.uid\n
   AND transaction_line.portal_type <> \'Simulation Movement\'\n
   AND transaction_line.parent_uid = transaction.uid\n
   AND catalog.uid = stock.section_uid\n
-  AND movement.uid = stock.uid\n
-  AND movement.is_accountable = 1\n
 <dtml-if resource_uid>\n
   AND (\n
   <dtml-in resource_uid>\n
-    movement.resource_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    stock.resource_uid = <dtml-sqlvar sequence-item type="int">\n
+          <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
 <dtml-if from_date>\n
-  AND movement.start_date >= <dtml-sqlvar from_date type="datetime">\n
+  AND stock.date >= <dtml-sqlvar from_date type="datetime">\n
 </dtml-if>\n
 <dtml-if at_date>\n
-  AND movement.start_date <= <dtml-sqlvar at_date type="datetime">\n
+  AND stock.date <= <dtml-sqlvar at_date type="datetime">\n
 </dtml-if>\n
 <dtml-if to_date>\n
-  AND movement.start_date < <dtml-sqlvar to_date type="datetime">\n
+  AND stock.date < <dtml-sqlvar to_date type="datetime">\n
 </dtml-if>\n
 <dtml-if omit_input>\n
-  AND stock.quantity < 0\n
+  AND stock.total_price < 0\n
 </dtml-if>\n
 <dtml-if omit_output>\n
-  AND stock.quantity > 0\n
+  AND stock.total_price > 0\n
 </dtml-if>\n
 <dtml-if source_payment_uid>\n
   AND stock.payment_uid = <dtml-sqlvar source_payment_uid type="int">\n
@@ -322,16 +322,17 @@ WHERE stock.node_uid = <dtml-var getUid>\n
 <dtml-if no_source_payment_uid>\n
   AND stock.payment_uid IS NULL\n
 </dtml-if>\n
-<dtml-if destination_section_uid>\n
-  AND stock.mirror_section_uid = <dtml-sqlvar destination_section_uid type="int">\n
+<dtml-if mirror_section_uid>\n
+  AND stock.mirror_section_uid = <dtml-sqlvar mirror_section_uid type="int">\n
 </dtml-if>\n
-<dtml-if no_destination_section_uid>\n
+<dtml-if no_mirror_section_uid>\n
   AND stock.mirror_section_uid IS NULL\n
 </dtml-if>\n
 <dtml-if transaction_simulation_state>\n
   AND (\n
   <dtml-in transaction_simulation_state>\n
-    transaction.simulation_state = <dtml-sqlvar sequence-item type="string"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    transaction.simulation_state = <dtml-sqlvar sequence-item type="string">\n
+            <dtml-if sequence-end><dtml-else> OR </dtml-if>\n
   </dtml-in>\n
   )\n
 <dtml-else>\n
@@ -340,7 +341,8 @@ WHERE stock.node_uid = <dtml-var getUid>\n
 </dtml-if>\n
   AND section.uid = stock.section_uid\n
 <dtml-if transaction_section_category>\n
-  AND section_c.relative_url = <dtml-sqlvar transaction_section_category type="string">\n
+  AND section_c.relative_url = <dtml-sqlvar\n
+          transaction_section_category type="string">\n
 </dtml-if>\n
   AND section_membership.category_uid =  section_c.uid\n
   AND section_membership.base_category_uid = section_bc.uid\n
@@ -356,7 +358,7 @@ WHERE stock.node_uid = <dtml-var getUid>\n
   AND <dtml-var "selection_report.asSqlExpression(strict_membership=1)">\n
 </dtml-if>\n
 ORDER BY\n
-  stop_date, transaction_line.uid\n
+  stock.date, transaction_line.uid\n
 </dtml-if>\n
 
 
@@ -401,13 +403,14 @@ SELECT\n
   DISTINCT transaction.uid, transaction.path,\n
   transaction_line.path as current_transaction_line_path,\n
   transaction.title as transaction_title,\n
-  destination_section.title AS third_party,\n
-  IF(stock.quantity > 0, stock.quantity, 0.0) AS source_debit,\n
-  IF(stock.quantity < 0, - stock.quantity, 0.0) AS source_credit,\n
-  stock.quantity AS source_balance,\n
-  stock.payment_uid AS source_payment_uid\n
+  mirror_section.title AS third_party,\n
+  IF(stock.total_price > 0, stock.total_price, 0.0) AS debit,\n
+  IF(stock.total_price < 0, - stock.total_price, 0.0) AS credit,\n
+  stock.date AS date,\n
+  transaction.source_reference AS specific_reference,\n
+  stock.total_price AS balance,\n
+  stock.payment_uid AS payment_uid\n
 FROM\n
-  movement,\n
   catalog,\n
   catalog  AS transaction_line,\n
   catalog  AS transaction,\n
@@ -419,38 +422,37 @@ FROM\n
   <dtml-if selection_report><dtml-var "selection_report.asSqlJoinExpression()">, </dtml-if>\n
   <dtml-if where_expression>, category </dtml-if>\n
   stock\n
-  LEFT JOIN catalog AS destination_section \n
-      ON destination_section.uid = stock.mirror_section_uid\n
+  LEFT JOIN catalog AS mirror_section\n
+      ON mirror_section.uid = stock.mirror_section_uid\n
         AND stock.node_uid = <dtml-var getUid>\n
 \n
 WHERE stock.node_uid = <dtml-var getUid>\n
-  AND transaction_line.uid = stock.uid \n
+  AND transaction_line.uid = stock.uid\n
   AND transaction_line.portal_type <> \'Simulation Movement\'\n
   AND transaction_line.parent_uid = transaction.uid\n
   AND catalog.uid = stock.section_uid\n
-  AND movement.uid = stock.uid\n
-  AND movement.is_accountable = 1\n
 <dtml-if resource_uid>\n
   AND (\n
   <dtml-in resource_uid>\n
-    movement.resource_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    stock.resource_uid = <dtml-sqlvar sequence-item type="int">\n
+          <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
 <dtml-if from_date>\n
-  AND movement.start_date >= <dtml-sqlvar from_date type="datetime">\n
+  AND stock.date >= <dtml-sqlvar from_date type="datetime">\n
 </dtml-if>\n
 <dtml-if at_date>\n
-  AND movement.start_date <= <dtml-sqlvar at_date type="datetime">\n
+  AND stock.date <= <dtml-sqlvar at_date type="datetime">\n
 </dtml-if>\n
 <dtml-if to_date>\n
-  AND movement.start_date < <dtml-sqlvar to_date type="datetime">\n
+  AND stock.date < <dtml-sqlvar to_date type="datetime">\n
 </dtml-if>\n
 <dtml-if omit_input>\n
-  AND stock.quantity < 0\n
+  AND stock.total_price < 0\n
 </dtml-if>\n
 <dtml-if omit_output>\n
-  AND stock.quantity > 0\n
+  AND stock.total_price > 0\n
 </dtml-if>\n
 <dtml-if source_payment_uid>\n
   AND stock.payment_uid = <dtml-sqlvar source_payment_uid type="int">\n
@@ -458,16 +460,17 @@ WHERE stock.node_uid = <dtml-var getUid>\n
 <dtml-if no_source_payment_uid>\n
   AND stock.payment_uid IS NULL\n
 </dtml-if>\n
-<dtml-if destination_section_uid>\n
-  AND stock.mirror_section_uid = <dtml-sqlvar destination_section_uid type="int">\n
+<dtml-if mirror_section_uid>\n
+  AND stock.mirror_section_uid = <dtml-sqlvar mirror_section_uid type="int">\n
 </dtml-if>\n
-<dtml-if no_destination_section_uid>\n
+<dtml-if no_mirror_section_uid>\n
   AND stock.mirror_section_uid IS NULL\n
 </dtml-if>\n
 <dtml-if transaction_simulation_state>\n
   AND (\n
   <dtml-in transaction_simulation_state>\n
-    transaction.simulation_state = <dtml-sqlvar sequence-item type="string"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    transaction.simulation_state = <dtml-sqlvar sequence-item type="string">\n
+            <dtml-if sequence-end><dtml-else> OR </dtml-if>\n
   </dtml-in>\n
   )\n
 <dtml-else>\n
@@ -476,7 +479,8 @@ WHERE stock.node_uid = <dtml-var getUid>\n
 </dtml-if>\n
   AND section.uid = stock.section_uid\n
 <dtml-if transaction_section_category>\n
-  AND section_c.relative_url = <dtml-sqlvar transaction_section_category type="string">\n
+  AND section_c.relative_url = <dtml-sqlvar\n
+          transaction_section_category type="string">\n
 </dtml-if>\n
   AND section_membership.category_uid =  section_c.uid\n
   AND section_membership.base_category_uid = section_bc.uid\n
@@ -492,7 +496,7 @@ WHERE stock.node_uid = <dtml-var getUid>\n
   AND <dtml-var "selection_report.asSqlExpression(strict_membership=1)">\n
 </dtml-if>\n
 ORDER BY\n
-  stop_date, transaction_line.uid\n
+  stock.date, transaction_line.uid\n
 </dtml-if>\n
 
 
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/BankAccount_getAccountingTransactionList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/BankAccount_getAccountingTransactionList.xml
index a94b4527b1..27748962a4 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/BankAccount_getAccountingTransactionList.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/BankAccount_getAccountingTransactionList.xml
@@ -104,12 +104,16 @@ net_balance = 0.0\n
 # \n
 for l in result:\n
   o = l.getObject()\n
-  net_balance += l.source_balance or 0.0\n
+  net_balance += l.balance or 0.0\n
   if o is not None:\n
-    c = o.asContext(net_balance = net_balance,\n
-                    source_balance=l.source_balance,\n
-                    source_credit=l.source_credit,\n
-                    source_debit=l.source_debit  )\n
+    c = o.asContext(  net_balance = net_balance,\n
+                      balance=l.balance,\n
+                      credit=l.credit,\n
+                      debit=l.debit,\n
+                      section_title=l.section_title,\n
+                      specific_reference=l.specific_reference,\n
+                      date=l.date,\n
+                   )\n
     new_result.append(c)\n
 \n
 return new_result\n
@@ -130,7 +134,7 @@ return new_result\n
         </item>
         <item>
             <key> <string>_filepath</string> </key>
-            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/BankAccount_getAccountingTransactionList</string> </value>
+            <value> <string>Script (Python):/erp5/portal_skins/erp5_accounting/BankAccount_getAccountingTransactionList</string> </value>
         </item>
         <item>
             <key> <string>_params</string> </key>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/BankAccount_zGetAccountingTransactionList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/BankAccount_zGetAccountingTransactionList.xml
index 63590781a3..306dfbe90f 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/BankAccount_zGetAccountingTransactionList.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/BankAccount_zGetAccountingTransactionList.xml
@@ -134,18 +134,18 @@
                         <key> <string>_keys</string> </key>
                         <value>
                           <list>
-<string>getUid</string>
-<string>getParentUid</string>
-<string>query</string>
-<string>omit_input</string>
-<string>omit_output</string>
-<string>resource_uid</string>
-<string>from_date</string>
-<string>at_date</string>
-<string>to_date</string>
-<string>transaction_simulation_state</string>
-<string>node_uid</string>
-<string>stat</string>
+                            <string>getUid</string>
+                            <string>getParentUid</string>
+                            <string>query</string>
+                            <string>omit_input</string>
+                            <string>omit_output</string>
+                            <string>resource_uid</string>
+                            <string>from_date</string>
+                            <string>at_date</string>
+                            <string>to_date</string>
+                            <string>transaction_simulation_state</string>
+                            <string>node_uid</string>
+                            <string>stat</string>
                           </list>
                         </value>
                     </item>
@@ -195,7 +195,9 @@ stat</string> </value>
         </item>
         <item>
             <key> <string>connection_hook</string> </key>
-            <value> <string></string> </value>
+            <value>
+              <none/>
+            </value>
         </item>
         <item>
             <key> <string>connection_id</string> </key>
@@ -220,14 +222,18 @@ stat</string> </value>
 <dtml-if getParentUid>\n
 SELECT\n
 <dtml-if stat>\n
-  SUM(stock.quantity) AS quantity\n
+  SUM(stock.total_price) AS quantity\n
 <dtml-else>\n
     catalog.uid\n
   , catalog.path\n
- -- , @runningTotal:=IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0)  - IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0) + @runningTotal AS net_balance\n
-  , IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0) AS source_debit\n
-  , IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0) AS source_credit\n
-  , - IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0)  + IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0) AS source_balance\n
+  , stock.date as date\n
+  , section.title as section_title\n
+  , IF(delivery.source_section_uid = stock.section_uid,\n
+       catalog.source_reference, catalog.destination_reference) AS specific_reference\n
+  , IFNULL(SUM(IF(stock.total_price > 0, stock.total_price, 0)), 0) AS debit\n
+  , IFNULL(SUM(IF(stock.total_price < 0, - stock.total_price, 0)), 0) AS credit\n
+  , - IFNULL(SUM(IF(stock.total_price < 0, - stock.total_price, 0)), 0)\n
+    + IFNULL(SUM(IF(stock.total_price > 0, stock.total_price, 0)), 0) AS balance\n
 </dtml-if>\n
 FROM\n
   movement\n
@@ -236,29 +242,36 @@ FROM\n
   , catalog\n
   , catalog AS node\n
   , category AS node_category\n
+  , catalog AS section\n
+  , delivery\n
 <dtml-if query>\n
   , category\n
 </dtml-if>\n
 WHERE stock.section_uid = <dtml-var getParentUid>\n
   AND stock.payment_uid = <dtml-var getUid>\n
-  AND child.uid = stock.uid \n
+  AND stock.mirror_section_uid = section.uid\n
+  AND delivery.uid = catalog.uid\n
+  AND child.uid = stock.uid\n
   AND child.parent_uid = catalog.uid\n
   AND movement.uid = stock.uid\n
   AND movement.is_accountable = 1\n
   AND node.uid = stock.node_uid\n
   AND node.uid = node_category.uid\n
-  AND node_category.category_uid = <dtml-sqlvar "portal_categories.account_type.asset.cash.getUid()"  type="int">\n
+  AND node_category.category_uid = <dtml-sqlvar\n
+          "portal_categories.account_type.asset.cash.getUid()"  type="int">\n
 <dtml-if node_uid>\n
   AND (\n
   <dtml-in node_uid>\n
-    stock.node_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    stock.node_uid = <dtml-sqlvar sequence-item type="int">\n
+      <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
 <dtml-if resource_uid>\n
   AND (\n
   <dtml-in resource_uid>\n
-    movement.resource_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    movement.resource_uid = <dtml-sqlvar sequence-item type="int">\n
+        <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
@@ -272,15 +285,16 @@ WHERE stock.section_uid = <dtml-var getParentUid>\n
   AND stock.date < <dtml-sqlvar to_date type="datetime">\n
 </dtml-if>\n
 <dtml-if omit_input>\n
-  AND stock.quantity > 0\n
+  AND stock.total_price > 0\n
 </dtml-if>\n
 <dtml-if omit_output>\n
-  AND stock.quantity < 0\n
+  AND stock.total_price < 0\n
 </dtml-if>\n
 <dtml-if transaction_simulation_state>\n
   AND (\n
   <dtml-in transaction_simulation_state>\n
-    catalog.simulation_state = <dtml-sqlvar sequence-item type="string"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    catalog.simulation_state = <dtml-sqlvar sequence-item type="string">\n
+        <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
@@ -289,9 +303,9 @@ WHERE stock.section_uid = <dtml-var getParentUid>\n
   AND <dtml-var query>\n
 </dtml-if>\n
 <dtml-unless stat>\n
-GROUP BY catalog.uid\n
+  GROUP BY catalog.uid\n
 </dtml-unless>\n
-ORDER BY stock.date, movement.uid\n
+  ORDER BY stock.date, movement.uid\n
 </dtml-if>\n
 
 
@@ -334,14 +348,18 @@ ORDER BY stock.date, movement.uid\n
 <dtml-if getParentUid>\n
 SELECT\n
 <dtml-if stat>\n
-  SUM(stock.quantity) AS quantity\n
+  SUM(stock.total_price) AS quantity\n
 <dtml-else>\n
     catalog.uid\n
   , catalog.path\n
- -- , @runningTotal:=IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0)  - IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0) + @runningTotal AS net_balance\n
-  , IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0) AS source_debit\n
-  , IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0) AS source_credit\n
-  , - IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0)  + IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0) AS source_balance\n
+  , stock.date as date\n
+  , section.title as section_title\n
+  , IF(delivery.source_section_uid = stock.section_uid,\n
+       catalog.source_reference, catalog.destination_reference) AS specific_reference\n
+  , IFNULL(SUM(IF(stock.total_price > 0, stock.total_price, 0)), 0) AS debit\n
+  , IFNULL(SUM(IF(stock.total_price < 0, - stock.total_price, 0)), 0) AS credit\n
+  , - IFNULL(SUM(IF(stock.total_price < 0, - stock.total_price, 0)), 0)\n
+    + IFNULL(SUM(IF(stock.total_price > 0, stock.total_price, 0)), 0) AS balance\n
 </dtml-if>\n
 FROM\n
   movement\n
@@ -350,29 +368,36 @@ FROM\n
   , catalog\n
   , catalog AS node\n
   , category AS node_category\n
+  , catalog AS section\n
+  , delivery\n
 <dtml-if query>\n
   , category\n
 </dtml-if>\n
 WHERE stock.section_uid = <dtml-var getParentUid>\n
   AND stock.payment_uid = <dtml-var getUid>\n
-  AND child.uid = stock.uid \n
+  AND stock.mirror_section_uid = section.uid\n
+  AND delivery.uid = catalog.uid\n
+  AND child.uid = stock.uid\n
   AND child.parent_uid = catalog.uid\n
   AND movement.uid = stock.uid\n
   AND movement.is_accountable = 1\n
   AND node.uid = stock.node_uid\n
   AND node.uid = node_category.uid\n
-  AND node_category.category_uid = <dtml-sqlvar "portal_categories.account_type.asset.cash.getUid()"  type="int">\n
+  AND node_category.category_uid = <dtml-sqlvar\n
+          "portal_categories.account_type.asset.cash.getUid()"  type="int">\n
 <dtml-if node_uid>\n
   AND (\n
   <dtml-in node_uid>\n
-    stock.node_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    stock.node_uid = <dtml-sqlvar sequence-item type="int">\n
+      <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
 <dtml-if resource_uid>\n
   AND (\n
   <dtml-in resource_uid>\n
-    movement.resource_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    movement.resource_uid = <dtml-sqlvar sequence-item type="int">\n
+        <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
@@ -386,15 +411,16 @@ WHERE stock.section_uid = <dtml-var getParentUid>\n
   AND stock.date < <dtml-sqlvar to_date type="datetime">\n
 </dtml-if>\n
 <dtml-if omit_input>\n
-  AND stock.quantity > 0\n
+  AND stock.total_price > 0\n
 </dtml-if>\n
 <dtml-if omit_output>\n
-  AND stock.quantity < 0\n
+  AND stock.total_price < 0\n
 </dtml-if>\n
 <dtml-if transaction_simulation_state>\n
   AND (\n
   <dtml-in transaction_simulation_state>\n
-    catalog.simulation_state = <dtml-sqlvar sequence-item type="string"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    catalog.simulation_state = <dtml-sqlvar sequence-item type="string">\n
+        <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
@@ -403,9 +429,9 @@ WHERE stock.section_uid = <dtml-var getParentUid>\n
   AND <dtml-var query>\n
 </dtml-if>\n
 <dtml-unless stat>\n
-GROUP BY catalog.uid\n
+  GROUP BY catalog.uid\n
 </dtml-unless>\n
-ORDER BY stock.date, movement.uid\n
+  ORDER BY stock.date, movement.uid\n
 </dtml-if>\n
 
 
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Entity_getAccountingTransactionList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Entity_getAccountingTransactionList.xml
index 160512609a..d266722e96 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Entity_getAccountingTransactionList.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Entity_getAccountingTransactionList.xml
@@ -77,13 +77,18 @@ preference = context.getPortalObject().portal_preferences\n
 from_date = preference.getPreferredAccountingTransactionFromDate()\n
 if from_date :\n
   kwd[\'from_date\'] = from_date\n
+\n
 at_date = preference.getPreferredAccountingTransactionAtDate()\n
 if at_date :\n
   kwd[\'at_date\'] = at_date\n
-simulation_state = preference.getPreferredAccountingTransactionSimulationStateList()\n
+\n
+simulation_state = preference\\\n
+              .getPreferredAccountingTransactionSimulationStateList()\n
 if simulation_state :\n
   kwd[\'transaction_simulation_state\'] = simulation_state\n
-section_category = preference.getPreferredAccountingTransactionSectionCategory()\n
+\n
+section_category = preference\\\n
+              .getPreferredAccountingTransactionSectionCategory()\n
 if section_category :\n
   kwd[\'transaction_section_category\'] = section_category\n
 \n
@@ -93,9 +98,9 @@ if kw.has_key(\'transaction_portal_type\'):\n
   kwd[\'transaction_portal_type\'] = kw[\'transaction_portal_type\']\n
 \n
 \n
-# FIXME: same problem as in BankAccount_getAccountingTransactionList\n
 \n
-#LOG("SQL used: %s" % context.Entity_zGetAccountingTransactionList(src__=1, **kwd))\n
+# FIXME: same problem as in BankAccount_getAccountingTransactionList\n
+# LOG("SQL used: %s" % context.Entity_zGetAccountingTransactionList(src__=1, **kwd))\n
 \n
 new_result = []\n
 result = context.Entity_zGetAccountingTransactionList(**kwd)\n
@@ -104,17 +109,20 @@ if src__:\n
 net_balance = 0.0\n
 for l in result:\n
   o = l.getObject()\n
-  net_balance += l.source_balance or 0.0\n
+  net_balance += l.balance or 0.0\n
   if o is not None:\n
-    c = o.asContext(net_balance = net_balance,\n
-                    source_balance=l.source_balance,\n
-                    source_credit=l.source_credit,\n
-                    source_debit=l.source_debit,\n
-                    date=l.date,\n
-                    parent_reference=l.parent_reference,\n
-                    parent_source_reference=l.parent_source_reference,\n
-                    translated_simulation_state_title = o.getTranslatedSimulationStateTitle(),\n
-                    portal_type=l.portal_type )\n
+    c = o.asContext( net_balance = net_balance,\n
+                     balance=l.balance,\n
+                     credit=l.credit,\n
+                     debit=l.debit,\n
+                     date=l.date,\n
+                     section_title=l.section_title,\n
+                     parent_reference=l.parent_reference,\n
+                     parent_specific_reference=l.parent_specific_reference,\n
+                     translated_simulation_state_title =\n
+                             o.getTranslatedSimulationStateTitle(),\n
+                     portal_type=l.portal_type,\n
+                     account_uid=l.account_uid, )\n
     new_result.append(c)\n
 \n
 return new_result\n
@@ -135,7 +143,7 @@ return new_result\n
         </item>
         <item>
             <key> <string>_filepath</string> </key>
-            <value> <string>Script (Python):/nexedi/portal_skins/erp5_accounting/Entity_getAccountingTransactionList</string> </value>
+            <value> <string>Script (Python):/erp5/portal_skins/erp5_accounting/Entity_getAccountingTransactionList</string> </value>
         </item>
         <item>
             <key> <string>_params</string> </key>
diff --git a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Entity_zGetAccountingTransactionList.xml b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Entity_zGetAccountingTransactionList.xml
index dfd0d97124..d628a21d35 100755
--- a/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Entity_zGetAccountingTransactionList.xml
+++ b/bt5/erp5_accounting/SkinTemplateItem/portal_skins/erp5_accounting/Entity_zGetAccountingTransactionList.xml
@@ -103,8 +103,8 @@
                                 <value>
                                   <dictionary>
                                     <item>
-                                        <key> <string>type</string> </key>
-                                        <value> <string>list</string> </value>
+                                        <key> <string>default</string> </key>
+                                        <value> <string></string> </value>
                                     </item>
                                   </dictionary>
                                 </value>
@@ -156,20 +156,21 @@
                         <key> <string>_keys</string> </key>
                         <value>
                           <list>
-<string>getUid</string>
-<string>query</string>
-<string>omit_input</string>
-<string>omit_output</string>
-<string>resource_uid</string>
-<string>from_date</string>
-<string>at_date</string>
-<string>to_date</string>
-<string>transaction_simulation_state</string>
-<string>transaction_section_category</string>
-<string>transaction_portal_type</string>
-<string>node_uid</string>
-<string>hide_grouping</string>
-<string>stat</string>
+                            <string>getUid</string>
+                            <string>query</string>
+                            <string>omit_input</string>
+                            <string>omit_output</string>
+                            <string>resource_uid</string>
+                            <string>from_date</string>
+                            <string>at_date</string>
+                            <string>to_date</string>
+                            <string>transaction_simulation_state</string>
+                            <string>transaction_section_category</string>
+                            <string>transaction_portal_type</string>
+                            <string>node_uid</string>
+                            <string>hide_grouping</string>
+                            <string>resource_uid</string>
+                            <string>stat</string>
                           </list>
                         </value>
                     </item>
@@ -205,6 +206,7 @@ transaction_section_category\r\n
 transaction_portal_type:list\r\n
 node_uid:list\r\n
 hide_grouping=""\r\n
+resource_uid=""\n
 stat</string> </value>
         </item>
         <item>
@@ -248,48 +250,65 @@ stat</string> </value>
 <dtml-if getUid>\n
 SELECT\n
 <dtml-if stat>\n
+  IFNULL(SUM(stock.total_price), 0.00) AS total_price,\n
   IFNULL(SUM(stock.quantity), 0.00) AS quantity\n
 <dtml-else>\n
   DISTINCT child.uid AS uid\n
   , child.path AS path\n
-  , stock.node_uid AS account_uid\n
   , stock.date AS date\n
+  , stock.node_uid AS account_uid\n
   , catalog.reference AS parent_reference\n
-  , catalog.source_reference AS parent_source_reference -- FIXME\n
+  , mirror_section.title AS section_title\n
+  , IF(stock.section_uid = delivery.source_section_uid,\n
+       catalog.source_reference,\n
+       catalog.destination_reference) AS parent_specific_reference\n
   , catalog.portal_type AS portal_type\n
-  , IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0.00) AS source_debit\n
-  , IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0.00) AS source_credit\n
-  , IFNULL(SUM(stock.quantity), 0.00) AS source_balance\n
+  <dtml-if resource_uid>\n
+    , IFNULL(SUM(IF(stock.quantity > 0,\n
+                  stock.quantity, 0)), 0.00) AS debit\n
+    , IFNULL(SUM(IF(stock.quantity < 0,\n
+                  - stock.quantity, 0)), 0.00) AS credit\n
+    , IFNULL(SUM(stock.quantity), 0.00) AS balance\n
+  <dtml-else>\n
+    , IFNULL(SUM(IF(stock.total_price > 0,\n
+                  stock.total_price, 0)), 0.00) AS debit\n
+    , IFNULL(SUM(IF(stock.total_price < 0,\n
+                  - stock.total_price, 0)), 0.00) AS credit\n
+    , IFNULL(SUM(stock.total_price), 0.00) AS balance\n
+  </dtml-if>\n
 </dtml-if>\n
 FROM\n
-  movement\n
-  , stock\n
+    stock\n
   , catalog AS child\n
   , catalog\n
   , catalog AS node\n
   , category AS node_category\n
   , category AS section_category\n
+  , catalog AS mirror_section\n
+  , delivery\n
 <dtml-if query>\n
   , category\n
 </dtml-if>\n
 WHERE stock.mirror_section_uid = <dtml-var getUid>\n
-  AND child.uid = stock.uid \n
+  AND child.uid = stock.uid\n
+  AND delivery.uid = catalog.uid\n
   AND child.parent_uid = catalog.uid\n
   AND child.portal_type <> "Simulation Movement"\n
-  AND movement.uid = stock.uid\n
-  AND movement.source_uid = node.uid\n
-  AND movement.is_accountable = 1\n
   AND node.uid = stock.node_uid\n
   AND node.uid = node_category.uid\n
   AND stock.section_uid = section_category.uid\n
-  AND (node_category.category_uid = <dtml-var expr="getPortalObject().portal_categories.account_type.asset.receivable.getUid()">\n
-    OR node_category.category_uid = <dtml-var expr="getPortalObject().portal_categories.account_type.liability.payable.getUid()">\n
+  AND section_category.uid = mirror_section.uid\n
+  AND (node_category.category_uid = <dtml-var\n
+    expr="getPortalObject().portal_categories.account_type.asset.receivable.getUid()">\n
+    OR node_category.category_uid = <dtml-var\n
+    expr="getPortalObject().portal_categories.account_type.liability.payable.getUid()">\n
   )\n
   AND node_category.category_strict_membership = 1\n
 <dtml-if transaction_portal_type>\n
   AND (\n
   <dtml-in transaction_portal_type>\n
-    catalog.portal_type = <dtml-sqlvar sequence-item type="string"><dtml-unless sequence-end> OR </dtml-unless>\n
+    catalog.portal_type = <dtml-sqlvar sequence-item type="string">\n
+              <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
@@ -297,14 +316,16 @@ WHERE stock.mirror_section_uid = <dtml-var getUid>\n
 <dtml-if node_uid>\n
   AND (\n
   <dtml-in node_uid>\n
-    stock.node_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    stock.node_uid = <dtml-sqlvar sequence-item type="int">\n
+            <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
 <dtml-if resource_uid>\n
   AND (\n
   <dtml-in resource_uid>\n
-    movement.resource_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    stock.resource_uid = <dtml-sqlvar sequence-item type="int">\n
+        <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
@@ -318,15 +339,17 @@ WHERE stock.mirror_section_uid = <dtml-var getUid>\n
   AND stock.date < <dtml-sqlvar to_date type="datetime">\n
 </dtml-if>\n
 <dtml-if omit_input>\n
-  AND stock.quantity > 0\n
+  AND stock.total_price > 0\n
 </dtml-if>\n
 <dtml-if omit_output>\n
-  AND stock.quantity < 0\n
+  AND stock.total_price < 0\n
 </dtml-if>\n
+  AND stock.total_price != 0\n
 <dtml-if transaction_simulation_state>\n
   AND (\n
   <dtml-in transaction_simulation_state>\n
-    catalog.simulation_state = <dtml-sqlvar sequence-item type="string"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    catalog.simulation_state = <dtml-sqlvar sequence-item type="string">\n
+        <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
@@ -335,16 +358,16 @@ WHERE stock.mirror_section_uid = <dtml-var getUid>\n
      <dtml-var expr="portal_categories.resolveCategory(transaction_section_category).getUid()">\n
 </dtml-if>\n
 <dtml-if hide_grouping>\n
-  AND (child.grouping_reference IS NULL or child.grouping_reference ="")\n
+  AND (child.grouping_reference IS NULL or child.grouping_reference = "")\n
 </dtml-if hide_grouping>\n
 <dtml-if query>\n
   AND category.uid = stock.section_uid\n
-AND <dtml-var query>\n
+  AND <dtml-var query>\n
 </dtml-if>\n
 <dtml-unless stat>\n
-GROUP BY catalog.uid, stock.node_uid\n
+  GROUP BY catalog.uid, stock.node_uid\n
 </dtml-unless>\n
-ORDER BY stock.date, child.uid\n
+  ORDER BY stock.date, child.uid\n
 </dtml-if>\n
 
 
@@ -387,48 +410,65 @@ ORDER BY stock.date, child.uid\n
 <dtml-if getUid>\n
 SELECT\n
 <dtml-if stat>\n
+  IFNULL(SUM(stock.total_price), 0.00) AS total_price,\n
   IFNULL(SUM(stock.quantity), 0.00) AS quantity\n
 <dtml-else>\n
   DISTINCT child.uid AS uid\n
   , child.path AS path\n
-  , stock.node_uid AS account_uid\n
   , stock.date AS date\n
+  , stock.node_uid AS account_uid\n
   , catalog.reference AS parent_reference\n
-  , catalog.source_reference AS parent_source_reference -- FIXME\n
+  , mirror_section.title AS section_title\n
+  , IF(stock.section_uid = delivery.source_section_uid,\n
+       catalog.source_reference,\n
+       catalog.destination_reference) AS parent_specific_reference\n
   , catalog.portal_type AS portal_type\n
-  , IFNULL(SUM(IF(stock.quantity > 0, stock.quantity, 0)), 0.00) AS source_debit\n
-  , IFNULL(SUM(IF(stock.quantity < 0, - stock.quantity, 0)), 0.00) AS source_credit\n
-  , IFNULL(SUM(stock.quantity), 0.00) AS source_balance\n
+  <dtml-if resource_uid>\n
+    , IFNULL(SUM(IF(stock.quantity > 0,\n
+                  stock.quantity, 0)), 0.00) AS debit\n
+    , IFNULL(SUM(IF(stock.quantity < 0,\n
+                  - stock.quantity, 0)), 0.00) AS credit\n
+    , IFNULL(SUM(stock.quantity), 0.00) AS balance\n
+  <dtml-else>\n
+    , IFNULL(SUM(IF(stock.total_price > 0,\n
+                  stock.total_price, 0)), 0.00) AS debit\n
+    , IFNULL(SUM(IF(stock.total_price < 0,\n
+                  - stock.total_price, 0)), 0.00) AS credit\n
+    , IFNULL(SUM(stock.total_price), 0.00) AS balance\n
+  </dtml-if>\n
 </dtml-if>\n
 FROM\n
-  movement\n
-  , stock\n
+    stock\n
   , catalog AS child\n
   , catalog\n
   , catalog AS node\n
   , category AS node_category\n
   , category AS section_category\n
+  , catalog AS mirror_section\n
+  , delivery\n
 <dtml-if query>\n
   , category\n
 </dtml-if>\n
 WHERE stock.mirror_section_uid = <dtml-var getUid>\n
-  AND child.uid = stock.uid \n
+  AND child.uid = stock.uid\n
+  AND delivery.uid = catalog.uid\n
   AND child.parent_uid = catalog.uid\n
   AND child.portal_type <> "Simulation Movement"\n
-  AND movement.uid = stock.uid\n
-  AND movement.source_uid = node.uid\n
-  AND movement.is_accountable = 1\n
   AND node.uid = stock.node_uid\n
   AND node.uid = node_category.uid\n
   AND stock.section_uid = section_category.uid\n
-  AND (node_category.category_uid = <dtml-var expr="getPortalObject().portal_categories.account_type.asset.receivable.getUid()">\n
-    OR node_category.category_uid = <dtml-var expr="getPortalObject().portal_categories.account_type.liability.payable.getUid()">\n
+  AND section_category.uid = mirror_section.uid\n
+  AND (node_category.category_uid = <dtml-var\n
+    expr="getPortalObject().portal_categories.account_type.asset.receivable.getUid()">\n
+    OR node_category.category_uid = <dtml-var\n
+    expr="getPortalObject().portal_categories.account_type.liability.payable.getUid()">\n
   )\n
   AND node_category.category_strict_membership = 1\n
 <dtml-if transaction_portal_type>\n
   AND (\n
   <dtml-in transaction_portal_type>\n
-    catalog.portal_type = <dtml-sqlvar sequence-item type="string"><dtml-unless sequence-end> OR </dtml-unless>\n
+    catalog.portal_type = <dtml-sqlvar sequence-item type="string">\n
+              <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
@@ -436,14 +476,16 @@ WHERE stock.mirror_section_uid = <dtml-var getUid>\n
 <dtml-if node_uid>\n
   AND (\n
   <dtml-in node_uid>\n
-    stock.node_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    stock.node_uid = <dtml-sqlvar sequence-item type="int">\n
+            <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
 <dtml-if resource_uid>\n
   AND (\n
   <dtml-in resource_uid>\n
-    movement.resource_uid = <dtml-sqlvar sequence-item type="int"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    stock.resource_uid = <dtml-sqlvar sequence-item type="int">\n
+        <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
@@ -457,15 +499,17 @@ WHERE stock.mirror_section_uid = <dtml-var getUid>\n
   AND stock.date < <dtml-sqlvar to_date type="datetime">\n
 </dtml-if>\n
 <dtml-if omit_input>\n
-  AND stock.quantity > 0\n
+  AND stock.total_price > 0\n
 </dtml-if>\n
 <dtml-if omit_output>\n
-  AND stock.quantity < 0\n
+  AND stock.total_price < 0\n
 </dtml-if>\n
+  AND stock.total_price != 0\n
 <dtml-if transaction_simulation_state>\n
   AND (\n
   <dtml-in transaction_simulation_state>\n
-    catalog.simulation_state = <dtml-sqlvar sequence-item type="string"><dtml-if sequence-end><dtml-else> OR </dtml-if>\n
+    catalog.simulation_state = <dtml-sqlvar sequence-item type="string">\n
+        <dtml-unless sequence-end> OR </dtml-unless>\n
   </dtml-in>\n
   )\n
 </dtml-if>\n
@@ -474,16 +518,16 @@ WHERE stock.mirror_section_uid = <dtml-var getUid>\n
      <dtml-var expr="portal_categories.resolveCategory(transaction_section_category).getUid()">\n
 </dtml-if>\n
 <dtml-if hide_grouping>\n
-  AND (child.grouping_reference IS NULL or child.grouping_reference ="")\n
+  AND (child.grouping_reference IS NULL or child.grouping_reference = "")\n
 </dtml-if hide_grouping>\n
 <dtml-if query>\n
   AND category.uid = stock.section_uid\n
-AND <dtml-var query>\n
+  AND <dtml-var query>\n
 </dtml-if>\n
 <dtml-unless stat>\n
-GROUP BY catalog.uid, stock.node_uid\n
+  GROUP BY catalog.uid, stock.node_uid\n
 </dtml-unless>\n
-ORDER BY stock.date, child.uid\n
+  ORDER BY stock.date, child.uid\n
 </dtml-if>\n
 
 
-- 
2.30.9