From 7b76313fbd6cc4d9a1414f40cb5e409e8fd0a0a5 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Wed, 9 Nov 2022 12:47:34 +0000 Subject: [PATCH] Bug 32028: (follow-up) Improve smart rules formatting I correct the indenting here, so remember to diff ignoring whitespace ;) I remove some of the page-section divs introduced by the previous patch and instead replace the 'container' classes with the new 'page-section class on existing divs. This brings the page-sections more in line with elsewhere in the codebase. I also update the 'h3' headings to 'h2' as we were somehow skipping that heading level page wide and update the final 'h4' heading to 'h2' to match the other section headings appropriately. Finally, I break up the top section more, using bg-info for the top block of instructions. Signed-off-by: Katrin Fischer --- .../prog/en/modules/admin/smart-rules.tt | 2517 ++++++++--------- 1 file changed, 1255 insertions(+), 1262 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt index 272d1d4c24..593b9dab8e 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/smart-rules.tt @@ -55,1342 +55,1335 @@
+

+ [% IF humanbranch %] + Defining circulation and fine rules for "[% Branches.GetName( humanbranch ) | html %]" + [% ELSE %] + Defining circulation and fine rules for all libraries + [% END %] +

-

- [% IF humanbranch %] - Defining circulation and fine rules for "[% Branches.GetName( humanbranch ) | html %]" - [% ELSE %] - Defining circulation and fine rules for all libraries - [% END %] -

-
-
-

The rules are applied from most specific to less specific, using the first found in this order:

-
    -
  • same library, same patron category, same item type
  • -
  • same library, same patron category, all item types
  • -
  • same library, all patron categories, same item type
  • -
  • same library, all patron categories, all item types
  • -
  • default (all libraries), same patron category, same item type
  • -
  • default (all libraries), same patron category, all item types
  • -
  • default (all libraries), all patron categories, same item type
  • -
  • default (all libraries), all patron categories, all item types
  • -
+
+

The rules are applied from most specific to less specific, using the first found in this order:

+
    +
  • same library, same patron category, same item type
  • +
  • same library, same patron category, all item types
  • +
  • same library, all patron categories, same item type
  • +
  • same library, all patron categories, all item types
  • +
  • default (all libraries), same patron category, same item type
  • +
  • default (all libraries), same patron category, all item types
  • +
  • default (all libraries), all patron categories, same item type
  • +
  • default (all libraries), all patron categories, all item types
  • +
-

Where an itemtype has a parent, the rule will display as "Parent->Child" and the number of - current checkouts allowed will be limited to either the maximum for the parent (counting sibling types) - or the specific rule's type, whichever is less.

-

To modify a rule, create a new one with the same patron category and item type.

-
-
- [% UNLESS restricted_to_own_library %] -
- Select a library : - -
- [% IF ( definedbranch ) %] -
- - - - -
- [% END %] - [% END %] +

Where an itemtype has a parent, the rule will display as "Parent->Child" and the number of + current checkouts allowed will be limited to either the maximum for the parent (counting sibling types) + or the specific rule's type, whichever is less.

+

To modify a rule, create a new one with the same patron category and item type.

