details: https://code.openbravo.com/erp/devel/pi/rev/b5a72c7ad0dc
changeset: 20140:b5a72c7ad0dc
user: David Miguelez <david.miguelez <at> openbravo.com>
date: Wed Apr 17 18:50:35 2013 +0200
summary: Fixes Issue 23566. Prevents from creating a Goods Receipt with
a Warehouse that not belongs to the Organization of the Document.
diffstat:
src-db/database/sourcedata/AD_MESSAGE.xml | 12 +++
src/org/openbravo/erpCommon/ad_forms/MaterialReceiptPending.java | 38
+++++++++-
2 files changed, 49 insertions(+), 1 deletions(-)
diffs (105 lines):
diff -r 94433e46bcd9 -r b5a72c7ad0dc src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml Thu Apr 18 11:02:33 2013 +0200
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml Wed Apr 17 18:50:35 2013 +0200
@@ -23480,6 +23480,18 @@
<!--DA317D308E294B55BA3DB949F45AA9BA-->
<ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--DA317D308E294B55BA3DB949F45AA9BA--></AD_MESSAGE>
+<!--DAD951EF2B0548F68AD853B6AF578FD3--><AD_MESSAGE>
+<!--DAD951EF2B0548F68AD853B6AF578FD3-->
<AD_MESSAGE_ID><![CDATA[DAD951EF2B0548F68AD853B6AF578FD3]]></AD_MESSAGE_ID>
+<!--DAD951EF2B0548F68AD853B6AF578FD3-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--DAD951EF2B0548F68AD853B6AF578FD3--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--DAD951EF2B0548F68AD853B6AF578FD3--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--DAD951EF2B0548F68AD853B6AF578FD3-->
<VALUE><![CDATA[WarehouseNotAccessibleByOrg]]></VALUE>
+<!--DAD951EF2B0548F68AD853B6AF578FD3--> <MSGTEXT><![CDATA[The selected
Warehouse is not accessible by the Organization of the selected
Document.]]></MSGTEXT>
+<!--DAD951EF2B0548F68AD853B6AF578FD3--> <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--DAD951EF2B0548F68AD853B6AF578FD3-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--DAD951EF2B0548F68AD853B6AF578FD3-->
<ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--DAD951EF2B0548F68AD853B6AF578FD3--></AD_MESSAGE>
+
<!--DBA2EDC3661F42E0B9241DA3D948B729--><AD_MESSAGE>
<!--DBA2EDC3661F42E0B9241DA3D948B729-->
<AD_MESSAGE_ID><![CDATA[DBA2EDC3661F42E0B9241DA3D948B729]]></AD_MESSAGE_ID>
<!--DBA2EDC3661F42E0B9241DA3D948B729-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 94433e46bcd9 -r b5a72c7ad0dc
src/org/openbravo/erpCommon/ad_forms/MaterialReceiptPending.java
--- a/src/org/openbravo/erpCommon/ad_forms/MaterialReceiptPending.java Thu Apr
18 11:02:33 2013 +0200
+++ b/src/org/openbravo/erpCommon/ad_forms/MaterialReceiptPending.java Wed Apr
17 18:50:35 2013 +0200
@@ -23,6 +23,7 @@
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
+import java.util.List;
import java.util.StringTokenizer;
import java.util.regex.Pattern;
@@ -33,6 +34,7 @@
import org.openbravo.base.filter.IsIDFilter;
import org.openbravo.base.secureApp.HttpSecureAppServlet;
import org.openbravo.base.secureApp.VariablesSecureApp;
+import org.openbravo.dal.service.OBDal;
import org.openbravo.erpCommon.businessUtility.Tree;
import org.openbravo.erpCommon.businessUtility.WindowTabs;
import org.openbravo.erpCommon.businessUtility.WindowTabsData;
@@ -45,6 +47,11 @@
import org.openbravo.erpCommon.utility.SequenceIdData;
import org.openbravo.erpCommon.utility.ToolBar;
import org.openbravo.erpCommon.utility.Utility;
+import org.openbravo.model.common.enterprise.Locator;
+import org.openbravo.model.common.enterprise.OrgWarehouse;
+import org.openbravo.model.common.enterprise.Organization;
+import org.openbravo.model.common.enterprise.Warehouse;
+import org.openbravo.model.common.order.OrderLine;
import org.openbravo.utils.Replace;
import org.openbravo.xmlEngine.XmlDocument;
@@ -231,6 +238,7 @@
}
xmlDocument.setParameter("script", html.toString());
}
+
xmlDocument.setData("structure1", data);
out.println(xmlDocument.print());
out.close();
@@ -270,6 +278,35 @@
String strOrderlineId = st.nextToken().trim();
MaterialReceiptPendingData[] data =
MaterialReceiptPendingData.select(this,
strOrderlineId);
+
+ String strLocator = vars.getStringParameter("inpmLocatorId" +
strOrderlineId);
+ Locator locator = OBDal.getInstance().get(Locator.class, strLocator);
+ Warehouse locatorWH = locator.getWarehouse();
+
+ Organization orderOrganization =
OBDal.getInstance().get(Organization.class,
+ data[0].adOrgId);
+
+ boolean warehouseBelongsToOrg = false;
+ List<OrgWarehouse> orderOrgWHList =
orderOrganization.getOrganizationWarehouseList();
+ for (OrgWarehouse orderOrgWH : orderOrgWHList) {
+ if (orderOrgWH.getWarehouse().equals(locatorWH)) {
+ warehouseBelongsToOrg = true;
+ continue;
+ }
+ }
+ if (!warehouseBelongsToOrg) {
+ OrderLine ol = OBDal.getInstance().get(OrderLine.class,
strOrderlineId);
+ myMessage.setType("Error");
+ myMessage.setTitle(Utility.messageBD(this, "Error",
vars.getLanguage()));
+ myMessage.setMessage(Utility.messageBD(this,
"WarehouseNotAccessibleByOrg",
+ vars.getLanguage())
+ + " "
+ + ol.getSalesOrder().getDocumentNo()
+ + " - "
+ + MaterialReceiptPendingData.bPartnerDescription(this,
data[0].cBpartnerId));
+ return myMessage;
+ }
+
if (!strLastBpartnerId.equals(data[0].cBpartnerId)
|| !strLastOrgId.equals(data[0].adOrgId)) {
if (!strmInoutId.equals("")) {
@@ -318,7 +355,6 @@
strLastBpartnerId = data[0].cBpartnerId;
strLastOrgId = data[0].adOrgId;
String strQtyordered = vars.getNumericParameter("inpQtyordered" +
strOrderlineId);
- String strLocator = vars.getStringParameter("inpmLocatorId" +
strOrderlineId);
String strSequenceLine = SequenceIdData.getUUID();
MaterialReceiptPendingLinesData[] dataLine =
MaterialReceiptPendingLinesData.select(this,
strOrderlineId);
------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits