LP#1394356 Patron purge circs retain post code
[working/Evergreen.git] / Open-ILS / src / sql / Pg / 999.functions.global.sql
index a339b1a..d724afc 100644 (file)
@@ -379,13 +379,6 @@ BEGIN
                dest_usr := specified_dest_usr;
        END IF;
 
-       UPDATE actor.usr SET
-               active = FALSE,
-               card = NULL,
-               mailing_address = NULL,
-               billing_address = NULL
-       WHERE id = src_usr;
-
        -- acq.*
        UPDATE acq.fund_allocation SET allocator = dest_usr WHERE allocator = src_usr;
        UPDATE acq.lineitem SET creator = dest_usr WHERE creator = src_usr;
@@ -684,6 +677,15 @@ BEGIN
                END LOOP;
        END LOOP;
 
+    -- NULL-ify addresses last so other cleanup (e.g. circ anonymization)
+    -- can access the information before deletion.
+       UPDATE actor.usr SET
+               active = FALSE,
+               card = NULL,
+               mailing_address = NULL,
+               billing_address = NULL
+       WHERE id = src_usr;
+
 END;
 $$ LANGUAGE plpgsql;