[Webfgsk-commits] r444 - in trunk: . contrib/db

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Tue Jul 12 14:19:59 CEST 2011


Author: sholl
Date: 2011-07-12 14:19:58 +0200 (Tue, 12 Jul 2011)
New Revision: 444

Modified:
   trunk/ChangeLog
   trunk/contrib/db/auswertung_kartierabschnitt.sql
Log:
* contrib/db/auswertung_kartierabschnitt.sql: Fix issue #2511.
  Added a section to recalculate the ratings when disabling
  'sonderfall'.



Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2011-07-04 07:42:05 UTC (rev 443)
+++ trunk/ChangeLog	2011-07-12 12:19:58 UTC (rev 444)
@@ -1,3 +1,9 @@
+2011-07-12  Stephan Holl  <stephan.holl at intevation.de>
+
+	* contrib/db/auswertung_kartierabschnitt.sql: Fix issue #2511.
+	  Added a section to recalculate the ratings when disabling
+	  'sonderfall'.
+
 2011-06-30  Stephan Holl  <stephan.holl at intevation.de>
 
 	* contrib/db/auswertung_gesamt.sql: Fix: remove return-statement when

Modified: trunk/contrib/db/auswertung_kartierabschnitt.sql
===================================================================
--- trunk/contrib/db/auswertung_kartierabschnitt.sql	2011-07-04 07:42:05 UTC (rev 443)
+++ trunk/contrib/db/auswertung_kartierabschnitt.sql	2011-07-12 12:19:58 UTC (rev 444)
@@ -65,14 +65,35 @@
 END;
 $$ LANGUAGE plpgsql;
 
+--
+-- Remove bewertungen
+--
+CREATE OR REPLACE FUNCTION 
+         delete_bewertung_func(kartierabsch_id INTEGER)
+RETURNS INTEGER AS
+$$
+DECLARE
+BEGIN
+    UPDATE kartierabschnitt SET punktzahl_gesamt = NULL,
+                                punktzahl_sohle = NULL,
+                                punktzahl_ufer = NULL,
+                                punktzahl_land = NULL
+           WHERE id = kartierabsch_id;
+
+    --
+
+    RETURN kartierabsch_id;
+END;
+$$ LANGUAGE plpgsql;
+
 CREATE OR REPLACE FUNCTION update_gewaessertyp_kartierabschnitt_func()
 RETURNS TRIGGER AS
 $$
 DECLARE
 BEGIN
-    RAISE DEBUG '%: TABLE NAME = %', TG_OP, TG_TABLE_NAME;
     IF (TG_OP = 'UPDATE') THEN
         IF (TG_TABLE_NAME = 'kartierabschnitt') THEN
+            RAISE DEBUG '%: TABLE NAME = %', TG_OP, TG_TABLE_NAME;
             IF (NEW.gewaessertyp_id IS NOT NULL AND
                 NEW.gewaessertyp_id != OLD.gewaessertyp_id) THEN
                 RAISE DEBUG 'Gewaessertyp hat sich geaendert.';
@@ -85,6 +106,14 @@
                    NEW.stationierung_bis != OLD.stationierung_bis) THEN
                 RAISE DEBUG 'Stationierung BIS hat sich geaendert.';
                 perform recalculate_total_points_kartierabschnitt_func(NEW.id);
+            ELSEIF (NEW.sonderfall_id IS NULL AND OLD.sonderfall_id IS NOT
+            NULL) THEN
+                RAISE DEBUG 'Sonderfall wurde entfernt.';
+                PERFORM recalculate_total_points_kartierabschnitt_func(NEW.id);
+            ELSEIF (NEW.sonderfall_id IS NOT NULL AND Old.sonderfall_id IS
+                    NULL) THEN
+                RAISE DEBUG 'Bewertung wird entfernt, da Sonderfall vorhanden.';
+                PERFORM delete_bewertung_func(NEW.id);
             END IF;
         END IF;
     END IF;
@@ -111,4 +140,4 @@
         update_gewaessertyp_kartierabschnitt_func();
         
 -- END TRANSACTION
-END;
\ No newline at end of file
+END;



More information about the Webfgsk-commits mailing list