+
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - [% IF Koha.Preference('UnseenRenewals') %] - - [% END %] - - - - - - - - - - - [% IF Koha.Preference('ArticleRequests') %] - - [% END %] - - [% IF Koha.Preference('UseRecalls') %] - - - - - - +
+ [% UNLESS restricted_to_own_library %] + + Select a library : + + + [% IF ( definedbranch ) %] +
+ + + + + + [% END %] [% END %] -
- - - - [% SET row_count = 0 %] - [% FOREACH c IN categorycodes %] - [% SET c = '' UNLESS c.defined %] - [% FOREACH i IN itemtypes %] - [% SET i = '' UNLESS i.defined %] - [% SET note = all_rules.$c.$i.note %] - [% SET maxissueqty = all_rules.$c.$i.maxissueqty %] - [% SET maxonsiteissueqty = all_rules.$c.$i.maxonsiteissueqty %] - [% SET issuelength = all_rules.$c.$i.issuelength %] - [% SET daysmode = all_rules.$c.$i.daysmode %] - [% SET lengthunit = all_rules.$c.$i.lengthunit %] - [% SET hardduedate = all_rules.$c.$i.hardduedate %] - [% SET hardduedatecompare = all_rules.$c.$i.hardduedatecompare %] - [% SET fine = all_rules.$c.$i.fine %] - [% SET chargeperiod = all_rules.$c.$i.chargeperiod %] - [% SET chargeperiod_charge_at = all_rules.$c.$i.chargeperiod_charge_at %] - [% SET firstremind = all_rules.$c.$i.firstremind %] - [% SET overduefinescap = all_rules.$c.$i.overduefinescap %] - [% SET cap_fine_to_replacement_price = all_rules.$c.$i.cap_fine_to_replacement_price %] - [% SET finedays = all_rules.$c.$i.finedays %] - [% SET maxsuspensiondays = all_rules.$c.$i.maxsuspensiondays %] - [% SET suspension_chargeperiod = all_rules.$c.$i.suspension_chargeperiod %] - [% SET renewalsallowed = all_rules.$c.$i.renewalsallowed %] - [% SET unseenrenewalsallowed = all_rules.$c.$i.unseen_renewals_allowed %] - [% SET renewalperiod = all_rules.$c.$i.renewalperiod %] - [% SET norenewalbefore = all_rules.$c.$i.norenewalbefore %] - [% SET auto_renew = all_rules.$c.$i.auto_renew %] - [% SET no_auto_renewal_after = all_rules.$c.$i.no_auto_renewal_after %] - [% SET no_auto_renewal_after_hard_limit = all_rules.$c.$i.no_auto_renewal_after_hard_limit %] - [% SET reservesallowed = all_rules.$c.$i.reservesallowed %] - [% SET holds_per_day = all_rules.$c.$i.holds_per_day %] - [% SET holds_per_record = all_rules.$c.$i.holds_per_record %] - [% SET onshelfholds = all_rules.$c.$i.onshelfholds %] - [% SET opacitemholds = all_rules.$c.$i.opacitemholds %] - [% SET article_requests = all_rules.$c.$i.article_requests %] - [% SET rentaldiscount = all_rules.$c.$i.rentaldiscount %] - [% SET decreaseloanholds = all_rules.$c.$i.decreaseloanholds %] - [% SET recalls_allowed = all_rules.$c.$i.recalls_allowed %] - [% SET recalls_per_record = all_rules.$c.$i.recalls_per_record %] - [% SET on_shelf_recalls = all_rules.$c.$i.on_shelf_recalls %] - [% SET recall_due_date_interval = all_rules.$c.$i.recall_due_date_interval %] - [% SET recall_overdue_fine = all_rules.$c.$i.recall_overdue_fine %] - [% SET recall_shelf_time = all_rules.$c.$i.recall_shelf_time %] + - [% SET show_rule = note || maxissueqty || maxonsiteissueqty || issuelength || daysmode || lengthunit || hardduedate || hardduedatecompare || fine || chargeperiod || chargeperiod_charge_at || firstremind || overduefinescap || cap_fine_to_replacement_price || finedays || maxsuspensiondays || suspension_chargeperiod || renewalsallowed || unseenrenewalsallowed || renewalperiod || norenewalbefore || auto_renew || no_auto_renewal_after || no_auto_renewal_after_hard_limit || reservesallowed || holds_per_day || holds_per_record || onshelfholds || opacitemholds || article_requests || rentaldiscount || decreaseloanholds || recalls_allowed || recalls_per_record || on_shelf_recalls || recall_due_date_interval || recall_overdue_fine || recall_shelf_time %] - [% IF show_rule %] - [% SET row_count = row_count + 1 %] - - - - - - - - - - - - - - - - - - - - - - - - - [% IF Koha.Preference('UnseenRenewals') %] - - [% END %] - - - - - - - - - - - [% IF Koha.Preference('ArticleRequests') %] - - [% END %] - - [% IF Koha.Preference('UseRecalls') %] - - - - - - - [% END %] - - +
+
+ + +
 Patron category Item typeActionsNoteCurrent checkouts allowedCurrent on-site checkouts allowedLoan periodDays modeUnitHard due dateDecreased loan period for high holds (day)Fine amountFine charging intervalWhen to chargeFine grace periodOverdue fines cap (amount)Cap fine at replacement priceSuspension in days (day)Max. suspension duration (day)Suspension charging intervalRenewals allowed (count)Unseen renewals allowed (count)Renewal periodNo renewal beforeAutomatic renewalNo automatic renewal afterNo automatic renewal after (hard limit)Holds allowed (total)Holds allowed (daily)Holds per record (count)On shelf holds allowedOPAC item level holdsArticle requestsRental discount (%)Recalls allowed (total)Recalls per record (count)On shelf recalls allowedRecall due date interval (day)Recall overdue fine amountRecall pickup period (day)Actions
