2 -- copy location groups
6 INSERT INTO asset.copy_location (owning_lib, name) VALUES
11 (2, 'Young Adult Fiction'),
12 (4, 'Young Adult Fiction'),
13 (5, 'Young Adult Fiction'),
14 (6, 'Young Adult Fiction'),
15 (2, 'Children''s Fiction'),
16 (3, 'Children''s Fiction'),
22 (4, 'Science Fiction'),
23 (7, 'Science Fiction'),
32 -- different settings per org level
33 INSERT INTO asset.copy_location
34 (owning_lib, name, holdable, opac_visible, circulate) VALUES
35 (2, 'Display', FALSE, FALSE, TRUE),
36 (4, 'Display', FALSE, FALSE, FALSE),
37 (5, 'Display', TRUE, FALSE, FALSE),
38 (6, 'Display', TRUE, FALSE, FALSE),
39 (7, 'Display', FALSE, FALSE, FALSE),
40 (1, 'New Arrivals', TRUE, TRUE, TRUE),
41 (2, 'New Arrivals', FALSE, TRUE, TRUE),
42 (4, 'New Arrivals', TRUE, TRUE, FALSE),
43 (5, 'New Arrivals', TRUE, TRUE, TRUE);
45 -- copy location groups
47 INSERT INTO asset.copy_location_group (name, owner) VALUES ('Sys1 Fiction', 2);
49 INSERT INTO asset.copy_location_group_map (lgroup, location)
50 SELECT CURRVAL('asset.copy_location_group_id_seq'), id
51 FROM asset.copy_location
52 WHERE owning_lib in (2, 4, 5) AND opac_visible;
54 INSERT INTO asset.copy_location_group (name, owner) VALUES ('Sys2 Fiction', 2);
56 INSERT INTO asset.copy_location_group_map (lgroup, location)
57 SELECT CURRVAL('asset.copy_location_group_id_seq'), id
58 FROM asset.copy_location
59 WHERE owning_lib in (3, 6, 7) AND opac_visible;
61 -- Distribute copies evenly across copy locations whose owning_lib
62 -- matches the copy circ lib. To provide some level of repeatable
63 -- outcome, we loop instead of applying locations at randon within
64 -- a given owning_lib.
66 DECLARE cur_loc INTEGER;
67 DECLARE cur_copy asset.copy%ROWTYPE;
71 FOR cur_copy IN SELECT * FROM asset.copy
72 WHERE location = 1 ORDER BY circ_lib, id LOOP
74 -- find the next location for the current copy's circ lib
75 SELECT INTO cur_loc id FROM asset.copy_location
76 WHERE owning_lib = cur_copy.circ_lib AND id > cur_loc
80 -- start back over at the front of the list
82 SELECT INTO cur_loc id FROM asset.copy_location
83 WHERE owning_lib = cur_copy.circ_lib AND id > cur_loc
88 -- no copy location at this circ lib, leave the default (1)
92 UPDATE asset.copy SET location = cur_loc WHERE id = cur_copy.id;