details: /erp/devel/pi/rev/1232be2520b1
changeset: 6721:1232be2520b1
user: Iván Perdomo <ivan.perdomo <at> openbravo.com>
date: Mon Mar 15 20:36:52 2010 +0100
summary: Fixes issue 10245: Added trigger to validate process request info
diffstat:
src-db/database/model/triggers/AD_PROCESS_REQUEST_TRG.xml | 37 ++++++++++++-
src-db/database/sourcedata/AD_MESSAGE.xml | 11 ++++
src/org/openbravo/base/secureApp/HttpSecureAppServlet.java | 4 +-
3 files changed, 47 insertions(+), 5 deletions(-)
diffs (97 lines):
diff -r 1d4395cec278 -r 1232be2520b1
src-db/database/model/triggers/AD_PROCESS_REQUEST_TRG.xml
--- a/src-db/database/model/triggers/AD_PROCESS_REQUEST_TRG.xml Mon Mar 15
18:34:57 2010 +0100
+++ b/src-db/database/model/triggers/AD_PROCESS_REQUEST_TRG.xml Mon Mar 15
20:36:52 2010 +0100
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<database name="TRIGGER AD_PROCESS_REQUEST_TRG">
- <trigger name="AD_PROCESS_REQUEST_TRG" table="AD_PROCESS_REQUEST"
fires="before" insert="false" update="false" delete="true" foreach="row">
+ <trigger name="AD_PROCESS_REQUEST_TRG" table="AD_PROCESS_REQUEST"
fires="before" insert="true" update="true" delete="true" foreach="row">
<body><![CDATA[
/*************************************************************************
@@ -15,7 +15,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-2008 Openbravo SLU
+* All portions are Copyright (C) 2001-2010 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************/
@@ -26,10 +26,39 @@
IF AD_isTriggerEnabled()='N' THEN RETURN;
END IF;
+IF (INSERTING OR UPDATING) THEN
-IF (:OLD.STATUS = 'Scheduled') THEN
- RAISE_APPLICATION_ERROR(-20630,'Unable to delete Process Request whilst
still scheduled.');
+ IF (:NEW.TIMING_OPTION = 'S') THEN -- SCHEDULE
+
+ IF(:NEW.FREQUENCY = '1' AND (:NEW.SECONDLY_INTERVAL IS NULL OR
:NEW.SECONDLY_INTERVAL < 1)) THEN -- SECONDLY
+ RAISE_APPLICATION_ERROR(-20000,'@InvalidProcessRequest@');
+ END IF;
+
+ IF(:NEW.FREQUENCY = '2' AND (:NEW.MINUTELY_INTERVAL IS NULL OR
:NEW.MINUTELY_INTERVAL < 1)) THEN -- MINUTELY
+ RAISE_APPLICATION_ERROR(-20000,'@InvalidProcessRequest@');
+ END IF;
+
+ IF(:NEW.FREQUENCY = '3' AND (:NEW.HOURLY_INTERVAL IS NULL OR
:NEW.HOURLY_INTERVAL < 1)) THEN -- HOURLY
+ RAISE_APPLICATION_ERROR(-20000,'@InvalidProcessRequest@');
+ END IF;
+
+ IF (:NEW.FREQUENCY = '4' AND (:NEW.DAILY_INTERVAL IS NULL OR
:NEW.DAILY_INTERVAL < 1)) THEN -- DAILY
+ RAISE_APPLICATION_ERROR(-20000,'@InvalidProcessRequest@');
+ END IF;
+
+ IF(:NEW.FINISHES = 'Y' AND (:NEW.FINISHES_DATE IS NULL OR
:NEW.FINISHES_TIME IS NULL)) THEN
+ RAISE_APPLICATION_ERROR(-20000,'@InvalidProcessRequest@');
+ END IF;
+
+ END IF;
END IF;
+
+IF (DELETING) THEN
+ IF (:OLD.STATUS = 'Scheduled') THEN
+ RAISE_APPLICATION_ERROR(-20000,'@20630@');
+ END IF;
+END IF;
+
END AD_PROCESS_REQUEST_TRG
]]></body>
</trigger>
diff -r 1d4395cec278 -r 1232be2520b1 src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml Mon Mar 15 18:34:57 2010 +0100
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml Mon Mar 15 20:36:52 2010 +0100
@@ -32791,6 +32791,17 @@
<!--F75693A7ED5E4BF1A53744DF2150A6A4-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
<!--F75693A7ED5E4BF1A53744DF2150A6A4--></AD_MESSAGE>
+<!--F7A6AFA7E34D4A0099E7A7E8021C5ECB--><AD_MESSAGE>
+<!--F7A6AFA7E34D4A0099E7A7E8021C5ECB-->
<AD_MESSAGE_ID><![CDATA[F7A6AFA7E34D4A0099E7A7E8021C5ECB]]></AD_MESSAGE_ID>
+<!--F7A6AFA7E34D4A0099E7A7E8021C5ECB-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--F7A6AFA7E34D4A0099E7A7E8021C5ECB--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--F7A6AFA7E34D4A0099E7A7E8021C5ECB--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--F7A6AFA7E34D4A0099E7A7E8021C5ECB-->
<VALUE><![CDATA[InvalidProcessRequest]]></VALUE>
+<!--F7A6AFA7E34D4A0099E7A7E8021C5ECB--> <MSGTEXT><![CDATA[The Process Request
details you have entered are invalid. Please make sure the process frequency
and interval are correct.]]></MSGTEXT>
+<!--F7A6AFA7E34D4A0099E7A7E8021C5ECB--> <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--F7A6AFA7E34D4A0099E7A7E8021C5ECB-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--F7A6AFA7E34D4A0099E7A7E8021C5ECB--></AD_MESSAGE>
+
<!--F7A7B276D3F04AE78F8B50CE462B0F89--><AD_MESSAGE>
<!--F7A7B276D3F04AE78F8B50CE462B0F89-->
<AD_MESSAGE_ID><![CDATA[F7A7B276D3F04AE78F8B50CE462B0F89]]></AD_MESSAGE_ID>
<!--F7A7B276D3F04AE78F8B50CE462B0F89-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 1d4395cec278 -r 1232be2520b1
src/org/openbravo/base/secureApp/HttpSecureAppServlet.java
--- a/src/org/openbravo/base/secureApp/HttpSecureAppServlet.java Mon Mar
15 18:34:57 2010 +0100
+++ b/src/org/openbravo/base/secureApp/HttpSecureAppServlet.java Mon Mar
15 20:36:52 2010 +0100
@@ -389,7 +389,9 @@
// the hash of the post data
if (!hash.equals(vars1.getPostDataHash())) {
request.setAttribute("autosave", true);
- if (vars1.getCommand().indexOf("BUTTON") != -1)
+ if (vars1.getCommand().indexOf("BUTTON") != -1
+ || !vars1.getStringParameter("inpProcessId").equals(""))
+ // Adding pop-up window attribute to close the window on
failed auto-save
request.setAttribute("popupWindow", true);
// forward request
if (!forwardRequest(request, response)) {
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits