details:   /erp/devel/pi/rev/f45b5982de9a
changeset: 12916:f45b5982de9a
user:      Gorka Ion Damián <gorkaion.damian <at> openbravo.com>
date:      Tue Jun 21 13:08:09 2011 +0200
summary:   Fixed issue 16373.Modified views to avoid union clause.

diffstat:

 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_ExecutePayment.java
 |  11 ++++-
 src-db/database/model/views/M_PRODUCT_STOCK_V.xml                              
                       |  21 +++++----
 src-db/database/model/views/M_PRODUCT_WAREHOUSE_QTYS_V.xml                     
                       |  16 +++---
 3 files changed, 29 insertions(+), 19 deletions(-)

diffs (75 lines):

diff -r a205312e847b -r f45b5982de9a 
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_ExecutePayment.java
--- 
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_ExecutePayment.java
     Tue Jun 21 12:07:53 2011 +0200
+++ 
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_ExecutePayment.java
     Tue Jun 21 13:08:09 2011 +0200
@@ -99,8 +99,15 @@
           } else
             dao.setPaymentExecuting(paymentRunPayment.getPayment(), true);
         }
-
-        OBError result = paymentExecutionProcess.execute(paymentRun);
+        OBError result = null;
+        try {
+          result = paymentExecutionProcess.execute(paymentRun);
+        } catch (final Exception e) {
+          // Execution process should never throw exceptions. If an unhandled 
exception is handled a
+          // rollback is performed.
+          OBDal.getInstance().rollbackAndClose();
+          throw e;
+        }
 
         for (PaymentRunPayment paymentRunPayment : paymentRun
             .getFinancialMgmtPaymentRunPaymentList()) {
diff -r a205312e847b -r f45b5982de9a 
src-db/database/model/views/M_PRODUCT_STOCK_V.xml
--- a/src-db/database/model/views/M_PRODUCT_STOCK_V.xml Tue Jun 21 12:07:53 
2011 +0200
+++ b/src-db/database/model/views/M_PRODUCT_STOCK_V.xml Tue Jun 21 13:08:09 
2011 +0200
@@ -1,15 +1,18 @@
 <?xml version="1.0"?>
   <database name="VIEW M_PRODUCT_STOCK_V">
-    <view name="M_PRODUCT_STOCK_V"><![CDATA[SELECT p.m_product_id || 
sd.m_storage_detail_id AS m_product_stock_v_id, l.ad_client_id, l.ad_org_id, 
l.isactive, sd.created, sd.createdby, sd.updated, sd.updatedby, 
sd.m_product_id, sd.qtyonhand, sd.qtyorderonhand, sd.preqtyonhand, 
sd.preqtyorderonhand, sd.c_uom_id, sd.m_product_uom_id, 
sd.m_attributesetinstance_id, sd.m_locator_id, 'Y' AS stocked
-FROM m_storage_detail sd
-JOIN m_locator l ON sd.m_locator_id = l.m_locator_id
-JOIN m_product p ON sd.m_product_id = p.m_product_id AND p.isactive = 'Y'
-WHERE sd.qtyonhand <> 0 OR COALESCE(sd.qtyorderonhand, 0) <> 0
-UNION 
-SELECT p.m_product_id AS m_product_stock_v_id, p.ad_client_id, p.ad_org_id, 
p.isactive, p.created, p.createdby, p.updated, p.updatedby, p.m_product_id, 0 
AS qtyonhand, NULL AS qtyorderonhand, 0 AS preqtyonhand, NULL AS 
preqtyorderonhand, p.c_uom_id, NULL AS m_product_uom_id, 
+    <view name="M_PRODUCT_STOCK_V"><![CDATA[SELECT p.m_product_id || 
COALESCE(sd.m_storage_detail_id, '') AS m_product_stock_v_id, p.ad_client_id, 
COALESCE(sd.ad_org_id, p.ad_org_id) AS ad_org_id, COALESCE(sd.isactive, 
p.isactive) AS isactive, p.created, p.createdby, p.updated, p.updatedby, 
p.m_product_id, COALESCE(sd.qtyonhand, 0) AS qtyonhand, sd.qtyorderonhand, 
COALESCE(sd.preqtyonhand, 0) AS preqtyonhand, sd.preqtyorderonhand, p.c_uom_id, 
sd.m_product_uom_id, COALESCE(sd.m_attributesetinstance_id, 
 CASE p.attrsetvaluetype
 WHEN 'D' THEN p.m_attributesetinstance_id
 ELSE NULL
-END AS m_attributesetinstance_id, NULL AS m_locator_id, 'N' AS stocked
-FROM m_product p]]></view>
+END) AS m_attributesetinstance_id, sd.m_locator_id, 
+CASE
+WHEN sd.m_storage_detail_id IS NOT NULL THEN 'Y'
+ELSE 'N'
+END AS stocked
+FROM m_product p
+LEFT JOIN (SELECT p.m_product_id || sdd.m_storage_detail_id AS 
m_product_stock_v_id, sdd.m_storage_detail_id, l.ad_client_id, l.ad_org_id, 
l.isactive, sdd.created, sdd.createdby, sdd.updated, sdd.updatedby, 
sdd.m_product_id, sdd.qtyonhand, sdd.qtyorderonhand, sdd.preqtyonhand, 
sdd.preqtyorderonhand, sdd.c_uom_id, sdd.m_product_uom_id, 
sdd.m_attributesetinstance_id, sdd.m_locator_id, 'Y' AS stocked
+FROM m_storage_detail sdd
+JOIN m_locator l ON sdd.m_locator_id = l.m_locator_id
+JOIN m_product p ON sdd.m_product_id = p.m_product_id AND p.isactive = 'Y'
+WHERE sdd.qtyonhand <> 0 OR COALESCE(sdd.qtyorderonhand, 0) <> 0) sd ON 
p.m_product_id = sd.m_product_id]]></view>
   </database>
diff -r a205312e847b -r f45b5982de9a 
src-db/database/model/views/M_PRODUCT_WAREHOUSE_QTYS_V.xml
--- a/src-db/database/model/views/M_PRODUCT_WAREHOUSE_QTYS_V.xml        Tue Jun 
21 12:07:53 2011 +0200
+++ b/src-db/database/model/views/M_PRODUCT_WAREHOUSE_QTYS_V.xml        Tue Jun 
21 13:08:09 2011 +0200
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
   <database name="VIEW M_PRODUCT_WAREHOUSE_QTYS_V">
-    <view name="M_PRODUCT_WAREHOUSE_QTYS_V"><![CDATA[SELECT s.m_product_id, 
s.m_warehouse_id, sum(s.qtyonhand) AS qtyonhand, sum(s.qtyordered) AS 
qtyordered, sum(s.qtyreserved) AS qtyreserved
-FROM (SELECT sd.m_product_id, l.m_warehouse_id, sd.qtyonhand, 0 AS qtyordered, 
0 AS qtyreserved
-FROM m_storage_detail sd
-JOIN m_locator l ON sd.m_locator_id = l.m_locator_id
-UNION 
-SELECT sp.m_product_id, sp.m_warehouse_id, 0 AS qtyonhand, sp.qtyordered, 
sp.qtyreserved
-FROM m_storage_pending sp) s
-GROUP BY s.m_product_id, s.m_warehouse_id]]></view>
+    <view name="M_PRODUCT_WAREHOUSE_QTYS_V"><![CDATA[SELECT sd.m_product_id, 
sd.m_warehouse_id, sd.qtyonhand, COALESCE(s.qtyordered, 0) AS qtyordered, 
COALESCE(s.qtyreserved, 0) AS qtyreserved
+FROM (SELECT sdd.m_product_id, l.m_warehouse_id, sum(sdd.qtyonhand) AS 
qtyonhand
+FROM m_storage_detail sdd
+JOIN m_locator l ON sdd.m_locator_id = l.m_locator_id
+GROUP BY sdd.m_product_id, l.m_warehouse_id) sd
+LEFT JOIN (SELECT sp.m_product_id, sp.m_warehouse_id, sum(sp.qtyordered) AS 
qtyordered, sum(sp.qtyreserved) AS qtyreserved
+FROM m_storage_pending sp
+GROUP BY sp.m_product_id, sp.m_warehouse_id) s ON sd.m_product_id = 
s.m_product_id AND sd.m_warehouse_id = s.m_warehouse_id]]></view>
   </database>

------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to