X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=blobdiff_plain;f=sql%2Fbase%2Fbase.sql;h=0629596dc599d702fdc6b8a114ace60c198fb4d5;hp=40a1e8bcdfe6184b2d1bec136800430ae2db4c5d;hb=7eb372db1e9b60cf6f25eec7e1233f6f51559be8;hpb=a1e4af4f898071d7de1bd233f085c5ea774fee0d diff --git a/sql/base/base.sql b/sql/base/base.sql index 40a1e8b..0629596 100644 --- a/sql/base/base.sql +++ b/sql/base/base.sql @@ -3133,3 +3133,29 @@ BEGIN END $$ LANGUAGE plpgsql; +-- may remove later but testing using this with new migration scripts and not loading acls until go live + +DROP FUNCTION IF EXISTS migration_tools.find_mig_shelf(INT,TEXT); +CREATE OR REPLACE FUNCTION migration_tools.find_mig_shelf(org_id INT, shelf_name TEXT) RETURNS INTEGER AS $$ +DECLARE + return_id INT; + d INT; + cur_id INT; +BEGIN + SELECT INTO d MAX(distance) FROM actor.org_unit_ancestors_distance(org_id); + WHILE d >= 0 + LOOP + SELECT INTO cur_id id FROM actor.org_unit_ancestor_at_depth(org_id,d); + + SELECT INTO return_id id FROM + (SELECT * FROM asset.copy_location UNION ALL SELECT * FROM asset_copy_location) x + WHERE owning_lib = cur_id AND name ILIKE shelf_name; + IF return_id IS NOT NULL THEN + RETURN return_id; + END IF; + d := d - 1; + END LOOP; + + RETURN NULL; +END +$$ LANGUAGE plpgsql;