Attached Files | Issue24427.diff [^] (14,761 bytes) 2013-07-31 13:41 [Show Content] [Hide Content]# HG changeset patch
# User Pandeeswari Ramakrishnan <pandeeswari.ramakrishnan@openbravo.com>
# Date 1375206102 -19800
# Node ID 2f1076f7658abe7afe6c531af8f86586bb74c68d
# Parent ade9887c69071e1e4a4a31e95088a5953499b2cd
Fixes Issue 24427: Releasing reservations, if there are errors, they don't give enough information to the user
diff -r ade9887c6907 -r 2f1076f7658a src-db/database/model/functions/M_RESERVATION_CONSUMPTION.xml
--- a/src-db/database/model/functions/M_RESERVATION_CONSUMPTION.xml Tue Jul 30 14:45:59 2013 +0530
+++ b/src-db/database/model/functions/M_RESERVATION_CONSUMPTION.xml Tue Jul 30 23:11:42 2013 +0530
@@ -34,7 +34,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) 2012 Openbravo SLU
+* All portions are Copyright (C) 2012-2013 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************/
@@ -68,7 +68,10 @@
v_newreservedqty NUMBER;
v_availablestock NUMBER;
v_dummy VARCHAR2(2000);
-
+ v_attr_description VARCHAR2(255);
+ v_product_value VARCHAR2(40);
+ v_locator_value VARCHAR2(40);
+ v_uom_value VARCHAR2(3);
TYPE RECORD IS REF CURSOR;
cur_reserved_stock RECORD;
@@ -87,8 +90,32 @@
r.m_warehouse_id, r.m_locator_id, r.m_attributesetinstance_id, r.res_status;
v_this_noalloc := v_this_reservedqty - v_this_allocated;
+ SELECT value
+ INTO v_product_value
+ FROM M_Product
+ WHERE M_Product_ID = v_product_id;
+
+ IF(p_attributesetinstance_id IS NOT NULL) THEN
+ SELECT description
+ INTO v_attr_description
+ FROM M_AttributeSetInstance
+ WHERE M_AttributeSetInstance_ID = p_attributesetinstance_id;
+ END IF;
+
+ SELECT uomsymbol
+ INTO v_uom_value
+ FROM C_Uom
+ WHERE C_Uom_ID = v_uom_id;
+
+ IF (p_locator_id IS NOT NULL) THEN
+ SELECT value
+ INTO v_locator_value
+ FROM M_Locator
+ WHERE M_Locator_ID = p_locator_id;
+ END IF;
+
IF (v_res_status = 'HO') THEN
- RAISE_APPLICATION_ERROR(-20000, '@CannotConsumeHoldReservation@');
+ RAISE_APPLICATION_ERROR(-20000, '@CannotConsumeHoldReservation@'||' @of@'||' @Product@: '||v_product_value||', @AttributeSetInstance@: '||COALESCE(v_attr_description, '-')||', @UOM@: '||v_uom_value||' @And@'||' @Locator@: '||COALESCE(v_locator_value, '-'));
END IF;
SELECT sd.qtyonhand, sd.m_storage_detail_id, loc.m_warehouse_id
@@ -116,25 +143,25 @@
IF (COALESCE(v_dim_warehouse_id, v_warehouse_id) != v_warehouse_id
OR COALESCE(v_dim_locator_id, p_locator_id) != p_locator_id
OR COALESCE(v_dim_asi_id, p_attributesetinstance_id) != p_attributesetinstance_id) THEN
- RAISE_APPLICATION_ERROR(-20000, '@WrongStockDimensionMismatch@');
+ RAISE_APPLICATION_ERROR(-20000, '@WrongStockDimensionMismatch@'||' @of@'||' @Product@: '||v_product_value||', @AttributeSetInstance@: '||COALESCE(v_attr_description, '-')||', @UOM@: '||v_uom_value||' @And@'||' @Locator@: '||COALESCE(v_locator_value, '-'));
END IF;
v_pendingtorelease := p_qty;
IF (v_pendingtorelease > v_this_reservedqty - v_this_releasedqty) THEN
v_pendingtorelease := v_this_reservedqty - v_this_releasedqty;
p_result := 2;
- p_message := '@MoreQuantityToReleaseThanPending@';
+ p_message := '@MoreQuantityToReleaseThanPending@'||' @of@'||' @Product@: '||v_product_value||', @AttributeSetInstance@: '||COALESCE(v_attr_description, '-')|| ', @UOM@: '||v_uom_value||' @And@'||' @Locator@: '||COALESCE(v_locator_value, '-');
END IF;
-- Check that quantity to release is lower than available quantity considering other reservations allocated stock.
IF (v_pendingtorelease > v_stock_onhand - (v_stock_alloc - v_this_sd_alloc)) THEN
- RAISE_APPLICATION_ERROR(-20000, '@CannotConsumeAllStock@');
+ RAISE_APPLICATION_ERROR(-20000, '@CannotConsumeAllStock@'||' @of@'||' @Product@: '||v_product_value||', @AttributeSetInstance@: '||COALESCE(v_attr_description, '-')|| ', @UOM@: '||v_uom_value||' @And@'||' @Locator@: '||COALESCE(v_locator_value, '-'));
END IF;
IF (v_pendingtorelease > v_this_sd_alloc + v_this_noalloc) THEN
-- The quantity to release is higher than the currently allocated stock with given dimensions and the no allocated
-- reserved stock.
- RAISE_APPLICATION_ERROR(-20000, '@CannotModifyAllocatedReserve@');
+ RAISE_APPLICATION_ERROR(-20000, '@CannotModifyAllocatedReserve@'||' @of@'||' @Product@: '||v_product_value||', @AttributeSetInstance@: '||COALESCE(v_attr_description, '-')|| ', @UOM@: '||v_uom_value||' @And@'||' @Locator@: '||COALESCE(v_locator_value, '-'));
END IF;
IF (v_pendingtorelease <= v_this_sd_alloc + v_this_sd_noalloc) THEN
@@ -330,7 +357,7 @@
AND quantity = 0;
IF (v_pendingtorelease > 0) THEN
- RAISE_APPLICATION_ERROR(-20000, '@CannotConsumeAllStock@');
+ RAISE_APPLICATION_ERROR(-20000, '@CannotConsumeAllStock@'||' @of@'||' @Product@: '||v_product_value||', @AttributeSetInstance@: '||COALESCE(v_attr_description, '-')||', @UOM@: '||v_uom_value||' @And@'||' @Locator@: '||COALESCE(v_locator_value, '-'));
END IF;
EXCEPTION
WHEN OTHERS THEN
diff -r ade9887c6907 -r 2f1076f7658a src-db/database/model/functions/M_RESERVE_STOCK_MANUAL.xml
--- a/src-db/database/model/functions/M_RESERVE_STOCK_MANUAL.xml Tue Jul 30 14:45:59 2013 +0530
+++ b/src-db/database/model/functions/M_RESERVE_STOCK_MANUAL.xml Tue Jul 30 23:11:42 2013 +0530
@@ -34,7 +34,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) 2012 Openbravo SLU
+* All portions are Copyright (C) 2012-2013 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************/
@@ -51,10 +51,18 @@
v_locator_id VARCHAR2(32);
v_asi_id VARCHAR2(32);
v_poline_id VARCHAR2(32);
+ v_reserve_attr_id VARCHAR2(32);
+ v_reserve_product_id VARCHAR2(32);
+ v_reserve_locator_id VARCHAR2(32);
+ v_reserve_uom_id VARCHAR2(32);
+ v_attr_description VARCHAR2(255);
+ v_product_value VARCHAR2(40);
+ v_locator_value VARCHAR2(40);
+ v_uom_value VARCHAR2(3);
v_count NUMBER;
BEGIN
- SELECT ad_client_id, ad_org_id
- INTO v_client_id, v_org_id
+ SELECT ad_client_id, ad_org_id, m_product_id, c_uom_id, m_locator_id, m_attributesetinstance_id
+ INTO v_client_id, v_org_id, v_reserve_product_id, v_reserve_uom_id, v_reserve_locator_id, v_reserve_attr_id
FROM m_reservation
WHERE m_reservation_id = p_reservation_id;
IF (p_type_id = 'SD') THEN
@@ -68,7 +76,30 @@
AND sd.m_locator_id = COALESCE(res.m_locator_id, sd.m_locator_id)
AND loc.m_warehouse_id = COALESCE(res.m_warehouse_id, loc.m_warehouse_id);
IF (v_count = 0) THEN
- RAISE_APPLICATION_ERROR(-20000, '@GivenStorageDetailDoesNotMatchReservationRequirements@');
+ SELECT value
+ INTO v_product_value
+ FROM M_Product
+ WHERE M_Product_ID = v_reserve_product_id;
+
+ IF(v_reserve_attr_id IS NOT NULL) THEN
+ SELECT description
+ INTO v_attr_description
+ FROM M_AttributeSetInstance
+ WHERE M_AttributeSetInstance_ID = v_reserve_attr_id;
+ END IF;
+
+ SELECT uomsymbol
+ INTO v_uom_value
+ FROM C_Uom
+ WHERE C_Uom_ID = v_reserve_uom_id;
+
+ IF (v_reserve_locator_id IS NOT NULL) THEN
+ SELECT value
+ INTO v_locator_value
+ FROM M_Locator
+ WHERE M_Locator_ID = v_reserve_locator_id;
+ END IF;
+ RAISE_APPLICATION_ERROR(-20000, '@GivenStorageDetailDoesNotMatchReservationRequirements@' || ' @of@' || ' @Product@: ' || v_product_value || ', @AttributeSetInstance@: ' || COALESCE(v_attr_description, '-') || ', @UOM@: ' || v_uom_value || ' @And@'||' @Locator@: ' || COALESCE(v_locator_value, '-'));
END IF;
SELECT m_locator_id, m_attributesetinstance_id
diff -r ade9887c6907 -r 2f1076f7658a src-db/database/model/triggers/M_TRANSACTION_TRG2.xml
--- a/src-db/database/model/triggers/M_TRANSACTION_TRG2.xml Tue Jul 30 14:45:59 2013 +0530
+++ b/src-db/database/model/triggers/M_TRANSACTION_TRG2.xml Tue Jul 30 23:11:42 2013 +0530
@@ -15,13 +15,18 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SLU
-* All portions are Copyright (C) 2012 Openbravo SLU
+* All portions are Copyright (C) 2012-2013 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************/
v_onhand NUMBER;
v_reserved NUMBER;
v_count NUMBER;
+ v_product VARCHAR(60);
+ v_attr_description VARCHAR2(255);
+ v_product_value VARCHAR2(40);
+ v_locator_value VARCHAR2(40);
+ v_uom_value VARCHAR2(3);
BEGIN
IF (AD_isTriggerEnabled() = 'N') THEN RETURN;
@@ -57,7 +62,30 @@
AND rs.m_locator_id = :NEW.m_locator_id
GROUP BY sd.qtyonhand, sd.m_storage_detail_id;
IF (v_onhand - v_reserved < ABS(:NEW.movementqty)) THEN
- RAISE_APPLICATION_ERROR(-20000, '@CannotTakeOutReservedStock@');
+ SELECT value
+ INTO v_product_value
+ FROM M_Product
+ WHERE M_Product_ID = :NEW.m_product_id;
+
+ IF(:NEW.m_attributesetinstance_id IS NOT NULL) THEN
+ SELECT description
+ INTO v_attr_description
+ FROM M_AttributeSetInstance
+ WHERE M_AttributeSetInstance_ID = :NEW.m_attributesetinstance_id;
+ END IF;
+
+ SELECT uomsymbol
+ INTO v_uom_value
+ FROM C_Uom
+ WHERE C_Uom_ID = :NEW.c_uom_id;
+
+ IF (:NEW.m_locator_id IS NOT NULL) THEN
+ SELECT value
+ INTO v_locator_value
+ FROM M_Locator
+ WHERE M_Locator_ID = :NEW.m_locator_id;
+ END IF;
+ RAISE_APPLICATION_ERROR(-20000, '@CannotTakeOutReservedStock@' || ' @of@' || ' @Product@: ' || v_product_value || ', @AttributeSetInstance@: ' || COALESCE(v_attr_description, '-') || ', @UOM@: ' || v_uom_value || ' @And@'||' @Locator@: ' || COALESCE(v_locator_value, '-'));
END IF;
END IF;
END IF;
diff -r ade9887c6907 -r 2f1076f7658a src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml Tue Jul 30 14:45:59 2013 +0530
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml Tue Jul 30 23:11:42 2013 +0530
@@ -15958,6 +15958,18 @@
<!--064ADCDC0E794F6C9608ECFDC511A1F9--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--064ADCDC0E794F6C9608ECFDC511A1F9--></AD_MESSAGE>
+<!--078F6ABDBDBA48F2887C3108397A2262--><AD_MESSAGE>
+<!--078F6ABDBDBA48F2887C3108397A2262--> <AD_MESSAGE_ID><![CDATA[078F6ABDBDBA48F2887C3108397A2262]]></AD_MESSAGE_ID>
+<!--078F6ABDBDBA48F2887C3108397A2262--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--078F6ABDBDBA48F2887C3108397A2262--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--078F6ABDBDBA48F2887C3108397A2262--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--078F6ABDBDBA48F2887C3108397A2262--> <VALUE><![CDATA[UOM]]></VALUE>
+<!--078F6ABDBDBA48F2887C3108397A2262--> <MSGTEXT><![CDATA[UOM]]></MSGTEXT>
+<!--078F6ABDBDBA48F2887C3108397A2262--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--078F6ABDBDBA48F2887C3108397A2262--> <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--078F6ABDBDBA48F2887C3108397A2262--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--078F6ABDBDBA48F2887C3108397A2262--></AD_MESSAGE>
+
<!--07E963D65B7F47BE81150448C5019E0D--><AD_MESSAGE>
<!--07E963D65B7F47BE81150448C5019E0D--> <AD_MESSAGE_ID><![CDATA[07E963D65B7F47BE81150448C5019E0D]]></AD_MESSAGE_ID>
<!--07E963D65B7F47BE81150448C5019E0D--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -23168,6 +23180,18 @@
<!--CEF696AFAED34A0A916D825BEA97C2B5--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--CEF696AFAED34A0A916D825BEA97C2B5--></AD_MESSAGE>
+<!--CF204B61D0D44842B7F21039770B83ED--><AD_MESSAGE>
+<!--CF204B61D0D44842B7F21039770B83ED--> <AD_MESSAGE_ID><![CDATA[CF204B61D0D44842B7F21039770B83ED]]></AD_MESSAGE_ID>
+<!--CF204B61D0D44842B7F21039770B83ED--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--CF204B61D0D44842B7F21039770B83ED--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--CF204B61D0D44842B7F21039770B83ED--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--CF204B61D0D44842B7F21039770B83ED--> <VALUE><![CDATA[Locator]]></VALUE>
+<!--CF204B61D0D44842B7F21039770B83ED--> <MSGTEXT><![CDATA[Locator]]></MSGTEXT>
+<!--CF204B61D0D44842B7F21039770B83ED--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--CF204B61D0D44842B7F21039770B83ED--> <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--CF204B61D0D44842B7F21039770B83ED--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--CF204B61D0D44842B7F21039770B83ED--></AD_MESSAGE>
+
<!--CF72BCDFFF044C1D8007B907D8B64DF3--><AD_MESSAGE>
<!--CF72BCDFFF044C1D8007B907D8B64DF3--> <AD_MESSAGE_ID><![CDATA[CF72BCDFFF044C1D8007B907D8B64DF3]]></AD_MESSAGE_ID>
<!--CF72BCDFFF044C1D8007B907D8B64DF3--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -23674,6 +23698,18 @@
<!--DC799265A3BA4F738EBCF717ADE340DD--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--DC799265A3BA4F738EBCF717ADE340DD--></AD_MESSAGE>
+<!--DC8ED25E9CB74C86AA086B5231AEF421--><AD_MESSAGE>
+<!--DC8ED25E9CB74C86AA086B5231AEF421--> <AD_MESSAGE_ID><![CDATA[DC8ED25E9CB74C86AA086B5231AEF421]]></AD_MESSAGE_ID>
+<!--DC8ED25E9CB74C86AA086B5231AEF421--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--DC8ED25E9CB74C86AA086B5231AEF421--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--DC8ED25E9CB74C86AA086B5231AEF421--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--DC8ED25E9CB74C86AA086B5231AEF421--> <VALUE><![CDATA[AttributeSetInstance]]></VALUE>
+<!--DC8ED25E9CB74C86AA086B5231AEF421--> <MSGTEXT><![CDATA[Attribute Set Instance]]></MSGTEXT>
+<!--DC8ED25E9CB74C86AA086B5231AEF421--> <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--DC8ED25E9CB74C86AA086B5231AEF421--> <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--DC8ED25E9CB74C86AA086B5231AEF421--> <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--DC8ED25E9CB74C86AA086B5231AEF421--></AD_MESSAGE>
+
<!--DCAD0145663548E6A67D5B2E2A54B01E--><AD_MESSAGE>
<!--DCAD0145663548E6A67D5B2E2A54B01E--> <AD_MESSAGE_ID><![CDATA[DCAD0145663548E6A67D5B2E2A54B01E]]></AD_MESSAGE_ID>
<!--DCAD0145663548E6A67D5B2E2A54B01E--> <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
|