3 load_lib('circ/circ_item_config.js');
4 log_vars('circ_duration');
7 /* treat pre-cat copies like vanilla books */
8 if( isTrue(isPrecat) ) {
9 log_info("pre-cat copy getting duration defaults...");
10 result.durationRule = '14_days_2_renew';
11 result.recurringFinesRule = '10_cent_per_day';
12 result.maxFine = 'overdue_mid';
13 checkDurationExceptions();
18 /* grab the config from the config script */
19 var config = getItemConfig();
20 var itemForm = (marcXMLDoc) ? extractFixedField(marcXMLDoc,'Form') : "";
23 /* -----------------------------------------------------------------------------
24 Now set the rule values based on the config. If there is no configured info
25 on this copy, fall back on defaults.
26 ----------------------------------------------------------------------------- */
29 log_debug("circ_duration found a config for the copy");
30 result.durationRule = config.durationRule;
31 result.recurringFinesRule = config.recurringFinesRule;
32 result.maxFine = config.maxFine;
36 result.durationRule = '14_days_2_renew';
37 result.recurringFinesRule = "10_cent_per_day";
38 result.maxFine = "overdue_mid";
43 /* -----------------------------------------------------------------------------
44 Add custom rules here.
45 ----------------------------------------------------------------------------- */
47 /* statelib has some special circ rules */
49 if( isOrgDescendent('STATELIB', copy.circ_lib.id) ) {
51 result.durationRule = '35_days_1_renew';
52 result.recurringFinesRule = "10_cent_per_day";
53 result.maxFine = "overdue_mid";
55 /* reference, microfiche, microfilm */
56 if( isTrue(copy.ref) ||
60 result.durationRule = '14_days_2_renew';
65 /* and so does OCRL */
67 if( isOrgDescendent('OCRL', copy.circ_lib.id) && copy.circ_modifier == 'VIDEO') {
68 result.durationRule = '7_days_0_renew';
69 result.recurringFinesRule = '10_cent_per_day';
73 checkDurationExceptions();
75 log_debug(result.durationRule + ' : ' + result.recurringFinesRule + ' : ' + result.maxFine );
81 function checkDurationExceptions() {
82 log_debug("Checking duration rule exceptions for profile "+patronProfile);
84 if( isGroupDescendant('Staff', patronProfile) ||
85 isGroupDescendant('Trustee', patronProfile) ||
86 isGroupDescendant('Outreach', patronProfile) ) {
88 result.recurringFinesRule = "staff";
89 result.maxFine = "staff";
92 if( isGroupDescendant('Outreach', patronProfile) ) {
93 log_info("Outreach user found, setting duration to 2 months");
94 result.durationRule = '2_months_2_renew';