[% IF ( c == undef ) %] - 1 - [% ELSE %] - 0 - [% END %] - [% IF c == undef %] - All - [% ELSE %] - [% Categories.GetName(c) | html %] - [% END %] - [% IF ( i == undef ) %] - 1 - [% ELSE %] - 0 - [% END %] - [% IF i == undef %] - All - [% ELSE %] - [% ItemTypes.GetDescription(i,1) | html %] - [% END %] - - Edit - Delete - - [% IF note.defined && note != '' %] - View note - [% ELSE %] [% END %] - - [% IF maxissueqty.defined && maxissueqty != '' %] - [% maxissueqty | html %] - [% ELSE %] - Unlimited - [% END %] - - [% IF maxonsiteissueqty.defined && maxonsiteissueqty != '' %] - [% maxonsiteissueqty | html %] - [% ELSE %] - Unlimited - [% END %] - [% issuelength | html %] - [% SWITCH daysmode %] - [% CASE 'Calendar' %]Skip closed days - [% CASE 'Datedue' %]Next open day - [% CASE 'Days' %]Ignore the calendar - [% CASE 'Dayweek' %]Same week day - [% CASE %]Default - [% END %] - - [% IF ( lengthunit == 'days' ) %] - Days - [% ELSIF ( lengthunit == 'hours') %] - Hours - [% ELSE %] - Undefined - [% END %] - - [% IF ( hardduedate ) %] - [% IF ( hardduedatecompare == '-1' ) %] - before [% hardduedate | $KohaDates %] - - [% ELSIF ( hardduedatecompare == '0' ) %] - on [% hardduedate | $KohaDates %] - - [% ELSIF ( hardduedatecompare == '1' ) %] - after [% hardduedate | $KohaDates %] - - [% END %] - [% ELSE %] - None defined - [% END %] - [% decreaseloanholds | html %][% fine | html %][% chargeperiod | html %][% IF chargeperiod_charge_at %]Start of interval[% ELSE %]End of interval[% END %][% firstremind | html %][% overduefinescap | $Price %] - [% IF cap_fine_to_replacement_price %] - - [% ELSE %] - - [% END %] - [% finedays | html %][% maxsuspensiondays | html %][% suspension_chargeperiod | html %][% renewalsallowed | html %] - [% IF unseenrenewalsallowed.defined && unseenrenewalsallowed != '' %] - [% unseenrenewalsallowed | html %] - [% ELSE %] - Unlimited - [% END %] - [% renewalperiod | html %][% norenewalbefore | html %] - [% IF auto_renew %] - Yes - [% ELSE %] - No - [% END %] - [% no_auto_renewal_after | html %][% no_auto_renewal_after_hard_limit | $KohaDates %] - [% IF reservesallowed.defined && reservesallowed != '' %] - [% reservesallowed | html %] - [% ELSE %] - Unlimited - [% END %] - - [% IF holds_per_day.defined && holds_per_day != '' %] - [% holds_per_day | html %] - [% ELSE %] - Unlimited - [% END %] - - [% IF holds_per_record.defined && holds_per_record != '' %] - [% holds_per_record | html %] - [% ELSE %] - Unlimited - [% END %] - - [% IF onshelfholds == 1 %] - Yes - [% ELSIF onshelfholds == 2 %] - If all unavailable - [% ELSE %] - If any unavailable - [% END %] - - [% IF opacitemholds == 'F'%] - Force - [% ELSIF opacitemholds == 'Y'%] - Allow - [% ELSE %] - Don't allow - [% END %] - - [% IF article_requests == 'no' %] - No - [% ELSIF article_requests == 'yes' %] - Yes - [% ELSIF article_requests == 'bib_only' %] - Record only - [% ELSIF article_requests == 'item_only' %] - Item only - [% END %] - [% rentaldiscount | html %][% recalls_allowed | html %][% recalls_per_record | html %] - [% IF on_shelf_recalls == 'all' %] - If all unavailable - [% ELSE %] - If any unavailable - [% END %] - [% recall_due_date_interval | html %][% recall_overdue_fine | $Price %][% recall_shelf_time | html %] - Edit - Delete -
+ + + + + + + + + + + + + + + + + + + + + + + + + + [% IF Koha.Preference('UnseenRenewals') %] + [% END %] - [% END %] - [% END %] - - - + + + + + + + + + + [% IF Koha.Preference('ArticleRequests') %] + [% END %] - - - - + [% IF Koha.Preference('UseRecalls') %] + + + + + + + [% END %] + + + + + [% SET row_count = 0 %] + [% FOREACH c IN categorycodes %] + [% SET c = '' UNLESS c.defined %] + [% FOREACH i IN itemtypes %] + [% SET i = '' UNLESS i.defined %] + [% SET note = all_rules.$c.$i.note %] + [% SET maxissueqty = all_rules.$c.$i.maxissueqty %] + [% SET maxonsiteissueqty = all_rules.$c.$i.maxonsiteissueqty %] + [% SET issuelength = all_rules.$c.$i.issuelength %] + [% SET daysmode = all_rules.$c.$i.daysmode %] + [% SET lengthunit = all_rules.$c.$i.lengthunit %] + [% SET hardduedate = all_rules.$c.$i.hardduedate %] + [% SET hardduedatecompare = all_rules.$c.$i.hardduedatecompare %] + [% SET fine = all_rules.$c.$i.fine %] + [% SET chargeperiod = all_rules.$c.$i.chargeperiod %] + [% SET chargeperiod_charge_at = all_rules.$c.$i.chargeperiod_charge_at %] + [% SET firstremind = all_rules.$c.$i.firstremind %] + [% SET overduefinescap = all_rules.$c.$i.overduefinescap %] + [% SET cap_fine_to_replacement_price = all_rules.$c.$i.cap_fine_to_replacement_price %] + [% SET finedays = all_rules.$c.$i.finedays %] + [% SET maxsuspensiondays = all_rules.$c.$i.maxsuspensiondays %] + [% SET suspension_chargeperiod = all_rules.$c.$i.suspension_chargeperiod %] + [% SET renewalsallowed = all_rules.$c.$i.renewalsallowed %] + [% SET unseenrenewalsallowed = all_rules.$c.$i.unseen_renewals_allowed %] + [% SET renewalperiod = all_rules.$c.$i.renewalperiod %] + [% SET norenewalbefore = all_rules.$c.$i.norenewalbefore %] + [% SET auto_renew = all_rules.$c.$i.auto_renew %] + [% SET no_auto_renewal_after = all_rules.$c.$i.no_auto_renewal_after %] + [% SET no_auto_renewal_after_hard_limit = all_rules.$c.$i.no_auto_renewal_after_hard_limit %] + [% SET reservesallowed = all_rules.$c.$i.reservesallowed %] + [% SET holds_per_day = all_rules.$c.$i.holds_per_day %] + [% SET holds_per_record = all_rules.$c.$i.holds_per_record %] + [% SET onshelfholds = all_rules.$c.$i.onshelfholds %] + [% SET opacitemholds = all_rules.$c.$i.opacitemholds %] + [% SET article_requests = all_rules.$c.$i.article_requests %] + [% SET rentaldiscount = all_rules.$c.$i.rentaldiscount %] + [% SET decreaseloanholds = all_rules.$c.$i.decreaseloanholds %] + [% SET recalls_allowed = all_rules.$c.$i.recalls_allowed %] + [% SET recalls_per_record = all_rules.$c.$i.recalls_per_record %] + [% SET on_shelf_recalls = all_rules.$c.$i.on_shelf_recalls %] + [% SET recall_due_date_interval = all_rules.$c.$i.recall_due_date_interval %] + [% SET recall_overdue_fine = all_rules.$c.$i.recall_overdue_fine %] + [% SET recall_shelf_time = all_rules.$c.$i.recall_shelf_time %] + + [% SET show_rule = note || maxissueqty || maxonsiteissueqty || issuelength || daysmode || lengthunit || hardduedate || hardduedatecompare || fine || chargeperiod || chargeperiod_charge_at || firstremind || overduefinescap || cap_fine_to_replacement_price || finedays || maxsuspensiondays || suspension_chargeperiod || renewalsallowed || unseenrenewalsallowed || renewalperiod || norenewalbefore || auto_renew || no_auto_renewal_after || no_auto_renewal_after_hard_limit || reservesallowed || holds_per_day || holds_per_record || onshelfholds || opacitemholds || article_requests || rentaldiscount || decreaseloanholds || recalls_allowed || recalls_per_record || on_shelf_recalls || recall_due_date_interval || recall_overdue_fine || recall_shelf_time %] + [% IF show_rule %] + [% SET row_count = row_count + 1 %] + + + + + + + + + + + + + + + + + + + + + + + + + [% IF Koha.Preference('UnseenRenewals') %] + + [% END %] + + + + + + + + + + + [% IF Koha.Preference('ArticleRequests') %] + + [% END %] + + [% IF Koha.Preference('UseRecalls') %] + + + + + + + [% END %] + + [% END %] [% END %] - - - - - - - - - - - - - - - - - - - - - - [% IF Koha.Preference('UnseenRenewals') %] - - [% END %] - - - - - - - - - - - [% IF Koha.Preference('ArticleRequests') %] - - [% END %] - - [% IF Koha.Preference('UseRecalls') %] - - - - - - - [% END %] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [% IF Koha.Preference('UnseenRenewals') %] - - [% END %] - - - - - - - - - - - [% IF Koha.Preference('ArticleRequests') %] - - [% END %] - - [% IF Koha.Preference('UseRecalls') %] - - - - - - - [% END %] - - - -
 Patron category Item typeActionsNoteCurrent checkouts allowedCurrent on-site checkouts allowedLoan periodDays modeUnitHard due dateDecreased loan period for high holds (day)Fine amountFine charging intervalWhen to chargeFine grace periodOverdue fines cap (amount)Cap fine at replacement priceSuspension in days (day)Max. suspension duration (day)Suspension charging intervalRenewals allowed (count)Unseen renewals allowed (count)
