--- /dev/null
+[%
+
+ rule = "2wk_default";
+ loan_duration = copy.loan_duration;
+
+
+
+
+
+ # ------------------------------------------------------------------
+ # Default policy
+ # ------------------------------------------------------------------
+ ret(rule, loan_duration);
+
+%]
--- /dev/null
+[%
+
+# ------------------------------------------------------------------
+# Default policy
+# ------------------------------------------------------------------
+ret('books', NORMAL);
+
+
+%]
--- /dev/null
+[%
+
+# ------------------------------------------------------------------
+# Default policy
+# ------------------------------------------------------------------
+ret('books', NORMAL);
+
+
+
+%]
# Macros for simpler syntax
# ------------------------------------------------------------------
MACRO jump(n) PROCESS "$n";
- MACRO policy(p) PROCESS policy_block val=p;
- BLOCK policy_block; val; STOP; END;
+# MACRO policy(p) PROCESS policy_block val=p;
+# BLOCK policy_block; val; STOP; END;
MACRO ret(status,text) PROCESS ret_block s=status t=text;
END;
-
# ------------------------------------------------------------------
# These are passed in to every script
# ------------------------------------------------------------------
# ------------------------------------------------------------------
# Constants
# ------------------------------------------------------------------
- OK = 0;
- COPY_ISREF = 2;
- COPY_NOCIRC = 3;
- COPY_UNAVAIL = 4;
- COPY_LOCATION = 5;
+ OK = 0;
+ COPY_ISREF = 2;
+ COPY_NOCIRC = 3;
+ COPY_UNAVAIL = 4;
+ COPY_LOCATION = 5;
+
+ PATRON_STANDING = 10;
+ PATRON_FINE = 11;
+ PATRON_CHECKOUT_COUNT = 12;
- PATRON_STANDING = 10;
- PATRON_FINE = 11;
- PATRON_CHARGE_COUNT = 12;
+ LOW = 1;
+ NORMAL = 2;
+ HIGH = 3;
+
+ SHORT = 1;
+ NORMAL = 2;
+ EXTENDED = 3;
circlib = circ_objects.copy.circlib()
title = circ_objects.title
standings = circ_objects.standings;
-
+ patron_copies = circ_objects.patron_copies;
+ patron_fines = circ_objects.patron_fines;
%]
# ------------------------------------------------------------------
+
# ------------------------------------------------------------------
# Patron checks
# ------------------------------------------------------------------
IF patron.standing != "Good";
ret(PATRON_STANDING, "Patron not in good standing: ${patron.standing}"); END;
+IF patron.profile == "STAFF" && patron_copies > 50;
+ ret(PATRON_CHECKOUT_COUNT, "Patron checkout count exceeds limit"); END;
+
+IF patron.profile == "ADULT" && patron_copies > 10;
+ ret(PATRON_CHECKOUT_COUNT, "Patron checkout count exceeds limit"); END;
+
+IF patron.profile == "JUVENILE" && patron_copies > 5;
+ ret(PATRON_CHECKOUT_COUNT, "Patron checkout count exceeds limit"); END;
+
# ------------------------------------------------------------------
# Copy checks
-
-
ret(OK,"Allowed");
%]