details:   https://code.openbravo.com/erp/devel/pi/rev/382b0838245b
changeset: 16847:382b0838245b
user:      Ioritz Cia <ioritz.cia <at> openbravo.com>
date:      Wed Jun 13 10:46:36 2012 +0200
summary:   Fixes issue 20730: Wrong 'Available quantity' in 'Under Way' status 
orders.
M_Storage_Pending does not update correctly with under way status orders.

diffstat:

 src-db/database/model/triggers/C_ORDERLINE2_TRG.xml |  64 ++++++++++++++++++--
 1 files changed, 57 insertions(+), 7 deletions(-)

diffs (90 lines):

diff -r 12f711dbc48e -r 382b0838245b 
src-db/database/model/triggers/C_ORDERLINE2_TRG.xml
--- a/src-db/database/model/triggers/C_ORDERLINE2_TRG.xml       Thu Jun 14 
18:52:29 2012 +0200
+++ b/src-db/database/model/triggers/C_ORDERLINE2_TRG.xml       Wed Jun 13 
10:46:36 2012 +0200
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
   <database name="TRIGGER C_ORDERLINE2_TRG">
-    <trigger name="C_ORDERLINE2_TRG" table="C_ORDERLINE" fires="before" 
insert="false" update="true" delete="false" foreach="row">
+    <trigger name="C_ORDERLINE2_TRG" table="C_ORDERLINE" fires="before" 
insert="true" update="true" delete="true" foreach="row">
       <body><![CDATA[
 
 
@@ -18,15 +18,20 @@
 * 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-2006 Openbravo SLU
+* All portions are Copyright (C) 2001-2012 Openbravo SLU
 * All Rights Reserved.
 * Contributor(s):  ______________________________________.
 ************************************************************************/
-  v_ID VARCHAR2(32);
-  v_QtyReserved      NUMBER;
-  v_QtyOrderReserved NUMBER;
-  V_STOCKED          NUMBER;
-    
+  v_ID VARCHAR2(32);   
+  v_QtyReserved        NUMBER;
+  v_QtyOrderReserved   NUMBER;
+  V_STOCKED            NUMBER;
+  v_DocStatus          VARCHAR(60);
+  v_DocAction          VARCHAR(60);
+  v_isSOTrx            CHAR(1);
+  v_QtyReservedPO      NUMBER;
+  v_QtyOrderReservedPO NUMBER;
+
 BEGIN
     
     IF AD_isTriggerEnabled()='N' THEN RETURN;
@@ -56,6 +61,51 @@
       END IF;
     END IF;
   END IF;
+
+  IF(UPDATING OR DELETING) THEN
+    v_ID:=:old.C_Order_ID;
+    SELECT DocStatus, DocAction, isSOTrx
+    INTO v_DocStatus, v_DocAction, v_isSOTrx
+    FROM c_Order
+    WHERE c_order_id = v_ID;
+    IF(v_DocStatus = 'IP') THEN
+      IF(v_isSOTrx = 'Y') THEN
+        v_QtyReserved := -:old.qtyordered;
+        v_QtyOrderReserved := -:old.quantityorder;
+        v_QtyReservedPO := 0;
+        v_QtyOrderReservedPO := null;
+      ELSE
+        v_QtyReserved := 0;
+        v_QtyOrderReserved := null;
+        v_QtyReservedPO := -:old.qtyordered;
+        v_QtyOrderReservedPO := -:old.quantityorder;
+      END IF;
+      M_UPDATE_STORAGE_PENDING(:old.AD_Client_ID, :old.AD_Org_ID, 
:old.UpdatedBy, :old.M_Product_ID, :old.M_Warehouse_ID, 
:old.M_AttributeSetInstance_ID, :old.C_UOM_ID, :old.M_Product_UOM_ID, 
v_QtyReserved, v_QtyOrderReserved, v_QtyReservedPO, v_QtyOrderReservedPO);
+    END IF;
+  END IF;
+
+  IF(INSERTING OR UPDATING) THEN
+    v_ID:=:new.C_Order_ID;
+    SELECT DocStatus, DocAction, isSOTrx
+    INTO v_DocStatus, v_DocAction, v_isSOTrx
+    FROM c_Order
+    WHERE c_order_id = v_ID;
+    IF(v_DocStatus = 'IP') THEN
+      IF(v_isSOTrx = 'Y') THEN
+        v_QtyReserved := :new.qtyordered;
+        v_QtyOrderReserved := :new.quantityorder;
+        v_QtyReservedPO := 0;
+        v_QtyOrderReservedPO := null;
+      ELSE
+        v_QtyReserved := 0;
+        v_QtyOrderReserved := null;
+        v_QtyReservedPO := :new.qtyordered;
+        v_QtyOrderReservedPO := :new.quantityorder;
+      END IF;
+      M_UPDATE_STORAGE_PENDING(:new.AD_Client_ID, :new.AD_Org_ID, 
:new.UpdatedBy, :new.M_Product_ID, :new.M_Warehouse_ID, 
:new.M_AttributeSetInstance_ID, :new.C_UOM_ID, :new.M_Product_UOM_ID, 
v_QtyReserved, v_QtyOrderReserved, v_QtyReservedPO, v_QtyOrderReservedPO);
+    END IF;
+  END IF;
+
 END C_ORDERLINE2_TRG
 ]]></body>
     </trigger>

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to