details:   https://code.openbravo.com/erp/devel/pi/rev/7091c40b9be0
changeset: 25778:7091c40b9be0
user:      Eduardo Argal Guibert <eduardo.argal <at> openbravo.com>
date:      Wed Jan 21 13:14:46 2015 +0100
summary:   Fixed issue 27160: C_Order_Post poor performance

details:   https://code.openbravo.com/erp/devel/pi/rev/aa854421dcf5
changeset: 25779:aa854421dcf5
user:      Sandra Huguet <sandra.huguet <at> openbravo.com>
date:      Fri Jan 30 11:44:11 2015 +0100
summary:   Related to issue 27160 code review

fixed pls to work with oracle, update Copyright,
add missing .class files.

diffstat:

 referencedata/sampledata/F_B_International_Group/M_WAREHOUSE_RULE.xml          
                                       |    3 +
 referencedata/sampledata/QA_Testing/M_WAREHOUSE_RULE.xml                       
                                       |    3 +
 src-db/database/model/functions/MA_PRODUCTIONRUN_STANDARD.xml                  
                                       |   27 +-
 src-db/database/model/functions/MRP_RUN_INITIALIZE.xml                         
                                       |   28 +-
 src-db/database/model/functions/M_GET_STOCK.xml                                
                                       |  250 +----
 src-db/database/model/functions/M_GET_STOCK_PARAM.xml                          
                                       |  597 ++++++++++
 src-db/database/model/functions/M_INOUT_CREATE.xml                             
                                       |   30 +-
 src-db/database/model/functions/M_PRODUCTION_RUN.xml                           
                                       |   30 +-
 src-db/database/model/functions/M_RESERVATION_POST.xml                         
                                       |   22 +-
 src-db/database/model/functions/M_RESERVATION_REALLOCATE.xml                   
                                       |  104 +-
 src-db/database/model/functions/M_RESERVE_STOCK_AUTO.xml                       
                                       |   32 +-
 src-db/database/model/functions/M_RESERVE_STOCK_MANUAL.xml                     
                                       |    4 +-
 src-db/database/model/tables/AD_EXTENSION_POINTS.xml                           
                                       |    2 +-
 src-db/database/model/tables/M_STOCK_PROPOSED.xml                              
                                       |    3 -
 src-db/database/model/tables/M_STORAGE_DETAIL.xml                              
                                       |    8 +
 src-db/database/model/tables/M_WAREHOUSE_RULE.xml                              
                                       |    4 +
 src-db/database/model/triggers/M_RESERVATION_STOCK_TRG.xml                     
                                       |   40 +-
 src-db/database/model/triggers/M_RESERVATION_TRG.xml                           
                                       |   50 +-
 src-db/database/sourcedata/AD_COLUMN.xml                                       
                                       |  120 +-
 src-db/database/sourcedata/AD_ELEMENT.xml                                      
                                       |   28 +
 src-db/database/sourcedata/AD_EXTENSION_POINTS.xml                             
                                       |   12 +-
 src-db/database/sourcedata/AD_FIELD.xml                                        
                                       |   32 +-
 src-db/database/sourcedata/AD_REFERENCE.xml                                    
                                       |   12 +
 src-db/database/sourcedata/AD_REF_LIST.xml                                     
                                       |   25 +
 
src-util/modulescript/build/classes/org/openbravo/modulescript/InitializeReservationColumnsForStorageDetail.class
     |    0 
 
src-util/modulescript/build/classes/org/openbravo/modulescript/InitializeReservationColumnsForStorageDetailData.class
 |    0 
 
src-util/modulescript/src/org/openbravo/modulescript/InitializeReservationColumnsForStorageDetail.java
                |   51 +
 
src-util/modulescript/src/org/openbravo/modulescript/InitializeReservationColumnsForStorageDetail_data.xsql
           |   77 +
 src/org/openbravo/dal/core/OBContext.java                                      
                                       |    6 +-
 src/org/openbravo/erpCommon/utility/OBMessageUtils.java                        
                                       |   29 +-
 src/org/openbravo/materialmgmt/ReservationUtils.java                           
                                       |   10 +-
 31 files changed, 1136 insertions(+), 503 deletions(-)

