Issue #23448 Fix invoice performance.
authorBen Thompson <ben@xtuple.com>
Thu, 8 May 2014 20:04:09 +0000 (16:04 -0400)
committerBen Thompson <ben@xtuple.com>
Thu, 8 May 2014 20:04:09 +0000 (16:04 -0400)
enyo-client/database/source/xt/views/invcheadinfo.sql
enyo-client/database/source/xt/views/invciteminfo.sql
enyo-client/extensions/source/sales/database/orm/ext/invoice.json

index 440ce07..07efb4e 100644 (file)
@@ -13,11 +13,9 @@ select invchead.*,
     - COALESCE(xt.invc_authorized_credit(invchead_invcnumber), 0)
     - COALESCE(xt.cust_outstanding_credit(invchead_cust_id, invchead_curr_id, invchead_invcdate), 0))
   ) as balance,
-  cust_number,
   determineDueDate(invchead_terms_id, invchead_invcdate) AS due_date,
   determineDiscountDate(invchead_terms_id, invchead_invcdate) AS dis_date
-  from invchead
-  left join cust on cust_id = invchead_cust_id;
+  from invchead;
 
 $$, false);
 
index af32577..5877cfe 100644 (file)
@@ -3,11 +3,12 @@ select xt.create_view('xt.invciteminfo', $$
   -- select distinct on allows us to add the aggregated tax total column
   -- without having to inner join a temporarily grouped tax table or specify
   -- two dozen group-bys
-  select distinct on (invcitem_id) invcitem.*, 
-  case when invcitem_item_id = -1 then true else false end as invcitem_is_misc,
-  invcitem_billed * invcitem_qty_invuomratio 
-    * (invcitem_price / invcitem_price_invuomratio) as invcitem_ext_price,
-  sum(taxhist_tax) as invcitem_tax_total
+  select
+    invcitem.*,
+    case when invcitem_item_id = -1 then true else false end as invcitem_is_misc,
+    invcitem_billed * invcitem_qty_invuomratio
+      * (invcitem_price / invcitem_price_invuomratio) as invcitem_ext_price,
+    sum(taxhist_tax) as invcitem_tax_total
   from invcitem
   left join invcitemtax on invcitem_id = taxhist_parent_id
   group by invcitem_id
@@ -91,7 +92,7 @@ update invcitem set
   invcitem_coitem_id = new.invcitem_coitem_id,
   invcitem_updateinv = new.invcitem_updateinv,
   invcitem_rev_accnt_id = new.invcitem_rev_accnt_id,
-  obj_uuid = new.obj_uuid 
+  obj_uuid = new.obj_uuid
 where invcitem_id = old.invcitem_id;
 
 create or replace rule "_DELETE" as on delete to xt.invciteminfo do instead
index 956c0d5..c0f4526 100644 (file)
     "sequence": 0,
     "isSystem": true
   },
-  {
-    "context": "sales",
-    "nameSpace": "XM",
-    "type": "InvoiceLine",
-    "table": "xt.invciteminfo",
-    "isExtension": true,
-    "comment": "Extended by Sales",
-    "relations": [
-      {
-        "column": "invcitem_id",
-        "inverse": "id"
-      }
-    ],
-    "properties": [
-      {
-        "name": "salesOrderLine",
-        "toOne": {
-          "type": "SalesOrderLine",
-          "column": "invcitem_coitem_id"
-        }
-      }
-    ],
-    "sequence": 0,
-    "isSystem": true
-  },
   {
     "context": "sales",
     "nameSpace": "XM",