Refine Laurentian rules; add some fancy reserve rules
authordbs <dbs@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Mon, 8 Jun 2009 18:59:36 +0000 (18:59 +0000)
committerdbs <dbs@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Mon, 8 Jun 2009 18:59:36 +0000 (18:59 +0000)
git-svn-id: svn://svn.open-ils.org/ILS-Contrib/conifer/trunk@518 6d9bc8c9-1ec2-4278-b937-99fde70a366f

circ/circ_duration_OSUL.js

index dfd7f1f..db4c5d6 100644 (file)
@@ -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';