diffs (truncated from 2277 to 300 lines):

diff -r f8292e9b2d8b -r aa854421dcf5 
referencedata/sampledata/F_B_International_Group/M_WAREHOUSE_RULE.xml
--- a/referencedata/sampledata/F_B_International_Group/M_WAREHOUSE_RULE.xml     
Fri Jan 30 14:01:23 2015 +0100
+++ b/referencedata/sampledata/F_B_International_Group/M_WAREHOUSE_RULE.xml     
Fri Jan 30 11:44:11 2015 +0100
@@ -12,6 +12,7 @@
   <NAME><![CDATA[Default Warehouse Rule]]></NAME>
   <PROCEDURENAME><![CDATA[M_WAREHOUSE_DEFAULT_RULE]]></PROCEDURENAME>
   <DESCRIPTION><![CDATA[Useful to overwrite a warehouse rule defined at 
warehouse on specific documents.]]></DESCRIPTION>
+  <TYPE><![CDATA[I]]></TYPE>
 </M_WAREHOUSE_RULE>
 
 <M_WAREHOUSE_RULE>
@@ -26,6 +27,7 @@
   <NAME><![CDATA[Unique Attribute]]></NAME>
   <PROCEDURENAME><![CDATA[M_UNIQUEATTRIBUTE_RULE]]></PROCEDURENAME>
   <DESCRIPTION><![CDATA[Returns stock of the first attribute set instance in 
the warehouse with enough stock.]]></DESCRIPTION>
+  <TYPE><![CDATA[I]]></TYPE>
 </M_WAREHOUSE_RULE>
 
 <M_WAREHOUSE_RULE>
@@ -40,6 +42,7 @@
   <NAME><![CDATA[Unique Storage Bin]]></NAME>
   <PROCEDURENAME><![CDATA[M_UNIQUELOCATOR_RULE]]></PROCEDURENAME>
   <DESCRIPTION><![CDATA[Returns stock of the first storage bin in the 
warehouse with enough stock.]]></DESCRIPTION>
+  <TYPE><![CDATA[I]]></TYPE>
 </M_WAREHOUSE_RULE>
 
 </data>
diff -r f8292e9b2d8b -r aa854421dcf5 
referencedata/sampledata/QA_Testing/M_WAREHOUSE_RULE.xml
--- a/referencedata/sampledata/QA_Testing/M_WAREHOUSE_RULE.xml  Fri Jan 30 
14:01:23 2015 +0100
+++ b/referencedata/sampledata/QA_Testing/M_WAREHOUSE_RULE.xml  Fri Jan 30 
11:44:11 2015 +0100
@@ -12,6 +12,7 @@
   <NAME><![CDATA[Unique Storage Bin]]></NAME>
   <PROCEDURENAME><![CDATA[M_UNIQUELOCATOR_RULE]]></PROCEDURENAME>
   <DESCRIPTION><![CDATA[Returns stock of the first storage bin in the 
warehouse with enough stock.]]></DESCRIPTION>
+  <TYPE><![CDATA[I]]></TYPE>
 </M_WAREHOUSE_RULE>
 
 <M_WAREHOUSE_RULE>
@@ -26,6 +27,7 @@
   <NAME><![CDATA[Unique Attribute]]></NAME>
   <PROCEDURENAME><![CDATA[M_UNIQUEATTRIBUTE_RULE]]></PROCEDURENAME>
   <DESCRIPTION><![CDATA[Returns stock of the first attribute set instance in 
the warehouse with enough stock.]]></DESCRIPTION>
+  <TYPE><![CDATA[I]]></TYPE>
 </M_WAREHOUSE_RULE>
 
 <M_WAREHOUSE_RULE>
