Add upgrade script for asset.acp_status_changed().
authorJason Stephenson <jstephenson@mvlc.org>
Wed, 12 Oct 2011 14:53:55 +0000 (10:53 -0400)
committerJason Stephenson <jstephenson@mvlc.org>
Tue, 22 Nov 2011 14:27:53 +0000 (09:27 -0500)
CREATE OR REPLACE FUNCTION with the new function definition.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Open-ILS/src/sql/Pg/upgrade/XXXX.asset.acp_status_changed.sql [new file with mode: 0644]
Open-ILS/src/sql/Pg/upgrade/XXXX.config.copy_status.restrict_copy_delete.sql

diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.asset.acp_status_changed.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.asset.acp_status_changed.sql
new file mode 100644 (file)
index 0000000..05316f2
--- /dev/null
@@ -0,0 +1,18 @@
+CREATE OR REPLACE FUNCTION asset.acp_status_changed()
+RETURNS TRIGGER AS $$
+BEGIN
+       IF NEW.status <> OLD.status AND NOT (NEW.status = 0 AND OLD.status = 7) THEN
+        NEW.status_changed_time := now();
+        IF NEW.active_date IS NULL AND NEW.status IN (SELECT id FROM config.copy_status WHERE copy_active = true) THEN
+            NEW.active_date := now();
+        END IF;
+    END IF;
+    IF NEW.deleted <> OLD.deleted AND NEW.deleted = TRUE THEN
+        IF NEW.status IN (SELECT id FROM config.copy_status WHERE restrict_copy_delete = TRUE) THEN
+            NEW.deleted := FALSE;
+        END IF;
+    END IF;
+    RETURN NEW;
+END;
+$$ LANGUAGE plpgsql;
+
index e91aed2..ec3c6c1 100644 (file)
@@ -1,7 +1,7 @@
 BEGIN;
 
 ALTER TABLE config.copy_status
-         ADD COLUMN restrict_copy_delete BOOL NOT NULL DEFAULT FALSE;
+      ADD COLUMN restrict_copy_delete BOOL NOT NULL DEFAULT FALSE;
 
 UPDATE config.copy_status
 SET restrict_copy_delete = TRUE