2 - Renewal periodNo renewal beforeAutomatic renewalNo automatic renewal afterNo automatic renewal after (hard limit)Holds allowed (total)Holds allowed (daily)Holds per record (count)On shelf holds allowedOPAC item level holdsArticle requests0 - Rental discount (%)Recalls allowed (total)Recalls per record (count)On shelf recalls allowedRecall due date interval (day)Recall overdue fine amountRecall pickup period (day)Actions
[% IF ( c == undef ) %] + 1 + [% ELSE %] + 0 + [% END %] + [% IF c == undef %] + All + [% ELSE %] + [% Categories.GetName(c) | html %] + [% END %] + [% IF ( i == undef ) %] + 1 + [% ELSE %] + 0 + [% END %] + [% IF i == undef %] + All + [% ELSE %] + [% ItemTypes.GetDescription(i,1) | html %] + [% END %] + + Edit + Delete + + [% IF note.defined && note != '' %] + View note + [% ELSE %] [% END %] + + [% IF maxissueqty.defined && maxissueqty != '' %] + [% maxissueqty | html %] + [% ELSE %] + Unlimited + [% END %] + + [% IF maxonsiteissueqty.defined && maxonsiteissueqty != '' %] + [% maxonsiteissueqty | html %] + [% ELSE %] + Unlimited + [% END %] + [% issuelength | html %] + [% SWITCH daysmode %] + [% CASE 'Calendar' %]Skip closed days + [% CASE 'Datedue' %]Next open day + [% CASE 'Days' %]Ignore the calendar + [% CASE 'Dayweek' %]Same week day + [% CASE %]Default + [% END %] + + [% IF ( lengthunit == 'days' ) %] + Days + [% ELSIF ( lengthunit == 'hours') %] + Hours + [% ELSE %] + Undefined + [% END %] + + [% IF ( hardduedate ) %] + [% IF ( hardduedatecompare == '-1' ) %] + before [% hardduedate | $KohaDates %] + + [% ELSIF ( hardduedatecompare == '0' ) %] + on [% hardduedate | $KohaDates %] + + [% ELSIF ( hardduedatecompare == '1' ) %] + after [% hardduedate | $KohaDates %] + + [% END %] + [% ELSE %] + None defined + [% END %] + [% decreaseloanholds | html %][% fine | html %][% chargeperiod | html %][% IF chargeperiod_charge_at %]Start of interval[% ELSE %]End of interval[% END %][% firstremind | html %][% overduefinescap | $Price %] + [% IF cap_fine_to_replacement_price %] + + [% ELSE %] + + [% END %] + [% finedays | html %][% maxsuspensiondays | html %][% suspension_chargeperiod | html %][% renewalsallowed | html %] + [% IF unseenrenewalsallowed.defined && unseenrenewalsallowed != '' %] + [% unseenrenewalsallowed | html %] + [% ELSE %] + Unlimited + [% END %] + [% renewalperiod | html %][% norenewalbefore | html %] + [% IF auto_renew %] + Yes + [% ELSE %] + No + [% END %] + [% no_auto_renewal_after | html %][% no_auto_renewal_after_hard_limit | $KohaDates %] + [% IF reservesallowed.defined && reservesallowed != '' %] + [% reservesallowed | html %] + [% ELSE %] + Unlimited + [% END %] + + [% IF holds_per_day.defined && holds_per_day != '' %] + [% holds_per_day | html %] + [% ELSE %] + Unlimited + [% END %] + + [% IF holds_per_record.defined && holds_per_record != '' %] + [% holds_per_record | html %] + [% ELSE %] + Unlimited + [% END %] + + [% IF onshelfholds == 1 %] + Yes + [% ELSIF onshelfholds == 2 %] + If all unavailable + [% ELSE %] + If any unavailable + [% END %] + + [% IF opacitemholds == 'F'%] + Force + [% ELSIF opacitemholds == 'Y'%] + Allow + [% ELSE %] + Don't allow + [% END %] + + [% IF article_requests == 'no' %] + No + [% ELSIF article_requests == 'yes' %] + Yes + [% ELSIF article_requests == 'bib_only' %] + Record only + [% ELSIF article_requests == 'item_only' %] + Item only + [% END %] + [% rentaldiscount | html %][% recalls_allowed | html %][% recalls_per_record | html %] + [% IF on_shelf_recalls == 'all' %] + If all unavailable + [% ELSE %] + If any unavailable + [% END %] + [% recall_due_date_interval | html %][% recall_overdue_fine | $Price %][% recall_shelf_time | html %] + Edit + Delete +
- - - - - - - - - - -
[% INCLUDE 'date-format.inc' %]
-
- - - - - -
[% INCLUDE 'date-format.inc' %]
-
- - - - - - - - - - - -
 Patron category Item type NoteCurrent checkouts allowedCurrent on-site checkouts allowedLoan periodDays modeUnitHard due dateDecreased loan period for high holds (day)Fine amountFine charging intervalCharge when?Fine grace periodOverdue fines cap (amount)Cap fine at replacement priceSuspension in days (day)Max. suspension duration (day)Suspension charging intervalRenewals allowed (count)Unseen renewals allowed (count)Renewal periodNo renewal beforeAutomatic renewalNo automatic renewal afterNo automatic renewal after (hard limit)Holds allowed (total)Holds allowed (daily)Holds per record (count)On shelf holds allowedOPAC item level holdsArticle requestsRental discount (%)Recalls allowed (total)Recalls per record (count)On shelf recalls allowedRecall due date interval (day)Recall overdue fine amountRecall pickup period (day) 
