From b4ba5710e1ac84e7a3c56d23e0a4b71740e0582f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Tue, 5 Feb 2013 14:43:35 +0100
Subject: [PATCH] reimplement ContainerLine.getTotalQuantity using ZODB

to get rid of movement table dependancy
---
 .../erp5_trade/ContainerLine_zGetTotal.xml    | 75 -------------------
 product/ERP5/Document/ContainerLine.py        |  6 +-
 2 files changed, 2 insertions(+), 79 deletions(-)
 delete mode 100644 bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/ContainerLine_zGetTotal.xml

diff --git a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/ContainerLine_zGetTotal.xml b/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/ContainerLine_zGetTotal.xml
deleted file mode 100644
index 46fb02b184..0000000000
--- a/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/ContainerLine_zGetTotal.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="SQL" module="Products.ZSQLMethods.SQL"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>allow_simple_one_argument_traversal</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>arguments_src</string> </key>
-            <value> <string>uid</string> </value>
-        </item>
-        <item>
-            <key> <string>cache_time_</string> </key>
-            <value> <int>0</int> </value>
-        </item>
-        <item>
-            <key> <string>class_file_</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>class_name_</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>connection_hook</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>connection_id</string> </key>
-            <value> <string>erp5_sql_connection</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>ContainerLine_zGetTotal</string> </value>
-        </item>
-        <item>
-            <key> <string>max_cache_</string> </key>
-            <value> <int>100</int> </value>
-        </item>
-        <item>
-            <key> <string>max_rows_</string> </key>
-            <value> <int>1000</int> </value>
-        </item>
-        <item>
-            <key> <string>src</string> </key>
-            <value> <string encoding="cdata"><![CDATA[
-
-SELECT \n
-\tSUM(quantity) AS total_quantity\n
-FROM catalog, movement\n
-WHERE \n
-\tcatalog.parent_uid = <dtml-sqlvar uid type="int">\n
-AND\t\n
-\tcatalog.uid = movement.uid\n
-
-
-]]></string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string></string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/product/ERP5/Document/ContainerLine.py b/product/ERP5/Document/ContainerLine.py
index d0783c7c3a..0718373a21 100644
--- a/product/ERP5/Document/ContainerLine.py
+++ b/product/ERP5/Document/ContainerLine.py
@@ -94,7 +94,5 @@ class ContainerLine(DeliveryLine):
       base_id = 'movement'
       if not self.hasCellContent(base_id=base_id):
         return self.getQuantity()
-      else:
-        # Use MySQL
-        aggregate = self.ContainerLine_zGetTotal()[0]
-        return aggregate.total_quantity or 0.0
+      return sum(cell.getQuantity() for cell in
+        self.getCellValueList(base_id=base_id))
-- 
2.30.9