--- /dev/null
+/* SIP media types
+000 Other
+001 Book
+002 Magazine
+003 Bound journal
+004 Audio tape
+005 Video tape
+006 CD/CDROM
+007 Diskette
+008 Book with diskette
+009 Book with CD
+010 Book with audio tape
+*/
+
+/* set item type defaults - if the either the patron group or the circ modifier
+ is missing or invalid, these settings will be used */
+
+// do these first two have any significance for us?
+result.SIPMediaType = '001';
+result.magneticMedia = 'f';
+
+// if result.durationRule is not modified for a patron group, item does not circulate
+result.durationRule = 'non_circ';
+
+// for fines, set the most common value here
+result.recurringFinesRule = '50_cent_per_day';
+result.maxFine = '10_dollars';
+
+/* adjust rules by patron group and circ modifier */
+
+switch(patronProfile) {
+
+ case 'Circulators':
+ result.durationRule = '120_days_2_renew';
+ break;
+
+ case 'Patrons':
+ switch(copy.circ_modifier) {
+ case 'cd music':
+ // use defaults
+ break;
+ case 'circ':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'circ short':
+ // use defaults
+ break;
+ case 'crc media':
+ result.durationRule = '7_days_3_renew';
+ break;
+ case 'crc spec':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'crc text':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'dnon':
+ // use defaults
+ break;
+ case 'doc':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'dvd video':
+ result.durationRule = '3_days_1_renew';
+ break;
+ case 'law mono':
+ // use defaults
+ break;
+ case 'law nocirc':
+ // use defaults
+ break;
+ case 'law res1d':
+ // use defaults
+ break;
+ case 'law res3d':
+ // use defaults
+ break;
+ case 'law res3h':
+ // use defaults
+ break;
+ case 'law res5h':
+ // use defaults
+ break;
+ case 'law serial':
+ // use defaults
+ break;
+ case 'map':
+ // use defaults
+ break;
+ case 'map (circulating)':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'map (reference)':
+ // use defaults
+ break;
+ case 'media':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'mform':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'mform ref':
+ // use defaults
+ break;
+ case 'mform ser':
+ // use defaults
+ break;
+ case 'ref':
+ result.durationRule = '7_days_3_renew';
+ break;
+ case 'rsv1':
+ // use defaults
+ break;
+ case 'rsv2':
+ // use defaults
+ break;
+ case 'rsv3':
+ // use defaults
+ break;
+ case 'rsv7':
+ // use defaults
+ break;
+ case 'ser':
+ // use defaults
+ break;
+ case 'thesis':
+ result.durationRule = '14_days_3_renew';
+ break;
+ }
+ break;
+
+ case 'Faculty':
+ switch(copy.circ_modifier) {
+ case 'cd music':
+ result.durationRule = '3_days_1_renew';
+ break;
+ case 'circ':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'circ short':
+ result.durationRule = '3_days_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'crc media':
+ result.durationRule = '7_days_3_renew';
+ break;
+ case 'crc spec':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'crc text':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'dnon':
+ // use defaults
+ break;
+ case 'doc':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'dvd video':
+ result.durationRule = '3_days_1_renew';
+ break;
+
+ /* settings for law item types are those applicable to LAW FACLTY
+ and will need to be changed as soon as a conifer Law Faculty patron
+ group can be created */
+
+ case 'law mono':
+ result.durationRule = '28_days_5_renew';
+ result.recurringFinesRule = 'free';
+ result.maxFine = 0;
+ break;
+ case 'law nocirc':
+ result.durationRule = '14_days_5_renew';
+ result.recurringFinesRule = 'free';
+ result.maxFine = 0;
+ break;
+ case 'law res1d':
+ result.durationRule = '2_days_20_renew';
+ result.recurringFinesRule = 'free';
+ result.maxFine = 0;
+ break;
+ case 'law res3d':
+ result.durationRule = '3_days_20_renew';
+ result.recurringFinesRule = 'free';
+ result.maxFine = 0;
+ break;
+ case 'law res3h':
+ result.durationRule = '2_days_20_renew';
+ result.recurringFinesRule = 'free';
+ result.maxFine = 0;
+ break;
+ case 'law res5h':
+ result.durationRule = '2_days_20_renew';
+ result.recurringFinesRule = 'free';
+ result.maxFine = 0;
+ break;
+ case 'law serial':
+ result.durationRule = '14_days_5_renew';
+ result.recurringFinesRule = 'free';
+ result.maxFine = 0;
+ break;
+ case 'map':
+ // use defaults
+ break;
+ case 'map (circulating)':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'map (reference)':
+ // use defaults
+ break;
+ case 'media':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'mform':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'mform ref':
+ // use defaults
+ break;
+ case 'mform ser':
+ // use defaults
+ break;
+ case 'ref':
+ result.durationRule = '7_days_3_renew';
+ break;
+ case 'rsv1':
+ result.durationRule = '1_day_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'rsv2':
+ result.durationRule = '120_minutes_0_renew';
+ result.recurringFinesRule = '5_cents_per_minute';
+ result.maxFine = '50_dollars';
+ break;
+ case 'rsv3':
+ result.durationRule = '3_days_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'rsv7':
+ result.durationRule = '7_days_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'ser':
+ result.durationRule = '1_day_1_renew';
+ result.recurringFinesRule = '2_dollars_per_day';
+ break;
+ case 'thesis':
+ result.durationRule = '28_days_3_renew';
+ break;
+ }
+ break;
+
+ case 'Graduate':
+ switch(copy.circ_modifier) {
+ case 'cd music':
+ // use defaults
+ break;
+ case 'circ':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'circ short':
+ result.durationRule = '3_days_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'crc media':
+ result.durationRule = '7_days_3_renew';
+ break;
+ case 'crc spec':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'crc text':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'dnon':
+ // use defaults
+ break;
+ case 'doc':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'dvd video':
+ result.durationRule = '3_days_1_renew';
+ break;
+ case 'law mono':
+ result.durationRule = '28_days_5_renew';
+ result.recurringFinesRule = '50_cent_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law nocirc':
+ // use defaults
+ break;
+ case 'law res1d':
+ result.durationRule = '16_hours_20_renew';
+ result.recurringFinesRule = '60_cents_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law res3d':
+ result.durationRule = '2_days_20_renew';
+ result.recurringFinesRule = '60_cents_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law res3h':
+ result.durationRule = '3_hours_20_renew';
+ result.recurringFinesRule = '60_cents_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law res5h':
+ result.durationRule = '5_hours_20_renew';
+ result.recurringFinesRule = '60_cents_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law serial':
+ // use defaults
+ break;
+ case 'map':
+ // use defaults
+ break;
+ case 'map (circulating)':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'map (reference)':
+ // use defaults
+ break;
+ case 'media':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'mform':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'mform ref':
+ // use defaults
+ break;
+ case 'mform ser':
+ // use defaults
+ break;
+ case 'ref':
+ result.durationRule = '7_days_3_renew';
+ break;
+ case 'rsv1':
+ result.durationRule = '1_day_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'rsv2':
+ result.durationRule = '120_minutes_0_renew';
+ result.recurringFinesRule = '5_cents_per_minute';
+ result.maxFine = '50_dollars';
+ break;
+ case 'rsv3':
+ result.durationRule = '3_days_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'rsv7':
+ result.durationRule = '7_days_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'ser':
+ result.durationRule = '1_day_1_renew';
+ result.recurringFinesRule = '2_dollars_per_day';
+ break;
+ case 'thesis':
+ result.durationRule = '28_days_3_renew';
+ break;
+ }
+ break;
+
+ case 'Readers':
+
+ /* currently STAFF, LAW1, LAW2, and LAW3. applying STAFF rules to Leddy items
+ and LAWx rules to Law items - fix as soon as Windsor groups exists! */
+
+ switch(copy.circ_modifier) {
+ case 'cd music':
+ result.durationRule = '3_days_1_renew';
+ break;
+ case 'circ':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'circ short':
+ result.durationRule = '1_days_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'crc media':
+ result.durationRule = '7_days_3_renew';
+ break;
+ case 'crc spec':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'crc text':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'dnon':
+ // use defaults
+ break;
+ case 'doc':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'dvd video':
+ result.durationRule = '3_days_1_renew';
+ break;
+ case 'law mono':
+ result.durationRule = '28_days_5_renew';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law nocirc':
+ // use defaults
+ break;
+ case 'law res1d':
+ result.durationRule = '16_hours_20_renew';
+ result.recurringFinesRule = '60_cents_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law res3d':
+ result.durationRule = '2_days_20_renew';
+ result.recurringFinesRule = '60_cents_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law res3h':
+ result.durationRule = '3_hours_20_renew';
+ result.recurringFinesRule = '60_cents_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law res5h':
+ result.durationRule = '5_hours_20_renew';
+ result.recurringFinesRule = '60_cents_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law serial':
+ // use defaults
+ break;
+ case 'map':
+ // use defaults
+ break;
+ case 'map (circulating)':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'map (reference)':
+ // use defaults
+ break;
+ case 'media':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'mform':
+ result.durationRule = '28_days_3_renew';
+ break;
+ case 'mform ref':
+ // use defaults
+ break;
+ case 'mform ser':
+ // use defaults
+ break;
+ case 'ref':
+ result.durationRule = '7_days_3_renew';
+ break;
+ case 'rsv1':
+ result.durationRule = '1_day_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'rsv2':
+ result.durationRule = '120_minutes_0_renew';
+ result.recurringFinesRule = '5_cents_per_minute';
+ result.maxFine = '50_dollars';
+ break;
+ case 'rsv3':
+ result.durationRule = '3_days_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'rsv7':
+ result.durationRule = '7_days_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'ser':
+ result.durationRule = '1_day_1_renew';
+ result.recurringFinesRule = '2_dollars_per_day';
+ break;
+ case 'thesis':
+ result.durationRule = '28_days_3_renew';
+ break;
+ }
+ break;
+
+ case 'Undergraduate':
+ switch(copy.circ_modifier) {
+ case 'cd music':
+ // use defaults
+ break;
+ case 'circ':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'circ short':
+ result.durationRule = '3_days_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'crc media':
+ result.durationRule = '7_days_3_renew';
+ break;
+ case 'crc spec':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'crc text':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'dnon':
+ // use defaults
+ break;
+ case 'doc':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'dvd video':
+ result.durationRule = '3_days_1_renew';
+ break;
+ case 'law mono':
+ result.durationRule = '28_days_5_renew';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law nocirc':
+ // use defaults
+ break;
+ case 'law res1d':
+ result.durationRule = '16_hours_20_renew';
+ result.recurringFinesRule = '60_cents_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law res3d':
+ result.durationRule = '2_days_20_renew';
+ result.recurringFinesRule = '60_cents_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law res3h':
+ result.durationRule = '3_hours_20_renew';
+ result.recurringFinesRule = '60_cents_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law res5h':
+ result.durationRule = '5_hours_20_renew';
+ result.recurringFinesRule = '60_cents_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'law serial':
+ // use defaults
+ break;
+ case 'map':
+ // use defaults
+ break;
+ case 'map (circulating)':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'map (reference)':
+ // use defaults
+ break;
+ case 'media':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'mform':
+ result.durationRule = '14_days_3_renew';
+ break;
+ case 'mform ref':
+ // use defaults
+ break;
+ case 'mform ser':
+ // use defaults
+ break;
+ case 'ref':
+ result.durationRule = '7_days_3_renew';
+ break;
+ case 'rsv1':
+ result.durationRule = '1_day_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'rsv2':
+ result.durationRule = '120_minutes_0_renew';
+ result.recurringFinesRule = '5_cents_per_minute';
+ result.maxFine = '50_dollars';
+ break;
+ case 'rsv3':
+ result.durationRule = '3_days_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'rsv7':
+ result.durationRule = '7_days_1_renew';
+ result.recurringFinesRule = '10_dollars_per_day';
+ result.maxFine = '50_dollars';
+ break;
+ case 'ser':
+ // use defaults
+ break;
+ case 'thesis':
+ result.durationRule = '14_days_3_renew';
+ break;
+ }
+ break;
+
+}
+
+/* set variable to tell circ_duration.js that an institution specific script has executed */
+circ_institution_override = true;
--- /dev/null
+INSERT INTO config.rule_circ_duration (name, extended, normal, shrt, max_renewals) VALUES
+ ('120_days_2_renew', '120 days', '120 days', '120 days', 2), -- OSUL rules
+ ('3_weeks_2_renew', '3 weeks', '3 weeks', '3 weeks', 2),
+ ('14_days_3_renew', '14 days', '14 days', '14 days', 3), -- OWA rules
+ ('28_days_3_renew', '28 days', '28 days', '28 days', 3),
+ ('7_days_1_renew', '7 days', '7 days', '7 days', 1),
+ ('7_days_3_renew', '7 days', '7 days', '7 days', 3),
+ ('120_minutes_0_renew', '120 minutes', '120 minutes', '120 minutes', 0),
+
+ ('28_days_5_renew', '28 days', '28 days', '28 days', 5), -- OWAL rules
+ ('14_days_5_renew', '14 days', '14 days', '14 days', 5),
+ ('2_days_20_renew', '2 days', '2 days', '2 days', 20),
+ ('3_days_20_renew', '3 days', '3 days', '3 days', 20),
+ ('1_day_1_renew', '1 day', '1 day', '1 day', 1),
+ ('16_hours_20_renew', '16 hours', '16 hours', '16 hours', 20),
+ ('3_hours_20_renew', '3 hours', '3 hours', '3 hours', 20),
+ ('5_hours_20_renew', '5 hours', '5 hours', '5 hours', 20),
+ ('non_circ', '0 days', '0 days', '0 days', 0); -- obviously a sign that permit_patron or permit_copy should be invoked instead, but oh well for now
+
+INSERT INTO config.rule_max_fine (name, amount) VALUES
+ ('10_dollars', 10.00),
+ ('50_dollars', 50.00);
+
+INSERT INTO config.rule_recuring_fine (name, high, normal, low, recurance_interval) VALUES
+ ('free', 0.00, 0.00, 0.00, '1 day'),
+ ('5_cents_per_minute', 00.05, 00.05, 00.05, '1 minute'),
+ ('60_cents_per_day', 00.60, 00.60, 00.60, '1 day'),
+ ('2_dollars_per_day', 2.00, 2.00, 2.00, '1 day'),
+ ('10_dollars_per_day', 10.00, 10.00, 10.00, '1 day');