- -
-
-
-

Default checkout, hold and return policy[% IF humanbranch %] for [% Branches.GetName( humanbranch ) | html %][% END %]

-
-

You can set a default maximum number of checkouts, hold policy and return policy that will be used if none is defined below for a particular item type or category.

-
- - - - - - - - - - - - - - [% SET patron_maxissueqty = CirculationRules.Search( current_branch, undef, undef, 'patron_maxissueqty', { want_rule => 1 } ) %] - [% SET patron_maxonsiteissueqty = CirculationRules.Search( current_branch, undef, undef, 'patron_maxonsiteissueqty', { want_rule => 1 } ) %] - [% SET rule_value = CirculationRules.Search( current_branch, undef , undef, 'max_holds', { want_rule => 1 } ) %] - [% SET holdallowed = CirculationRules.Search( current_branch, undef, undef, 'holdallowed', { want_rule => 1 } ) %] - [% SET hold_fulfillment_policy = CirculationRules.Search( current_branch, undef, undef, 'hold_fulfillment_policy', { want_rule => 1 }) %] - [% SET returnbranch = CirculationRules.Search( current_branch, undef, undef, 'returnbranch', { want_rule => 1 }) %] - [% SET default_checkout_hold_and_return_policy = ( patron_maxissueqty || patron_maxonsiteissueqty || rule_value || holdallowed || hold_fulfillment_policy || returnbranch ) %] - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + [% IF Koha.Preference('UnseenRenewals') %] + [% END %] - From any library - - - [% IF holdallowed.rule_value == 'from_local_hold_group' %] - + + + + + + + + + + [% IF Koha.Preference('ArticleRequests') %] + [% END %] - From local hold group - - - [% IF holdallowed.rule_value == 'from_home_library' %] - + [% IF Koha.Preference('UseRecalls') %] + + + + + + [% END %] - From home library - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [% IF Koha.Preference('UnseenRenewals') %] + + [% END %] + + + + + + + + + + + [% IF Koha.Preference('ArticleRequests') %] + + [% END %] + + [% IF Koha.Preference('UseRecalls') %] + + + + + + + [% END %] + + + +
 Total current checkouts allowedTotal current on-site checkouts allowedMaximum total holds allowed (count)Hold policyHold pickup library matchReturn policyActions
- [% IF ( default_checkout_hold_and_return_policy ) %] - - Defaults - - [% ELSE %] - Not set [% END %] - - - - - - - -
2 + + 0 + + + + + + + + + + + + +
[% INCLUDE 'date-format.inc' %]
+
+ + + + + +
[% INCLUDE 'date-format.inc' %]
+
+ + + + + + + + + + + +
 Patron category Item type NoteCurrent checkouts allowedCurrent on-site checkouts allowedLoan periodDays modeUnitHard due dateDecreased loan period for high holds (day)Fine amountFine charging intervalCharge when?Fine grace periodOverdue fines cap (amount)Cap fine at replacement priceSuspension in days (day)Max. suspension duration (day)Suspension charging intervalRenewals allowed (count)Unseen renewals allowed (count)Renewal periodNo renewal beforeAutomatic renewalNo automatic renewal afterNo automatic renewal after (hard limit)Holds allowed (total)Holds allowed (daily)Holds per record (count)On shelf holds allowedOPAC item level holdsArticle requestsRental discount (%)Recalls allowed (total)Recalls per record (count)On shelf recalls allowedRecall due date interval (day)Recall overdue fine amountRecall pickup period (day) 
+
+
- [% IF holdallowed.rule_value == 'not_allowed' %] - - - - - + + + + + + + + + + + + + [% SET patron_maxissueqty = CirculationRules.Search( current_branch, undef, undef, 'patron_maxissueqty', { want_rule => 1 } ) %] + [% SET patron_maxonsiteissueqty = CirculationRules.Search( current_branch, undef, undef, 'patron_maxonsiteissueqty', { want_rule => 1 } ) %] + [% SET rule_value = CirculationRules.Search( current_branch, undef , undef, 'max_holds', { want_rule => 1 } ) %] + [% SET holdallowed = CirculationRules.Search( current_branch, undef, undef, 'holdallowed', { want_rule => 1 } ) %] + [% SET hold_fulfillment_policy = CirculationRules.Search( current_branch, undef, undef, 'hold_fulfillment_policy', { want_rule => 1 }) %] + [% SET returnbranch = CirculationRules.Search( current_branch, undef, undef, 'returnbranch', { want_rule => 1 }) %] + [% SET default_checkout_hold_and_return_policy = ( patron_maxissueqty || patron_maxonsiteissueqty || rule_value || holdallowed || hold_fulfillment_policy || returnbranch ) %] + + + + + + + - - - -
 Total current checkouts allowedTotal current on-site checkouts allowedMaximum total holds allowed (count)Hold policyHold pickup library matchReturn policyActions