@@ -40,6 +42,7 @@
   <NAME><![CDATA[Default Warehouse Rule]]></NAME>
   <PROCEDURENAME><![CDATA[M_WAREHOUSE_DEFAULT_RULE]]></PROCEDURENAME>
   <DESCRIPTION><![CDATA[Useful to overwrite a warehouse rule defined at 
warehouse on specific documents.]]></DESCRIPTION>
+  <TYPE><![CDATA[I]]></TYPE>
 </M_WAREHOUSE_RULE>
 
 </data>
diff -r f8292e9b2d8b -r aa854421dcf5 
src-db/database/model/functions/MA_PRODUCTIONRUN_STANDARD.xml
--- a/src-db/database/model/functions/MA_PRODUCTIONRUN_STANDARD.xml     Fri Jan 
30 14:01:23 2015 +0100
+++ b/src-db/database/model/functions/MA_PRODUCTIONRUN_STANDARD.xml     Fri Jan 
30 11:44:11 2015 +0100
@@ -16,7 +16,7 @@
 * under the License.
 * The Original Code is Openbravo ERP.
 * The Initial Developer of the Original Code is Openbravo SLU
-* All portions are Copyright (C) 2001-2014 Openbravo SLU
+* All portions are Copyright (C) 2001-2015 Openbravo SLU
 * All Rights Reserved.
 * Contributor(s):  ______________________________________.
 ************************************************************************/
@@ -309,34 +309,13 @@
               v_warehouse_rule_id VARCHAR2(32);
             BEGIN
               v_AD_Pinstance_ID := GET_UUID();
-              INSERT INTO AD_PINSTANCE (
-                  AD_PINSTANCE_ID, AD_PROCESS_ID, RECORD_ID, ISACTIVE, 
-                  AD_USER_ID, AD_CLIENT_ID, AD_ORG_ID, CREATED, CREATEDBY,
-                  UPDATED, UPDATEDBY
-              ) VALUES (
-                  
v_AD_Pinstance_ID,'FF80818132C964E30132C9747257002E',v_Record_ID,'Y',
-                  v_User_ID, v_Client_ID, v_PlanOrg_ID, now(), v_User_ID,
-                  now(), v_User_ID
-              );
-
-              AD_PINSTANCE_PARA_INSERT(v_AD_Pinstance_ID, '10', 
'AD_Client_ID', v_Client_ID, null, null, null, null, null);
-              AD_PINSTANCE_PARA_INSERT(v_AD_Pinstance_ID, '20', 
'M_Product_ID', v_Product_old, null, null, null, null, null);
-              AD_PINSTANCE_PARA_INSERT(v_AD_Pinstance_ID, '30', 'C_Uom_ID', 
v_UOM_old, null, null, null, null, null);
-              AD_PINSTANCE_PARA_INSERT(v_AD_Pinstance_ID, '40', 
'M_Product_Uom_ID', v_Product_UOM_old, null, null, null, null, null);
-              AD_PINSTANCE_PARA_INSERT(v_AD_Pinstance_ID, '50', 'AD_Org_ID', 
v_PlanOrg_ID, null, null, null, null, null);
-              AD_PINSTANCE_PARA_INSERT(v_AD_Pinstance_ID, '60', 'AuxID', 
v_Production_ID, null, null, null, null, null);
-              AD_PINSTANCE_PARA_INSERT(v_AD_Pinstance_ID, '70', 'TableId', 
'325', null, null, null, null, null);
-              AD_PINSTANCE_PARA_INSERT(v_AD_Pinstance_ID, '80', 'LineNo', 
null, null, v_PlanLine, null, null, null);
-              AD_PINSTANCE_PARA_INSERT(v_AD_Pinstance_ID, '90', 'ProcessID', 
'800105', null, null, null, null, null);
-              AD_PINSTANCE_PARA_INSERT(v_AD_Pinstance_ID, '100', 'Quantity', 
null, null, v_DoneQuantity*Cur_WRPUsed.MovementQty, null, null, null);
               
               SELECT COALESCE(wrpp.m_warehouse_rule_id, 
sp.m_warehouse_rule_id) INTO v_warehouse_rule_id
               FROM ma_wrphaseproduct wrpp
                   JOIN ma_sequenceproduct sp ON wrpp.ma_sequenceproduct_id = 
