SHOW:
|
|
- or go back to the newest paste.
1 | -- really verbose alternative for getting the rules for in-db holds rules | |
2 | -- rather than just select * config.hold_matrix_matchpoint | |
3 | -- almost a necessity for a consortium with varying rules or any library | |
4 | -- with intricate polices because in-db holds policies are much easier to | |
5 | -- handle via SQL than through the staff client | |
6 | -- script has IDs for admins and look ups to names for easy reference | |
7 | -- tested on 2.1 and 2.4 | |
8 | -- updated to include the circ limits information on 2.4.4 2013-12-19 | |
9 | -- this tracks circ limits information for circ limits only not copy locations or MARC attributes | |
10 | -- (c) Rogan Hamby, 2013, roganhamby.com | |
11 | -- Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License | |
12 | ||
13 | ||
14 | - | |
14 | + | SELECT cmm.id AS "circ matrix match id", cmm.is_renewal, org.shortname AS "org unit", tree.NAME AS "group", cmm.circ_modifier, cmm.circulate, |
15 | - | SELECT ccm.id AS "Circ Matrix Matchpoint ID", ccm.active AS "Active", ccm.org_unit AS "Circ Org Unit", aou.shortname AS "Circ Short Org Unit Name", |
15 | + | cmm.active as "circ matrix active", cmm.marc_type, cmm.marc_form, cmm.marc_vr_format, cmm.ref_flag, cmm.usr_age_lower_bound, cmm.usr_age_upper_bound, |
16 | - | aou.parent_ou AS "Parent Org Unit", aou2.shortname "Parent Org Unit Short Name", pgt.id AS "Permission Group ID", |
16 | + | cmm.juvenile_flag, cmm.script_test, cmm.hard_due_date, cmm.total_copy_hold_ratio, cmm.available_copy_hold_ratio, cmm.marc_bib_level, |
17 | - | pgt.NAME AS "Permission Group Name", ccm.circ_modifier AS "Circ Modifier", ccm.marc_type AS "MARC Type", ccm.marc_form AS "MARC Form", |
17 | + | cmm_copy_circ.shortname as "cmm copy circ lib", cmm_copy_own.shortname as "cmm copy owning lib", cmm.renewals as "cmm renewals", |
18 | - | ccm.marc_vr_format AS "MARC Video Recording Format", ccm.ref_flag AS "Reference Boolean", ccm.is_renewal AS "Renewable Boolean", |
18 | + | cmm.user_home_ou as "cmm user home org unit", cmm.grace_period as "cmm grace period", cmm.item_age, aclx.name as "cmm copy location", |
19 | - | ccm.usr_age_lower_bound AS "Lower Age Bound", ccm.usr_age_upper_bound AS "Upper Age Bound", ccm.juvenile_flag AS "Juvenile", |
19 | + | duration.NAME AS "duration", duration.id AS "duration id", recurring.NAME AS "recurring", recurring.id AS "recurring id", |
20 | - | ccm.duration_rule AS "Duration Rule", dur.NAME AS "Duration Name", ccm.max_fine_rule AS "Max Fine Rule", maxf.NAME AS "Max Fine Name", |
20 | + | maxfine.NAME AS "maxfine", maxfine.id AS "maxfine id", lsm.id AS "limit set map id", lsm.fallthrough AS "limit set map fallthrough", |
21 | - | ccm.recurring_fine_rule AS "Recurring Fine Rule", recur.NAME AS "Recurring Fine Name", ccm.total_copy_hold_ratio AS "Total Copy Hold Ratio", |
21 | + | lsm.active AS "limit set map active", cls.id AS "circ limit id", cls.items_out AS "items out", limsetorg.shortname AS "limit set owning lib", |
22 | - | ccm.available_copy_hold_ratio AS "Available Copy Hold Ratio", |
22 | + | cls.depth AS "limit set depth", cls.NAME AS "circ limit name", cls.global AS "circ limit global", cls.description AS "circ limit description", |
23 | - | ccm.hard_due_date AS "Hard Due Date ID", hdd.NAME AS "Hard Due Date Name", |
23 | + | cls_circmod.id AS "cls_circmod id", cls_circmod.circ_mod AS "cls_circmod", cls_copyloc.id AS "cls_copyloc id", acl.NAME "copy location", |
24 | - | ccm.copy_circ_lib AS "Copy Circ Lib ID", aou3.shortname AS "Copy Circ Lib Shortname", |
24 | + | cls_groupmap.id AS "cls group map", cls_groupmap.check_only AS "cls group check only", |
25 | - | ccm.copy_owning_lib AS "Copy Owning Lib ID", aou4.shortname AS "Copy Owning Lib Shortname", |
25 | + | cls_group.id AS "clsgroup id", cls_group.NAME AS "clsgroup name", cls_group.description AS "clsgroup description" |
26 | - | ccm.renewals AS "Renewals", |
26 | + | FROM config.circ_matrix_matchpoint cmm |
27 | - | ccm.user_home_ou AS "User Home Lib ID", aou5.shortname AS "User Home Lib Shortname", |
27 | + | JOIN actor.org_unit org ON org.id = cmm.org_unit |
28 | - | ccm.grace_period AS "Grace Period", ccm.marc_bib_level AS "MARC Bib Level", |
28 | + | LEFT JOIN actor.org_unit cmm_copy_circ ON cmm_copy_circ.id = cmm.copy_circ_lib |
29 | - | lsm.id AS "Circ Limit Set Map ID", cls.owning_lib AS "Circ Limit Set Owning Lib", lsm.limit_set as "Circ Limit Set ID", |
29 | + | LEFT JOIN actor.org_unit cmm_copy_own ON cmm_copy_own.id = cmm.copy_owning_lib |
30 | - | aoucls.shortname AS "Circ Limit Set Owning Lib Name", |
30 | + | LEFT JOIN config.circ_matrix_limit_set_map lsm ON lsm.matchpoint = cmm.id |
31 | - | cls.items_out "Circ Limit Set Items Out", cls.depth AS "Circ Limit Set Depth", cls.GLOBAL AS "Circ Limit Set Global", |
31 | + | LEFT JOIN actor.org_unit cmm_user_home on cmm_user_home.id = cmm.user_home_ou |
32 | - | scmm.circ_mod AS "Circ Limit Set Circ Mod", scmm.id as "Circ Mod Map ID" |
32 | + | |
33 | - | FROM config.circ_matrix_matchpoint ccm |
33 | + | LEFT JOIN asset.copy_location aclx on aclx.id = cmm.copy_location |
34 | - | LEFT JOIN actor.org_unit aou ON aou.id = ccm.org_unit |
34 | + | JOIN permission.grp_tree tree ON tree.id = cmm.grp |
35 | - | LEFT JOIN actor.org_unit aou2 ON aou2.id = aou.parent_ou |
35 | + | JOIN config.rule_circ_duration duration ON duration.id = cmm.duration_rule |
36 | - | LEFT JOIN permission.grp_tree pgt ON pgt.id = ccm.grp |
36 | + | JOIN config.rule_max_fine maxfine ON maxfine.id = cmm.max_fine_rule |
37 | - | LEFT JOIN config.rule_circ_duration dur ON dur.id = ccm.duration_rule |
37 | + | JOIN config.rule_recurring_fine recurring ON recurring.id = cmm.recurring_fine_rule |
38 | - | LEFT JOIN config.rule_max_fine maxf ON maxf.id = ccm.max_fine_rule |
38 | + | LEFT JOIN actor.org_unit limsetorg ON limsetorg.id = cls.owning_lib |
39 | - | LEFT JOIN config.rule_recurring_fine recur ON recur.id = ccm.recurring_fine_rule |
39 | + | LEFT JOIN config.circ_limit_set_circ_mod_map cls_circmod ON cls_circmod.limit_set = cls.id |
40 | - | LEFT JOIN config.hard_due_date hdd ON hdd.id = ccm.hard_due_date |
40 | + | LEFT JOIN config.circ_limit_set_copy_loc_map cls_copyloc ON cls_copyloc.limit_set = cls.id |
41 | - | LEFT JOIN actor.org_unit aou3 ON aou3.id = ccm.copy_circ_lib |
41 | + | LEFT JOIN config.circ_limit_set_group_map cls_groupmap ON cls_groupmap.limit_set = cls.id |
42 | - | LEFT JOIN actor.org_unit aou4 ON aou4.id = ccm.copy_owning_lib |
42 | + | LEFT JOIN config.circ_limit_group cls_group ON cls_group.id = cls_groupmap.limit_group |
43 | - | LEFT JOIN actor.org_unit aou5 ON aou5.id = ccm.user_home_ou |
43 | + | LEFT JOIN asset.copy_location acl ON acl.id = cls_copyloc.copy_loc |
44 | - | LEFT JOIN config.circ_matrix_limit_set_map lsm ON lsm.matchpoint = ccm.id |
44 | + | |
45 | ||
46 | - | LEFT JOIN config.circ_limit_set_circ_mod_map scmm ON scmm.limit_set = cls.id |
46 | + | -- where org.id in (160,165,164,163,161,162) ; |
47 | - | LEFT JOIN actor.org_unit aoucls ON aoucls.id = cls.owning_lib |
47 | + | |
48 | -- with thresholds | |
49 | -- could clean it up more with group bys but it gets changed so much for different things it's easier to do in the spreadsheet | |
50 | ||
51 | - | -- shorter with circ |
51 | + | SELECT cmm.id AS "circ matrix match id", cmm.is_renewal, org.shortname AS "org unit", tree.NAME AS "group", cmm.circ_modifier, cmm.circulate, |
52 | - | |
52 | + | cmm.active AS "circ matrix active", cmm.marc_type, cmm.marc_form, cmm.marc_vr_format, cmm.ref_flag, cmm.usr_age_lower_bound, cmm.usr_age_upper_bound, |
53 | - | SELECT ccm.id AS "Circ Matrix Matchpoint ID", ccm.active AS "Active", ccm.circulate as "Circulate", |
53 | + | cmm.juvenile_flag, cmm.script_test, cmm.hard_due_date, cmm.total_copy_hold_ratio, cmm.available_copy_hold_ratio, cmm.marc_bib_level, |
54 | - | ccm.org_unit AS "Circ Org Unit", aou.shortname AS "Circ Short Org Unit Name", |
54 | + | cmm_copy_circ.shortname AS "cmm copy circ lib", cmm_copy_own.shortname AS "cmm copy owning lib", cmm.renewals AS "cmm renewals", |
55 | - | aou.parent_ou AS "Parent Org Unit", aou2.shortname "Parent Org Unit Short Name", pgt.id AS "Permission Group ID", |
55 | + | cmm.user_home_ou AS "cmm user home org unit", cmm.grace_period AS "cmm grace period", cmm.item_age, aclx.NAME AS "cmm copy location", |
56 | - | pgt.NAME AS "Permission Group Name", ccm.circ_modifier AS "Circ Modifier", |
56 | + | duration.NAME AS "duration", duration.id AS "duration id", recurring.NAME AS "recurring", recurring.id AS "recurring id", |
57 | - | ccm.duration_rule AS "Duration Rule", dur.NAME AS "Duration Name", ccm.max_fine_rule AS "Max Fine Rule", maxf.NAME AS "Max Fine Name", |
57 | + | maxfine.NAME AS "maxfine", maxfine.id AS "maxfine id", lsm.id AS "limit set map id", lsm.fallthrough AS "limit set map fallthrough", |
58 | - | ccm.recurring_fine_rule AS "Recurring Fine Rule", recur.NAME AS "Recurring Fine Name", |
58 | + | lsm.active AS "limit set map active", cls.id AS "circ limit id", cls.items_out AS "items out", limsetorg.shortname AS "limit set owning lib", |
59 | - | ccm.user_home_ou AS "User Home Lib ID", aou5.shortname AS "User Home Lib Shortname", |
59 | + | cls.depth AS "limit set depth", cls.NAME AS "circ limit name", cls.GLOBAL AS "circ limit global", cls.description AS "circ limit description", |
60 | - | lsm.id AS "Circ Limit Set Map ID", cls.owning_lib AS "Circ Limit Set Owning Lib", lsm.limit_set AS "Circ Limit Set ID", |
60 | + | cls_circmod.id AS "cls_circmod id", cls_circmod.circ_mod AS "cls_circmod", cls_copyloc.id AS "cls_copyloc id", acl.NAME "copy location", |
61 | - | aoucls.shortname AS "Circ Limit Set Owning Lib Name", |
61 | + | cls_groupmap.id AS "cls group map", cls_groupmap.check_only AS "cls group check only", |
62 | - | cls.items_out "Circ Limit Set Items Out", cls.depth AS "Circ Limit Set Depth", cls.GLOBAL AS "Circ Limit Set Global", |
62 | + | cls_group.id AS "clsgroup id", cls_group.NAME AS "clsgroup name", cls_group.description AS "clsgroup description", |
63 | - | scmm.circ_mod AS "Circ Limit Set Circ Mod", scmm.id AS "Circ Mod Map ID" |
63 | + | penalty_org.shortname, pgpt.threshold, csp.NAME AS "penalty name", csp.label AS "penalty description", csp.block_list, csp.org_depth, csp.staff_alert |
64 | - | FROM config.circ_matrix_matchpoint ccm |
64 | + | FROM config.circ_matrix_matchpoint cmm |
65 | - | LEFT JOIN actor.org_unit aou ON aou.id = ccm.org_unit |
65 | + | JOIN actor.org_unit org ON org.id = cmm.org_unit |
66 | - | LEFT JOIN actor.org_unit aou2 ON aou2.id = aou.parent_ou |
66 | + | JOIN actor.org_unit org_parent ON org_parent.id = org.parent_ou |
67 | - | LEFT JOIN permission.grp_tree pgt ON pgt.id = ccm.grp |
67 | + | LEFT JOIN actor.org_unit cmm_copy_circ ON cmm_copy_circ.id = cmm.copy_circ_lib |
68 | - | LEFT JOIN config.rule_circ_duration dur ON dur.id = ccm.duration_rule |
68 | + | LEFT JOIN actor.org_unit cmm_copy_own ON cmm_copy_own.id = cmm.copy_owning_lib |
69 | - | LEFT JOIN config.rule_max_fine maxf ON maxf.id = ccm.max_fine_rule |
69 | + | LEFT JOIN config.circ_matrix_limit_set_map lsm ON lsm.matchpoint = cmm.id |
70 | - | LEFT JOIN config.rule_recurring_fine recur ON recur.id = ccm.recurring_fine_rule |
70 | + | LEFT JOIN actor.org_unit cmm_user_home ON cmm_user_home.id = cmm.user_home_ou |
71 | - | LEFT JOIN config.hard_due_date hdd ON hdd.id = ccm.hard_due_date |
71 | + | |
72 | - | LEFT JOIN actor.org_unit aou3 ON aou3.id = ccm.copy_circ_lib |
72 | + | LEFT JOIN asset.copy_location aclx ON aclx.id = cmm.copy_location |
73 | - | LEFT JOIN actor.org_unit aou4 ON aou4.id = ccm.copy_owning_lib |
73 | + | JOIN permission.grp_tree tree ON tree.id = cmm.grp |
74 | - | LEFT JOIN actor.org_unit aou5 ON aou5.id = ccm.user_home_ou |
74 | + | JOIN config.rule_circ_duration duration ON duration.id = cmm.duration_rule |
75 | - | LEFT JOIN config.circ_matrix_limit_set_map lsm ON lsm.matchpoint = ccm.id |
75 | + | JOIN config.rule_max_fine maxfine ON maxfine.id = cmm.max_fine_rule |
76 | JOIN config.rule_recurring_fine recurring ON recurring.id = cmm.recurring_fine_rule | |
77 | - | LEFT JOIN config.circ_limit_set_circ_mod_map scmm ON scmm.limit_set = cls.id |
77 | + | LEFT JOIN actor.org_unit limsetorg ON limsetorg.id = cls.owning_lib |
78 | - | LEFT JOIN actor.org_unit aoucls ON aoucls.id = cls.owning_lib |
78 | + | LEFT JOIN config.circ_limit_set_circ_mod_map cls_circmod ON cls_circmod.limit_set = cls.id |
79 | LEFT JOIN config.circ_limit_set_copy_loc_map cls_copyloc ON cls_copyloc.limit_set = cls.id | |
80 | - | |
80 | + | LEFT JOIN config.circ_limit_set_group_map cls_groupmap ON cls_groupmap.limit_set = cls.id |
81 | LEFT JOIN config.circ_limit_group cls_group ON cls_group.id = cls_groupmap.limit_group | |
82 | - | -- for troubleshooting : |
82 | + | LEFT JOIN asset.copy_location acl ON acl.id = cls_copyloc.copy_loc |
83 | LEFT JOIN permission.grp_penalty_threshold pgpt ON pgpt.grp = tree.id | |
84 | LEFT JOIN config.standing_penalty csp ON csp.id = pgpt.penalty | |
85 | - | SELECT ccm.id AS "Circ Matrix Matchpoint ID", aou.shortname AS "Circ Short Org Unit Name", |
85 | + | LEFT JOIN actor.org_unit penalty_org ON penalty_org.id = pgpt.org_unit |
86 | - | pgt.NAME AS "Permission Group Name", ccm.circ_modifier AS "Circ Modifier", ccm.circulate as "Circulate Boolean", |
86 | + | -- where (pgpt.org_unit = org.id or pgpt.org_unit = org_parent.id) |
87 | - | ccm.is_renewal AS "Renewable Boolean", lsm.id AS "Circ Limit Set Map ID", cls.id as "Circ Limit Set ID", |
87 | + | ; |