diff -r e9aa75423baf src-db/database/model/functions/M_UPDATE_INVENTORY.xml
--- a/src-db/database/model/functions/M_UPDATE_INVENTORY.xml	Mon Sep 29 09:39:26 2014 +0200
+++ b/src-db/database/model/functions/M_UPDATE_INVENTORY.xml	Tue Sep 30 09:47:02 2014 +0200
@@ -63,25 +63,41 @@
   v_Storage_ID VARCHAR2(32);
 
 BEGIN
+
+
   v_qtyorder:=p_qtyorder;
   v_preqtyorder:=p_preqtyorder;
-  SELECT COUNT(*)
-  INTO v_cuenta
+
+
+if p_attributesetinstance is null or p_attributesetinstance = '0' then
+  SELECT count(*) INTO v_cuenta
   FROM M_STORAGE_DETAIL
   WHERE M_PRODUCT_ID=p_product
     AND M_LOCATOR_ID=p_locator
     AND COALESCE(M_ATTRIBUTESETINSTANCE_ID, '0')=COALESCE(p_attributesetinstance, '0')
     AND C_UOM_ID=p_uom
-    AND COALESCE(M_PRODUCT_UOM_ID, '-1')=COALESCE(p_product_uom, '-1') ;
+    AND COALESCE(M_PRODUCT_UOM_ID, '-1')=COALESCE(p_product_uom, '-1');
+ else
+   SELECT count(*) INTO v_cuenta
+  FROM M_STORAGE_DETAIL
+  WHERE M_PRODUCT_ID=p_product
+    AND M_LOCATOR_ID=p_locator
+    AND M_ATTRIBUTESETINSTANCE_ID = p_attributesetinstance
+    AND C_UOM_ID=p_uom
+    AND COALESCE(M_PRODUCT_UOM_ID, '-1')=COALESCE(p_product_uom, '-1');
+end if;
+
+
   IF(p_product_uom IS NOT NULL) THEN
     IF(v_qtyorder IS NULL) THEN
       v_qtyorder:=0;
     END IF;
     IF(v_preqtyorder IS NULL) THEN
       v_preqtyorder:=0;
+    END IF;
+  END IF;
 
-  END IF;
-  END IF;
+  raise notice 'c %',v_cuenta;
   IF(v_cuenta=0) THEN
     Ad_Sequence_Next('M_Storage_Detail', p_client, v_Storage_ID) ;
     INSERT
@@ -103,6 +119,7 @@
       )
       ;
   ELSE
+  if p_attributesetinstance is null or p_attributesetinstance = '0' then
     UPDATE M_STORAGE_DETAIL
       SET QTYONHAND=QTYONHAND + COALESCE(p_qty, 0),
       QTYORDERONHAND=QTYORDERONHAND + v_qtyorder,
@@ -119,7 +136,7 @@
       AND C_UOM_ID=p_uom
       AND COALESCE(M_PRODUCT_UOM_ID, '-1')=COALESCE(p_product_uom, '-1') ;
    
-    SELECT MAX(SD.M_STORAGE_DETAIL_ID) 
+   SELECT MAX(SD.M_STORAGE_DETAIL_ID) 
     INTO v_Storage_ID
     FROM m_product p join m_attributeset aset ON p.m_attributeset_id = aset.m_attributeset_id 
                      JOIN M_STORAGE_DETAIL SD ON SD.M_PRODUCT_ID=p.m_product_id
@@ -136,7 +153,41 @@
     AND P.M_PRODUCT_ID=p_product
     AND NOT EXISTS (SELECT 1 FROM m_stock_aux WHERE M_STORAGE_DETAIL_ID = SD.M_STORAGE_DETAIL_ID)
     AND NOT EXISTS (SELECT 1 FROM m_stock_proposed WHERE M_STORAGE_DETAIL_ID = SD.M_STORAGE_DETAIL_ID);
-
+  else
+      UPDATE M_STORAGE_DETAIL
+      SET QTYONHAND=QTYONHAND + COALESCE(p_qty, 0),
+      QTYORDERONHAND=QTYORDERONHAND + v_qtyorder,
+      DATELASTINVENTORY=COALESCE(p_datelastinventory, DATELASTINVENTORY),
+      PREQTYONHAND=PREQTYONHAND + COALESCE(p_preqty, 0),
+      PREQTYORDERONHAND=PREQTYORDERONHAND + v_preqtyorder,
+      AD_CLIENT_ID=p_client,
+      AD_ORG_ID=p_org,
+      UPDATED=now(),
+      UPDATEDBY=p_user
+    WHERE M_PRODUCT_ID=p_product
+      AND M_LOCATOR_ID=p_locator
+      AND M_ATTRIBUTESETINSTANCE_ID = p_attributesetinstance
+      AND C_UOM_ID=p_uom
+      AND COALESCE(M_PRODUCT_UOM_ID, '-1')=COALESCE(p_product_uom, '-1') ;
+   
+   SELECT MAX(SD.M_STORAGE_DETAIL_ID) 
+    INTO v_Storage_ID
+    FROM m_product p join m_attributeset aset ON p.m_attributeset_id = aset.m_attributeset_id 
+                     JOIN M_STORAGE_DETAIL SD ON SD.M_PRODUCT_ID=p.m_product_id
+            AND SD.M_LOCATOR_ID=p_locator
+            AND SD.M_ATTRIBUTESETINSTANCE_ID = p_attributesetinstance
+            AND SD.C_UOM_ID=p_uom
+            AND COALESCE(SD.M_PRODUCT_UOM_ID, '-1')=COALESCE(p_product_uom, '-1')
+    WHERE COALESCE(p.attrsetvaluetype, '-') <> 'F'
+    AND aset.isoneattrsetvalrequired = 'Y'
+    AND QTYONHAND = 0
+    AND (QTYORDERONHAND=0 OR QTYORDERONHAND IS NULL)
+    AND PREQTYONHAND=0
+    AND (PREQTYORDERONHAND=0 OR PREQTYORDERONHAND IS NULL)
+    AND P.M_PRODUCT_ID=p_product
+    AND NOT EXISTS (SELECT 1 FROM m_stock_aux WHERE M_STORAGE_DETAIL_ID = SD.M_STORAGE_DETAIL_ID)
+    AND NOT EXISTS (SELECT 1 FROM m_stock_proposed WHERE M_STORAGE_DETAIL_ID = SD.M_STORAGE_DETAIL_ID);
+  end if;
     IF (v_Storage_ID IS NOT NULL) THEN    
       DELETE FROM M_STORAGE_DETAIL WHERE M_STORAGE_DETAIL_ID =v_Storage_ID;
     END IF;
