37711cd8ddf7929270b15745c1a443345b21323a
[Evergreen.git] / Evergreen / src / extras / import / legacy_hold.sql
1 BEGIN;
2
3 -- These are copy level holds
4 -- CREATE TABLE legacy_copy_hold_insert AS
5 INSERT INTO action.hold_request
6         (id, target, current_copy, hold_type, pickup_lib, selection_ou, selection_depth, request_time, capture_time, request_lib, requestor, usr) 
7         SELECT  lh.hold_key AS id,
8                 cp.id AS target,
9                 cp.id AS current_copy,
10                 'C'::TEXT AS hold_type,
11                 pou.id AS pickup_lib,
12                 pou.id AS selection_ou,
13                 CASE    WHEN lh.hold_range = 'SYSTEM' THEN 0
14                         WHEN lh.hold_range = 'GROUP' THEN 1
15                         ELSE 2
16                 END AS selection_depth,
17                 lh.hold_date AS request_time,
18                 CASE    WHEN lh.available IN ('Y','I') THEN now()
19                         ELSE NULL
20                 END AS capture_time,
21                 rou.id AS request_lib,
22                 au.id AS requestor,
23                 au.id AS usr
24           FROM  legacy_hold lh
25                 JOIN legacy_item jl
26                         ON (    jl.cat_key = lh.cat_key
27                                 AND jl.call_key = lh.call_key
28                                 AND jl.item_key = lh.item_key )
29                 JOIN asset.copy cp ON (cp.barcode = jl.item_id)
30                 JOIN actor.usr au ON (au.id = lh.user_key)
31                 JOIN actor.org_unit rou ON (rou.shortname = lh.placing_lib)
32                 JOIN actor.org_unit pou ON (pou.shortname = lh.pickup_lib)
33           WHERE lh.hold_level = 'C'
34                 AND lh.hold_date > '2006-01-01';
35
36 -- And these are CN level holds
37 -- CREATE TABLE legacy_cn_hold_insert AS
38 INSERT INTO action.hold_request
39         (id, target, current_copy, hold_type, pickup_lib, selection_ou, selection_depth, request_time, capture_time, request_lib, requestor, usr) 
40         SELECT  lh.hold_key AS id,
41                 cp.call_number AS target,
42                 cp.id AS current_copy,
43                 'V'::TEXT AS hold_type,
44                 pou.id AS pickup_lib,
45                 pou.id AS selection_ou,
46                 CASE    WHEN lh.hold_range = 'SYSTEM' THEN 0
47                         WHEN lh.hold_range = 'GROUP' THEN 1
48                         ELSE 2
49                 END AS selection_depth,
50                 lh.hold_date AS request_time,
51                 CASE    WHEN lh.available IN ('Y','I') THEN now()
52                         ELSE NULL
53                 END AS capture_time,
54                 rou.id AS request_lib,
55                 au.id AS requestor,
56                 au.id AS usr
57           FROM  legacy_hold lh
58                 JOIN legacy_item jl
59                         ON (    jl.cat_key = lh.cat_key
60                                 AND jl.call_key = lh.call_key
61                                 AND jl.item_key = lh.item_key )
62                 JOIN asset.copy cp ON (cp.barcode = jl.item_id)
63                 JOIN actor.usr au ON (au.id = lh.user_key)
64                 JOIN actor.org_unit rou ON (rou.shortname = lh.placing_lib)
65                 JOIN actor.org_unit pou ON (pou.shortname = lh.pickup_lib)
66           WHERE lh.hold_level = 'A'
67                 AND lh.hold_date > '2006-01-01';
68
69 -- And these are Title level holds
70 -- CREATE TABLE legacy_title_hold_insert AS
71 INSERT INTO action.hold_request
72         (id, target, current_copy, hold_type, pickup_lib, selection_ou, selection_depth, request_time, capture_time, request_lib, requestor, usr) 
73         SELECT  lh.hold_key AS id,
74                 lh.cat_key AS target,
75                 cp.id AS current_copy,
76                 'T'::TEXT AS hold_type,
77                 pou.id AS pickup_lib,
78                 pou.id AS selection_ou,
79                 CASE    WHEN lh.hold_range = 'SYSTEM' THEN 0
80                         WHEN lh.hold_range = 'GROUP' THEN 1
81                         ELSE 2
82                 END AS selection_depth,
83                 lh.hold_date AS request_time,
84                 CASE    WHEN lh.available IN ('Y','I') THEN now()
85                         ELSE NULL
86                 END AS capture_time,
87                 rou.id AS request_lib,
88                 au.id AS requestor,
89                 au.id AS usr
90           FROM  legacy_hold lh
91                 JOIN legacy_item jl
92                         ON (    jl.cat_key = lh.cat_key
93                                 AND jl.call_key = lh.call_key
94                                 AND jl.item_key = lh.item_key )
95                 JOIN asset.copy cp ON (cp.barcode = jl.item_id)
96                 JOIN actor.usr au ON (au.id = lh.user_key)
97                 JOIN actor.org_unit rou ON (rou.shortname = lh.placing_lib)
98                 JOIN actor.org_unit pou ON (pou.shortname = lh.pickup_lib)
99           WHERE lh.hold_level = 'T'
100                 AND lh.hold_date > '2006-01-01';
101
102 SELECT SETVAL('action.hold_request_id_seq',(SELECT MAX(id) FROM action.hold_request),TRUE);
103
104 COMMIT;