+ [% IF ( default_checkout_hold_and_return_policy ) %] + + Defaults + + [% ELSE %] + Not set + [% END %] + + + + + + + + + + - - - - - [% IF ( default_checkout_hold_and_return_policy ) %] - Unset - [% END %] -
- -
-
- [% IF ( show_branch_cat_rule_form ) %] -
-

[% IF humanbranch %]Checkout, hold policy by patron category for [% Branches.GetName( humanbranch ) | html %][% ELSE %]Default checkout, hold policy by patron category[% END %]

-
-

For this library, you can specify the maximum number of loans that - a patron of a given category can make, regardless of the item type. -

-

If the total amount loanable for a given patron category is left blank, - no limit applies, except possibly for a limit you define for a specific item type. -

-
- - - - - - - - - - - [% FOREACH c IN categorycodes %] - [% NEXT UNLESS c %] - [% SET patron_maxissueqty = CirculationRules.Search( branchcode, c, undef, 'patron_maxissueqty' ) %] - [% SET patron_maxonsiteissueqty = CirculationRules.Search( branchcode, c, undef, 'patron_maxonsiteissueqty' ) %] - [% SET max_holds = CirculationRules.Search( branchcode, c, undef, 'max_holds' ) %] + [% IF hold_fulfillment_policy.rule_value == 'patrongroup' %] + + [% ELSE %] + + [% END %] - [% IF ( patron_maxissueqty.defined && patron_maxissueqty != '' ) || ( patron_maxonsiteissueqty.defined && patron_maxonsiteissueqty != '' ) || ( max_holds.defined && max_holds != '' ) %] - - - - - + [% IF hold_fulfillment_policy.rule_value == 'homebranch' %] + + [% ELSE %] + + [% END %] - - - [% END %] - [% END %] - - - - - - - -
Patron categoryTotal current checkouts allowedTotal current on-site checkouts allowedTotal holds allowed 
- [% IF c == undef %] - Default - [% ELSE %] - [% Categories.GetName(c) | html %] - [% END %] - - [% IF patron_maxissueqty.defined && patron_maxissueqty != '' %] - [% patron_maxissueqty | html %] - [% ELSE %] - Unlimited - [% END %] - - [% IF patron_maxonsiteissueqty.defined && patron_maxonsiteissueqty != '' %] - [% patron_maxonsiteissueqty | html %] - [% ELSE %] - Unlimited - [% END %] - - [% IF max_holds.defined && max_holds != '' %] - [% max_holds | html %] - [% ELSE %] - Unlimited - [% END %] - - Delete -
- -
-
-
-
- [% END %] + [% IF hold_fulfillment_policy.rule_value == 'holdingbranch' %] + + [% ELSE %] + + [% END %] + + + + - - - - - - - - - [% FOREACH c IN categorycodes %] - [% SET c = '*' UNLESS c.defined AND c != '' %] - [% FOREACH i IN itemtypes %] - [% SET i = '*' UNLESS i.defined AND i != '' %] + [% IF returnbranch.rule_value == 'homebranch' %] + + [% IF returnbranch.rule_value == 'holdingbranch' %] + + [% IF returnbranch.rule_value == 'noreturn' %] + + + + + +
Patron categoryItem typeCancellation allowed 
+ + [% IF ( default_checkout_hold_and_return_policy ) %] + Unset + [% END %] +
+ +
- [% SET waiting_hold_cancellation = CirculationRules.Search( current_branch, c, i, 'waiting_hold_cancellation' ) %] + [% IF ( show_branch_cat_rule_form ) %] +
+

[% IF humanbranch %]Checkout, hold policy by patron category for [% Branches.GetName( humanbranch ) | html %][% ELSE %]Default checkout, hold policy by patron category[% END %]

+

For this library, you can specify the maximum number of loans that + a patron of a given category can make, regardless of the item type. +

+

If the total amount loanable for a given patron category is left blank, + no limit applies, except possibly for a limit you define for a specific item type. +

+
+ + + + + + + + + + + [% FOREACH c IN categorycodes %] + [% NEXT UNLESS c %] + [% SET patron_maxissueqty = CirculationRules.Search( branchcode, c, undef, 'patron_maxissueqty' ) %] + [% SET patron_maxonsiteissueqty = CirculationRules.Search( branchcode, c, undef, 'patron_maxonsiteissueqty' ) %] + [% SET max_holds = CirculationRules.Search( branchcode, c, undef, 'max_holds' ) %] - [% IF ( waiting_hold_cancellation.defined && waiting_hold_cancellation != '' ) %] + [% IF ( patron_maxissueqty.defined && patron_maxissueqty != '' ) || ( patron_maxonsiteissueqty.defined && patron_maxonsiteissueqty != '' ) || ( max_holds.defined && max_holds != '' ) %] + + + [% END %] [% END %] - [% END %] - [% END %] - - - - - - -
Patron categoryTotal current checkouts allowedTotal current on-site checkouts allowedTotal holds allowed 
- [% IF c == '*' %] - All + [% IF c == undef %] + Default [% ELSE %] [% Categories.GetName(c) | html %] [% END %] - [% IF i == '*' %] - All + [% IF patron_maxissueqty.defined && patron_maxissueqty != '' %] + [% patron_maxissueqty | html %] [% ELSE %] - [% ItemTypes.GetDescription(i,1) | html %] + Unlimited [% END %] - [% IF waiting_hold_cancellation %] - Yes + [% IF patron_maxonsiteissueqty.defined && patron_maxonsiteissueqty != '' %] + [% patron_maxonsiteissueqty | html %] [% ELSE %] - No + Unlimited [% END %] + [% IF max_holds.defined && max_holds != '' %] + [% max_holds | html %] + [% ELSE %] + Unlimited + [% END %] + - Delete + Delete
- - - - - -
-
-
- - -[% IF Koha.Preference('ArticleRequests') %] -
- [% IF humanbranch %] -

