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&#174; 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

Reply via email to