sp.ma_sequenceproduct_id
               WHERE wrpp.ma_wrphaseproduct_id = 
cur_wrpused.ma_wrphaseproduct_id;
-              AD_PINSTANCE_PARA_INSERT(v_AD_Pinstance_ID, '110', 
'M_Warehouse_Rule_ID', v_warehouse_rule_id, null, null, null, null, null);
-
-              M_GET_STOCK(v_AD_Pinstance_ID, 'N');
+              --Review no warehouse as parameter
+              M_GET_STOCK_PARAM(v_AD_Pinstance_ID, v_Record_ID, 
v_DoneQuantity*Cur_WRPUsed.MovementQty, v_Product_old, null, null, null, 
v_PlanOrg_ID, null, v_User_ID, v_Client_ID, v_warehouse_rule_id, v_UOM_old, 
v_Product_UOM_old, '325', v_Production_ID, v_PlanLine, '800105', null, 'N', 
v_pinstance_result, v_pinstance_msg);              
               -- Check result
               SELECT result, errormsg
                 INTO v_pinstance_result, v_pinstance_msg
diff -r f8292e9b2d8b -r aa854421dcf5 
src-db/database/model/functions/MRP_RUN_INITIALIZE.xml
--- a/src-db/database/model/functions/MRP_RUN_INITIALIZE.xml    Fri Jan 30 
14:01:23 2015 +0100
+++ b/src-db/database/model/functions/MRP_RUN_INITIALIZE.xml    Fri Jan 30 
11:44:11 2015 +0100
@@ -52,7 +52,7 @@
 * under the License.
 * The Original Code is Openbravo ERP.
 * The Initial Developer of the Original Code is Openbravo SLU
-* All portions are Copyright (C) 2001-2014 Openbravo SLU
+* All portions are Copyright (C) 2001-2015 Openbravo SLU
 * All Rights Reserved.
 * Contributor(s):  ______________________________________.
 ************************************************************************/
@@ -182,33 +182,9 @@
       v_pinstance_msg AD_PInstance.errormsg%TYPE;
     BEGIN
       v_ad_pinstance_id := GET_UUID();
-      INSERT INTO ad_pinstance (
-        ad_pinstance_id, ad_process_id, record_id, isactive, 
-        ad_user_id, ad_client_id, ad_org_id, created, createdby,
-        updated, updatedby
-      ) VALUES (
-        v_ad_pinstance_id,'FF80818132C964E30132C9747257002E',p_run,'Y',
-        p_user_id, p_client_id, p_org_id, now(), p_user_id,
-        now(), p_user_id
-      );
 
-      AD_PINSTANCE_PARA_INSERT(v_ad_pinstance_id, '10', 'AD_Client_ID', 
p_client_id, null, null, null, null, null);
-      AD_PINSTANCE_PARA_INSERT(v_ad_pinstance_id, '20', 'AD_Org_ID', p_org_id, 
null, null, null, null, null);
-      AD_PINSTANCE_PARA_INSERT(v_ad_pinstance_id, '30', 'M_Product_ID', 
Cur_Product.M_Product_ID, null, null, null, null, null);
-      AD_PINSTANCE_PARA_INSERT(v_ad_pinstance_id, '60', 'AuxID', p_Run, null, 
null, null, null, null);
-      AD_PINSTANCE_PARA_INSERT(v_ad_pinstance_id, '70', 'TableId', '800219', 
null, null, null, null, null);
-      IF (p_production = 'Y') THEN
-        AD_PINSTANCE_PARA_INSERT(v_ad_pinstance_id, '80', 'ProcessID', 
'800162', null, null, null, null, null);         
-      ELSE
-        AD_PINSTANCE_PARA_INSERT(v_ad_pinstance_id, '90', 'ProcessID', 
'800164', null, null, null, null, null);        
-      END IF;
-
-      M_GET_STOCK(v_ad_pinstance_id, 'N');
+      M_GET_STOCK_PARAM(v_ad_pinstance_id, p_run, null, 
Cur_Product.M_Product_ID, null, null, null, p_org_id, null, p_user_id, 
p_client_id, null, null, null, '800219', p_Run, null, case when p_production = 
'Y' then '800162' else '800164' end, null, 'N', v_pinstance_result, 
v_pinstance_msg);
       -- Check result