Daily open article requests limit for [% Branches.GetName( humanbranch ) | html %]

- [% ELSE %] -

Default open article requests limit

- [% END %] -

Specify the maximum number simultaneous current article requests a patron of a given category can have.

-
- - - - - - - - - [% FOREACH c IN categorycodes %] - [% NEXT UNLESS c %] - [% SET open_article_requests_limit = CirculationRules.Search( branchcode, c, undef, 'open_article_requests_limit' ) %] - - [% IF ( open_article_requests_limit.defined && open_article_requests_limit != '' ) %] - - - - - - - [% END %] + + + + + + + +
Patron categoryTotal article requests 
- [% Categories.GetName(c) | html %] - - [% IF open_article_requests_limit.defined && open_article_requests_limit != '' %] - [% open_article_requests_limit | html %] - [% ELSE %] - Unlimited - [% END %] - - Delete -
+ +
+
+
[% END %] - - - - - - - - - - -
- [% IF humanbranch %] -

Article request fees for [% Branches.GetName( humanbranch ) | html %]

- [% ELSE %] -

Default article request fees

- [% END %] -

Specify the article request fee for a given patron category.

-
- - - - - - - - - [% FOREACH c IN categorycodes %] - [% SET c = '*' UNLESS c.defined AND c != '' %] - - [% SET article_request_fee = CirculationRules.Search( current_branch, c, undef, 'article_request_fee' ) %] - [% IF ( article_request_fee.defined && article_request_fee != '' ) %] - - - - - - [% END %] +
+ [% IF humanbranch %] +

Waiting hold cancellation policy for [% Branches.GetName( humanbranch ) | html %]

+ [% ELSE %] +

Default waiting hold cancellation policy

[% END %] -
- - - - -
Patron categoryFee 
- [% IF c == '*' %] - All - [% ELSE %] - [% Categories.GetName(c) | html %] - [% END %] - - [% IF article_request_fee.defined && article_request_fee != '' %] - [% article_request_fee | html %] - [% ELSE %] - 0 - [% END %] - - Delete -
- -
-
-
+

Specify if waiting holds can be cancelled for a given patron category.

+
+ + + + + + + + + + [% FOREACH c IN categorycodes %] + [% SET c = '*' UNLESS c.defined AND c != '' %] + [% FOREACH i IN itemtypes %] + [% SET i = '*' UNLESS i.defined AND i != '' %] -[% END %] + [% SET waiting_hold_cancellation = CirculationRules.Search( current_branch, c, i, 'waiting_hold_cancellation' ) %] -
- [% IF current_branch == '*' %] -

Default lost item fee refund on return policy

- [% ELSE %] -

Lost item fee refund on return policy for [% Branches.GetName(current_branch) | html %]

- [% END %] -
-

Specify the default policy for lost item fees on return.

- - - -
Patron categoryItem typeCancellation allowed 
- - - - - - - + + + + + [% END %] [% END %] - [% END %] - - - + - - -
Refund lost item replacement feeRefund lost item processing fee 
-
+ [% IF c == '*' %] + All + [% ELSE %] + [% Categories.GetName(c) | html %] + [% END %] + + [% IF i == '*' %] + All + [% ELSE %] + [% ItemTypes.GetDescription(i,1) | html %] + [% END %] + + [% IF waiting_hold_cancellation %] + Yes + [% ELSE %] + No + [% END %] + + Delete +
-
+ - - -
-
- - - -
-

[% IF humanbranch %]Holds policy by item type for [% Branches.GetName( humanbranch ) | html %][% ELSE %]Default holds policy by item type[% END %]

-
-

- For this library, you can edit rules for given itemtypes, regardless of the patron's category. -

-

- Currently, this means hold policies. The various policies have the following effects: -

-
    -
  • From any library: Patrons from any library may put this item on hold. (default if none is defined)
  • -
  • From local hold group: Only patrons from libraries in the same item's home library hold groups may put this book on hold.
  • -
  • From home library: Only patrons from the item's home library may put this book on hold.
  • -
  • No holds allowed: No patron may put this book on hold.
  • -
- -

Note: If the system preference 'AllowHoldPolicyOverride' is enabled, these policies can be overridden by your circulation staff.

-

Important:

+ + + + + + + + + + + + +
- + [% IF Koha.Preference('ArticleRequests') %] +
+ [% IF humanbranch %] +

Daily open article requests limit for [% Branches.GetName( humanbranch ) | html %]

+ [% ELSE %] +

Default open article requests limit

+ [% END %] +

Specify the maximum number simultaneous current article requests a patron of a given category can have.

