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 var circMod = (copy.circ_modifier) ? copy.circ_modifier.toLowerCase() : '';
49 if( isOrgDescendent('STATELIB', copy.circ_lib.id) ) {
50 if( circMod == 'book' )
51 result.durationRule = '35_days_1_renew';
53 result.durationRule = '14_days_2_renew';
55 } else if( isOrgDescendent('NCLS', copy.circ_lib.id) && ( circMod == 'dvd' || circMod == 'video' ) )
56 result.recurringFinesRule = '10_cent_per_day';
59 checkDurationExceptions();
61 log_info('final duration results: ' + result.durationRule + ' : ' + result.recurringFinesRule + ' : ' + result.maxFine );
67 function checkDurationExceptions() {
68 log_debug("Checking duration rule exceptions for profile "+patronProfile);
70 if( isGroupDescendant('Staff', patronProfile) ||
71 isGroupDescendant('Trustee', patronProfile) ||
72 isGroupDescendant('Outreach', patronProfile) ) {
74 result.recurringFinesRule = "staff";
75 result.maxFine = "staff";
78 if( isGroupDescendant('Outreach', patronProfile) ) {
79 log_info("Outreach user found, setting duration to 2 months");
80 result.durationRule = '2_months_2_renew';