-      SELECT result, errormsg
-        INTO v_pinstance_result, v_pinstance_msg
-      FROM ad_pinstance
-      WHERE ad_pinstance_id = v_ad_pinstance_id;
       IF (v_pinstance_result = 0) THEN
         -- Error on m_get_stock
         RAISE_APPLICATION_ERROR(-20000, v_pinstance_msg);
diff -r f8292e9b2d8b -r aa854421dcf5 
src-db/database/model/functions/M_GET_STOCK.xml
--- a/src-db/database/model/functions/M_GET_STOCK.xml   Fri Jan 30 14:01:23 
2015 +0100
+++ b/src-db/database/model/functions/M_GET_STOCK.xml   Fri Jan 30 11:44:11 
2015 +0100
@@ -19,7 +19,7 @@
 * under the License.
 * The Original Code is Openbravo ERP.
 * The Initial Developer of the Original Code is Openbravo SLU
-* All portions are Copyright (C) 2011-2012 Openbravo SLU
+* All portions are Copyright (C) 2011-2015 Openbravo SLU
 * All Rights Reserved.
 * Contributor(s):  ______________________________________.
 ************************************************************************/
@@ -32,10 +32,6 @@
   -- Parameter
   TYPE RECORD IS REF CURSOR;
   Cur_Parameter RECORD;
-  Cur_Stock RECORD;
-  Cur_MStock RECORD;
-  cur_warehouse RECORD;
-  cur_allocated RECORD;
 
   -- Parameter Variables
   v_Quantity NUMBER(10);
@@ -130,248 +126,8 @@
   END LOOP; -- Get Parameter
   DBMS_OUTPUT.PUT_LINE('  Record_ID=' || v_Record_ID) ;
 
