From db80e0aa3f29511f193d43caa616cfbd9f6d87b6 Mon Sep 17 00:00:00 2001 From: dbs Date: Mon, 8 Jun 2009 18:59:36 +0000 Subject: [PATCH] Refine Laurentian rules; add some fancy reserve rules git-svn-id: svn://svn.open-ils.org/ILS-Contrib/conifer/trunk@518 6d9bc8c9-1ec2-4278-b937-99fde70a366f --- circ/circ_duration_OSUL.js | 48 +++++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/circ/circ_duration_OSUL.js b/circ/circ_duration_OSUL.js index dfd7f1f9a6..db4c5d6c5c 100644 --- a/circ/circ_duration_OSUL.js +++ b/circ/circ_duration_OSUL.js @@ -2,33 +2,15 @@ var config = getItemConfig(); var itemForm = (marcXMLDoc) ? extractFixedField(marcXMLDoc,'Form') : ""; -/* ----------------------------------------------------------------------------- - Now set the rule values based on the config. If there is no configured info - on this copy, fall back on defaults. - ----------------------------------------------------------------------------- */ -if( config ) { - - log_debug("circ_duration found a config for the copy"); - result.durationRule = config.durationRule; - result.recurringFinesRule = config.recurringFinesRule; - result.maxFine = config.maxFine; - -} else { - - result.durationRule = 'default'; - result.recurringFinesRule = 'default'; - result.maxFine = 'default'; -} +/* Set the defaults for books for most patron types */ +result.durationRule = '3_weeks_2_renew'; +result.recurringFinesRule = 'OSUL_daily'; +result.maxFine = 'OSUL_daily'; if (patronProfile == 'Faculty' || patronProfile == 'Graduate') { result.durationRule = '120_days_2_renew'; } -if (patronProfile == 'Undergraduate' || - patronProfile == 'Staff members' || - patronProfile == 'Readers') { - result.durationRule = '3_weeks_2_renew'; -} /* Distance education laptops */ if (copy.circ_modifier == 'COMPUTER') { @@ -44,6 +26,28 @@ if (copy.circ_modifier == 'COMPUTER SHORT') { result.maxFine = 'overdue_equip_max'; } +/* Study room keys */ +if (copy.circ_modifier == 'KEYS') { + result.durationRule = '4_hours_0_renew'; + result.recurringFinesRule = 'OSUL_hourly'; + result.maxFine = 'OSUL_hourly'; +} + +/* Reserve items - let's use regular expressions to save some pain */ +res_day_re = /^RESERVE (\d+) DAY$/; +res_hour_re = /^RESERVE (\d+) HOUR$/; +res_day_match = res_day_re.exec(copy.circ_modifier); +res_hour_match = res_hour_re.exec(copy.circ_modifier); +if (res_day_match) { + result.durationRule = res_day_match[1] + '_days_0_renew'; + result.recurringFinesRule = 'OSUL_reserves_daily'; + result.maxFine = 'OSUL_reserves_daily'; +} else if (res_hour_match) { + result.durationRule = res_hour_match[1] + '_hours_0_renew'; + result.recurringFinesRule = 'OSUL_reserves_daily'; + result.maxFine = 'OSUL_reserves_daily'; +} + /* RACER books */ if (copy.circ_modifier == 'PEB-LIVRE') { result.durationRule = '14_days_0_renew'; -- 2.11.0