changeset 778:574391f1d88f

Fixed status and messung services.
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 13 Nov 2015 13:40:25 +0100
parents e3f4f3585cce
children 64adf06df02f
files src/main/java/de/intevation/lada/rest/StatusService.java src/main/java/de/intevation/lada/rest/stamm/StatusWertService.java
diffstat 2 files changed, 28 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/rest/StatusService.java	Thu Nov 12 13:28:08 2015 +0100
+++ b/src/main/java/de/intevation/lada/rest/StatusService.java	Fri Nov 13 13:40:25 2015 +0100
@@ -196,31 +196,36 @@
         UserInfo userInfo = authorization.getInfo(request);
         LMessung messung = defaultRepo.getByIdPlain(
             LMessung.class, status.getMessungsId(), "land");
-        LStatusProtokoll currentStatus = defaultRepo.getByIdPlain(
-            LStatusProtokoll.class, messung.getStatus(), "land");
         boolean next = false;
         boolean change = false;
-        for (int i = 0; i < userInfo.getFunktionen().size(); i++) {
-            if (userInfo.getFunktionen().get(i) > currentStatus.getStatusStufe()) {
-                next = true;
-                change = false;
-                break;
-            }
-            else if (userInfo.getFunktionen().get(i) == currentStatus.getStatusStufe()) {
-                change = true;
-            }
-        }
-        if ((change || next) && status.getStatusWert() == 4) {
+        if (messung.getStatus() == null) {
             status.setStatusStufe(1);
         }
-        else if (change) {
-            status.setStatusStufe(currentStatus.getStatusStufe());
-        }
-        else if (next) {
-            status.setStatusStufe(currentStatus.getStatusStufe() + 1);
-        }
         else {
-            return new Response(false, 699, null);
+            LStatusProtokoll currentStatus = defaultRepo.getByIdPlain(
+                LStatusProtokoll.class, messung.getStatus(), "land");
+            for (int i = 0; i < userInfo.getFunktionen().size(); i++) {
+                if (userInfo.getFunktionen().get(i) > currentStatus.getStatusStufe()) {
+                    next = true;
+                    change = false;
+                    break;
+                }
+                else if (userInfo.getFunktionen().get(i) == currentStatus.getStatusStufe()) {
+                    change = true;
+                }
+            }
+            if ((change || next) && status.getStatusWert() == 4) {
+                status.setStatusStufe(1);
+            }
+            else if (change) {
+                status.setStatusStufe(currentStatus.getStatusStufe());
+            }
+            else if (next) {
+                status.setStatusStufe(currentStatus.getStatusStufe() + 1);
+            }
+            else {
+                return new Response(false, 699, null);
+            }
         }
         Response response = defaultRepo.create(status, "land");
         LStatusProtokoll created = (LStatusProtokoll)response.getData();
@@ -263,20 +268,9 @@
         @Context HttpServletRequest request,
         LStatusProtokoll status
     ) {
-        if (!authorization.isAuthorized(
-                request,
-                status,
-                RequestMethod.PUT,
-                LStatusProtokoll.class)
-        ) {
-            return new Response(false, 699, null);
-        }
         if (lock.isLocked(status)) {
             return new Response(false, 697, null);
         }
-        if (status.getStatusWert() == 0) {
-            return new Response(false, 699, null);
-        }
 
         UserInfo userInfo = authorization.getInfo(request);
         if (!userInfo.getMessstellen().contains(status.getErzeuger())) {
--- a/src/main/java/de/intevation/lada/rest/stamm/StatusWertService.java	Thu Nov 12 13:28:08 2015 +0100
+++ b/src/main/java/de/intevation/lada/rest/stamm/StatusWertService.java	Fri Nov 13 13:40:25 2015 +0100
@@ -134,6 +134,9 @@
         List<StatusWert> list = new ArrayList<StatusWert>();
         LMessung messung =
             defaultRepo.getByIdPlain(LMessung.class, messungsId, "land");
+        if (messung.getStatus() == null) {
+            return defaultRepo.getAllPlain(StatusWert.class, "stamm");
+        }
         StatusProtokoll status = defaultRepo.getByIdPlain(
             StatusProtokoll.class,
             messung.getStatus(),
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)