-  IF (v_reservation_id IS NOT NULL) THEN
-    -- If a reservation is given first consume allocated stock.
-    FOR cur_allocated IN (
-        SELECT rs.quantity, rs.releasedqty, sd.m_storage_detail_id
-        FROM m_reservation_stock rs
-            JOIN m_reservation r ON rs.m_reservation_id = r.m_reservation_id
-            JOIN m_storage_detail sd ON sd.m_product_id = r.m_product_id
-                                        AND sd.c_uom_id = r.c_uom_id
-                                        AND sd.m_product_uom_id IS NULL
-                                        AND sd.m_locator_id = rs.m_locator_id
-                                        AND 
COALESCE(sd.m_attributesetinstance_id, '0') = 
COALESCE(rs.m_attributesetinstance_id, '0')
-        WHERE r.m_reservation_id = v_reservation_id
-          AND rs.isallocated = 'Y'
-          AND rs.quantity > 0
-          AND rs.quantity <> COALESCE(rs.releasedqty, 0)
-          AND rs.m_locator_id IS NOT NULL
-    ) LOOP
-      INSERT INTO m_stock_proposed (
-          m_stock_proposed_id, ad_client_id, ad_org_id, isactive, 
-          created , createdby, updated, updatedby,
-          ad_pinstance_id, priority, m_storage_detail_id, quantity, qtyorder,
-          isfinal
-      ) VALUES (
-          get_uuid(), v_ClientID, v_OrgID, 'Y',
-          now(), v_AD_User_ID, now(), v_AD_User_ID,
-          pinstance_id, v_Count, cur_allocated.m_storage_detail_id, 
cur_allocated.quantity - COALESCE(cur_allocated.releasedqty, 0), null,
-          'Y'
-      );
-      v_Count:=v_Count+1;
-    END LOOP;
-  END IF;
-
-  -- Insert Values from Auxiliar STOCK
-  FOR Cur_Stock IN (
-      SELECT ms.m_storage_detail_id, COALESCE(ms.quantity, 0) AS qty, 
ms.qtyorder AS qtyorder, ms.UPDATED AS lastupdated
-      FROM m_storage_detail t
-          JOIN m_stock_aux ms ON t.m_storage_detail_id = ms.m_storage_detail_id
-          JOIN m_locator l ON t.m_locator_id = l.m_locator_id
-          JOIN m_warehouse w ON l.m_warehouse_id = w.m_warehouse_id
-          JOIN ad_org_warehouse ow ON w.m_warehouse_id = ow.m_warehouse_id
-          LEFT JOIN m_attributesetinstance asi ON t.m_attributesetinstance_id 
= asi.m_attributesetinstance_id
-          LEFT JOIN m_product_uom pu ON t.m_product_uom_id = 
pu.m_product_uom_id
-          LEFT JOIN c_uom u ON pu.c_uom_id = u.c_uom_id
-      WHERE t.m_product_id = v_productid
-        AND ms.aux_id = v_auxid
-        AND ms.ad_table_id = v_tableid
-        AND ms.line < v_lineno
-        AND COALESCE(t.c_uom_id, '-1') = COALESCE(v_uomid, t.c_uom_id, '-1')
-        AND COALESCE(t.m_product_uom_id, '-1') = COALESCE(v_productuomid, 
t.m_product_uom_id, '-1')
-        AND COALESCE(t.m_attributesetinstance_id, '-1') = 
COALESCE(v_attributesetinstanceid, t.m_attributesetinstance_id, '-1')
-        AND COALESCE(l.m_locator_id, '-1') = COALESCE(v_locatorid, 
l.m_locator_id, '-1')
-        AND COALESCE(w.m_warehouse_id, '-1') = COALESCE(v_warehouseid, 
w.m_warehouse_id, '-1')
-        AND ow.ad_org_id = v_orgid
-        AND COALESCE(ms.quantity, 0)>0
-      ORDER BY CASE w.m_warehouse_id WHEN COALESCE(v_PriorityWarehouseID, 
'-1') THEN 0 ELSE 1 END, ow.priority, l.priorityno, asi.created, t.created
-  ) LOOP
-    INSERT INTO m_stock_proposed (
-        m_stock_proposed_id, ad_client_id, ad_org_id, isactive, 
-        created , createdby, updated, updatedby,
-        ad_pinstance_id, priority, m_storage_detail_id, quantity, qtyorder,
-        isfinal
-    ) VALUES (
-        get_uuid(), v_ClientID, v_OrgID, 'Y',
-        now(), v_AD_User_ID, now(), v_AD_User_ID,
-        pinstance_id, v_Count, Cur_Stock.M_STORAGE_DETAIL_ID, Cur_Stock.Qty, 
Cur_Stock.qtyorder,
-        'Y'
-    );
-    v_Count:=v_Count+1;
-  END LOOP;
-
-  -- Insert Values from Storage Detail
-  FOR Cur_Stock  IN (
-      SELECT t.m_storage_detail_id, COALESCE(t.qtyonhand - 
COALESCE(res.reservedqty, 0), 0) AS qty, t.qtyorderonhand AS qtyorder, 
l.priorityno, t.UPDATED AS lastupdated,
-      t.qtyonhand, COALESCE(res.reservedqty, 0) as reservedqty
-      FROM m_storage_detail t 
-          JOIN m_locator l ON t.m_locator_id=l.m_locator_id
-          JOIN m_warehouse w ON l.m_warehouse_id = w.m_warehouse_id
-          JOIN ad_org_warehouse ow ON w.m_warehouse_id = ow.m_warehouse_id
-          LEFT JOIN m_attributesetinstance asi ON t.m_attributesetinstance_id 
= asi.m_attributesetinstance_id
-          LEFT JOIN m_product_uom pu ON t.m_product_uom_id = 
pu.m_product_uom_id
-          LEFT JOIN c_uom u ON pu.c_uom_id = u.c_uom_id
-          LEFT JOIN m_reservation r ON r.m_reservation_id = v_reservation_id 
AND r.m_product_id = t.m_product_id AND r.c_uom_id = t.c_uom_id
-          LEFT JOIN (
-              SELECT r.m_product_id, r.c_uom_id, rs.m_locator_id, 
COALESCE(rs.m_attributesetinstance_id, '0') as m_attributesetinstance_id,
-                  SUM(rs.quantity - COALESCE(rs.releasedqty, 0)) AS reservedqty
-              FROM m_reservation r
-                  JOIN m_reservation_stock rs ON r.m_reservation_id = 
rs.m_reservation_id
-              WHERE r.m_product_id = v_productid
-                AND r.c_uom_id = COALESCE(v_uomid, r.c_uom_id)
-                AND rs.m_locator_id IS NOT NULL
-                AND rs.m_locator_id = COALESCE(v_locatorid, rs.m_locator_id)
-                AND COALESCE(rs.m_attributesetinstance_id, '0') = 
COALESCE(v_attributesetinstanceid, rs.m_attributesetinstance_id, '0')
-                AND r.res_status NOT IN ('CL', 'DR')
-                AND ((v_reservation_id IS NOT NULL AND rs.isallocated = 'Y')
-                    OR v_reservation_id IS NULL)
-              GROUP BY r.m_product_id, r.c_uom_id, rs.m_locator_id, 
COALESCE(rs.m_attributesetinstance_id, '0')
-            ) res ON t.m_product_id = res.m_product_id
-                      AND t.c_uom_id = res.c_uom_id
-                      AND COALESCE(t.m_attributesetinstance_id, '0') = 
res.m_attributesetinstance_id
-                      AND t.m_locator_id = res.m_locator_id
-      WHERE t.m_product_id=v_productid
-        AND COALESCE(t.c_uom_id, '-1') = COALESCE(v_uomid, t.c_uom_id, '-1')
-        AND COALESCE(t.m_product_uom_id, '-1') = COALESCE(v_productuomid, 
t.m_product_uom_id, '-1')
-        AND COALESCE(t.m_attributesetinstance_id, '-1') = 
COALESCE(v_attributesetinstanceid, t.m_attributesetinstance_id, '-1')
-        AND COALESCE(l.m_locator_id, '-1') = COALESCE(v_locatorid, 
l.m_locator_id, '-1')
-        AND COALESCE(w.m_warehouse_id, '-1') = COALESCE(v_warehouseid, 
w.m_warehouse_id, '-1')
-        AND ow.ad_org_id = v_orgid
-        AND COALESCE(t.qtyonhand, 0)>0
-        AND t.qtyonhand - COALESCE(res.reservedqty, 0) > 0
-        AND w.m_warehouse_id = COALESCE(r.m_warehouse_id, w.m_warehouse_id)
-        AND l.m_locator_id = COALESCE(r.m_locator_id, l.m_locator_id)
-        AND asi.m_attributesetinstance_id = 
COALESCE(r.m_attributesetinstance_id, asi.m_attributesetinstance_id)
-      ORDER BY CASE w.m_warehouse_id WHEN COALESCE(v_PriorityWarehouseID, 
'-1') THEN 0 ELSE 1 END, ow.priority, l.priorityno, asi.created, t.created
-  ) LOOP
-    IF (cur_stock.qtyonhand > cur_stock.reservedqty) THEN
-      INSERT INTO m_stock_proposed (
-          m_stock_proposed_id, ad_client_id, ad_org_id, isactive, 
-          created , createdby, updated, updatedby,
-          ad_pinstance_id, priority, m_storage_detail_id, quantity, qtyorder,
-          isfinal
-      ) VALUES (
-          get_uuid(), v_ClientID, v_OrgID, 'Y',
-          now(), v_AD_User_ID, now(), v_AD_User_ID,

------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to