+
+ + + + + + + + + [% FOREACH c IN categorycodes %] + [% NEXT UNLESS c %] + [% SET open_article_requests_limit = CirculationRules.Search( branchcode, c, undef, 'open_article_requests_limit' ) %] - - - -
Patron categoryTotal article requests 
- - - - - - - - [% FOREACH i IN itemtypeloop %] - [% SET holdallowed = CirculationRules.Search( branchcode, undef, i.itemtype, 'holdallowed' ) %] - [% SET hold_fulfillment_policy = CirculationRules.Search( branchcode, undef, i.itemtype, 'hold_fulfillment_policy' ) %] - [% SET returnbranch = CirculationRules.Search( branchcode, undef, i.itemtype, 'returnbranch' ) %] + [% IF ( open_article_requests_limit.defined && open_article_requests_limit != '' ) %] + + + - [% IF holdallowed || hold_fulfillment_policy || returnbranch %] + + + [% END %] + [% END %] + + + +
Item typeHold policyHold pickup library matchReturn policy 
+ [% Categories.GetName(c) | html %] + + [% IF open_article_requests_limit.defined && open_article_requests_limit != '' %] + [% open_article_requests_limit | html %] + [% ELSE %] + Unlimited + [% END %] + + Delete +
- [% i.translated_description | html %] +
+
+
+ +
+ [% IF humanbranch %] +

Article request fees for [% Branches.GetName( humanbranch ) | html %]

+ [% ELSE %] +

Default article request fees

+ [% END %] +

Specify the article request fee for a given patron category.

+
+ + + + + + + + + [% FOREACH c IN categorycodes %] + [% SET c = '*' UNLESS c.defined AND c != '' %] + + [% SET article_request_fee = CirculationRules.Search( current_branch, c, undef, 'article_request_fee' ) %] + + [% IF ( article_request_fee.defined && article_request_fee != '' ) %] + + + + + + [% END %] + [% END %] + + + + +
Patron categoryFee 
+ [% IF c == '*' %] + All + [% ELSE %] + [% Categories.GetName(c) | html %] + [% END %] + + [% IF article_request_fee.defined && article_request_fee != '' %] + [% article_request_fee | html %] + [% ELSE %] + 0 + [% END %] + + Delete +
- [% IF holdallowed == 'from_any_library' %] - From any library - [% ELSIF holdallowed == 'from_local_hold_group' %] - From local hold group - [% ELSIF holdallowed == 'from_home_library' %] - From home library - [% ELSE %] - No holds allowed +
+
+
+ [% END %] + +
+ [% IF current_branch == '*' %] +

Default lost item fee refund on return policy

+ [% ELSE %] +

Lost item fee refund on return policy for [% Branches.GetName(current_branch) | html %]

+ [% END %] +

Specify the default policy for lost item fees on return.

+
+ + + + + + + + + - [% END %] - [% END %] - -
Refund lost item replacement feeRefund lost item processing fee 
- [% IF hold_fulfillment_policy == 'any' %] - any library - [% ELSIF hold_fulfillment_policy == 'homebranch' %] - item's home library - [% ELSIF hold_fulfillment_policy == 'holdgroup' %] - item's hold group - [% ELSIF hold_fulfillment_policy == 'patrongroup' %] - patron's hold group - [% ELSIF hold_fulfillment_policy == 'holdingbranch' %] - item's holding library - [% END %] + - [% IF returnbranch == 'homebranch' %] - Item returns home - [% ELSIF returnbranch == 'holdingbranch' %] - Item returns to issuing branch - [% ELSIF returnbranch == 'noreturn' %] - Item floats - [% END %] + - Delete +
-
+
+
+ +
+

[% IF humanbranch %]Holds policy by item type for [% Branches.GetName( humanbranch ) | html %][% ELSE %]Default holds policy by item type[% END %]

+

+ For this library, you can edit rules for given itemtypes, regardless of the patron's category. +

+

+ Currently, this means hold policies. The various policies have the following effects: +

+
    +
  • From any library: Patrons from any library may put this item on hold. (default if none is defined)
  • +
  • From local hold group: Only patrons from libraries in the same item's home library hold groups may put this book on hold.
  • +
  • From home library: Only patrons from the item's home library may put this book on hold.
  • +
  • No holds allowed: No patron may put this book on hold.
  • +
+ +

Note: If the system preference 'AllowHoldPolicyOverride' is enabled, these policies can be overridden by your circulation staff.

+

Important:

+ + + +
+ + + + + + + + + + + [% FOREACH i IN itemtypeloop %] + [% SET holdallowed = CirculationRules.Search( branchcode, undef, i.itemtype, 'holdallowed' ) %] + [% SET hold_fulfillment_policy = CirculationRules.Search( branchcode, undef, i.itemtype, 'hold_fulfillment_policy' ) %] + [% SET returnbranch = CirculationRules.Search( branchcode, undef, i.itemtype, 'returnbranch' ) %] + + [% IF holdallowed || hold_fulfillment_policy || returnbranch %] + + + + + + + + [% END %] [% END %] - - - - + + + - - - -
Item typeHold policyHold pickup library matchReturn policy 
+ [% i.translated_description | html %] + + [% IF holdallowed == 'from_any_library' %] + From any library + [% ELSIF holdallowed == 'from_local_hold_group' %] + From local hold group + [% ELSIF holdallowed == 'from_home_library' %] + From home library + [% ELSE %] + No holds allowed + [% END %] + + [% IF hold_fulfillment_policy == 'any' %] + any library + [% ELSIF hold_fulfillment_policy == 'homebranch' %] + item's home library + [% ELSIF hold_fulfillment_policy == 'holdgroup' %] + item's hold group + [% ELSIF hold_fulfillment_policy == 'patrongroup' %] + patron's hold group + [% ELSIF hold_fulfillment_policy == 'holdingbranch' %] + item's holding library + [% END %] + + [% IF returnbranch == 'homebranch' %] + Item returns home + [% ELSIF returnbranch == 'holdingbranch' %] + Item returns to issuing branch + [% ELSIF returnbranch == 'noreturn' %] + Item floats + [% END %] + + Delete +
- - -
+ + + + + - - -
-
-
-
+ + + + + + + + + + + -- 2.30.2