Circulation rules values tech list

circulation_rules table filled with key/value pairs which converted from something-like 1 dimension (rows) to some 2 dimension rows/columns on smart-rules.pl page. Tables and their values:
== Defining circulation and fine rules for / for "BRANCH_NAME" ==
table 1: main table
 fine allowed to be set to 0 or ''
 finedays allowed to be set to 0 or ''
 maxsuspensiondays PerlTRUTH or , i.e. 0 not allowed
 suspension_chargeperiod PerlTRUTH or 1
 firstremind any value except undef
 chargeperiod any value except undef
 chargeperiod_charge_at any value except undef
 maxissueqty strip_non_numeric
 maxonsiteissueqty strip_non_numeric
 renewalsallowed any value except undef
 unseen_renewals_allowed strip_non_numeric or ''
 renewalperiod any value except undef
 norenewalbefore any value except undef, also if /^\s*$/
 auto_renew if eq 'yes' then 1 otherwise 0
 no_auto_renewal_after any value except undef, also if /^\s*$/
 no_auto_renewal_after_hard_limit PerlTRUTH or ''
 reservesallowed strip_non_numeric
 holds_per_record strip_non_numeric
 holds_per_day strip_non_numeric
 onshelfholds PerlTRUTH or 0
 issuelength PerlTRUTH or 0
 daysmode any value except undef
 lengthunit any value except undef
 hardduedate PerlTRUTH or ''
 hardduedatecompare any value except undef
 rentaldiscount PerlTRUTH or 0 (can_be_blank => 0)
 opacitemholds PerlTRUTH or 0
 article_requests PerlTRUTH or 'no'
 overduefinescap PerlTRUTH or ''
 cap_fine_to_replacement_price (PerlTRUTH or ) eq 'on'
 note any value except undef
 decreaseloanholds PerlTRUTH or ''
 recalls_allowed any value except undef
 recalls_per_record any value except undef
 on_shelf_recalls any value except undef
 recall_due_date_interval any value except undef
 recall_overdue_fine any value except undef
 recall_shelf_time any value except undef
== Default checkout, hold and return policy / for BRANCH_NAME ==
table 2: set-branch-defaults, but see table 3 and table 7 below but these saved for */* regarding item/category
 patron_maxissueqty can be absent, strip_non_numeric text
 patron_maxonsiteissueqty can be absent, strip_non_numeric text
 max_holds can be absent, strip_non_numeric text
 holdallowed can be absent, text, (can_be_blank => 0)
 hold_fulfillment_policy can be absent, text, (can_be_blank => 0)
 returnbranch can be absent, text, (can_be_blank => 0)
== Default waiting hold cancellation policy / Waiting hold cancellation policy for BRANCH_NAME ==
table 3: set-waiting-hold-cancellation
 waiting_hold_cancellation can be absent, 
 strip_non_numeric 0 / 1, (can_be_blank => 0)
== Default checkout, hold policy by patron category / Checkout, hold policy by patron category for BRANCH_NAME ==
table 4: add-branch-cat
 patron_maxissueqty can be absent, strip_non_numeric text
 patron_maxonsiteissueqty can be absent, strip_non_numeric text
 max_holds can be absent, strip_non_numeric text
 (separate processing: in add-branch-cat can be under,
 but patron_maxissueqty patron_maxonsiteissueqty
 filtered over strip_non_numeric)
== Default open article requests limit / Daily open article requests limit for BRANCH_NAME ==
table 5: add-open-article-requests-limit
 open_article_requests_limit can be absent, strip_non_numeric text
 ugly code note: 'strip_non_numeric' called
 but THEN 'if not defined' checked
== Default article request fees / Article request fees for BRANCH_NAME ==
table 6: set-article-request-fee
 article_request_fee can be absent, strip_non_numeric text
== Default lost item fee refund on return policy / Lost item fee refund on return policy for BRANCH_NAME ==
table 7: mod-refund-lost-item-fee-rule
 lostreturn can be absent,
 for all branches: refund/refund_unpaid/charge/restore/0
 per branch: + *=undef(absent)
== Default holds policy by item type / Holds policy by item type for BRANCH_NAME ==
table 8: add-branch-item
 holdallowed can be absent, from_any_library/from_local_hold_group/from_home_library/not_allowed
 hold_fulfillment_policy can be absent,
 any/holdgroup/patrongroup/homebranch/holdingbranch
 returnbranch can be absent
 homebranch/holdingbranch/noreturn
Category:Development