I would like to place what little influence I have in favor of this idea. I am one of those who had trouble with the way issuing rules workes in 2.2. I have gone as far as implementing something very similar to this already in my install. I will add that, as I recall, there are two places in the 2.2 code that I had to change. I haven't seen the 3.0 code, so that may not be the case anymore. I'll look at the 2.2 code to see if I can find the other place again. Let's see... One was in C4/Circulation/Circ.pm::TooMany, also C4/Circulation/Fines.pm::CalcFine. I've change CalcFine() so much though, that it's hard to tell if you will need to make adjustments there or not. I suspect you will. On Tue, 2007-10-09 at 15:21 +0200, Paul POULAIN wrote:
Hello world,
We are reviewing Koha for 3.0 Release & Joshua pointed something important: the way issuingrules worked in koha 2.2.
In Koha 2.2, the way it works is : - you define the rules depending on itemtype / patron category / branch - you have "wildcard" that means "all of them". For example, * / adult / * = 5 means "an adult patron can't issue more than 5 items whatever the branch". - The circ module check ALL the rules & warn if one is not correct. So, if you don't fill a cell, it's considered as 0 (= no issue possible) - you must fill book / * / * by understanding it means : "no patron can't issue more than X book(s)"
This behaviour troubled a lot users, as we often have questions about warnings that were not expected.
Joshua think, and i' fully agree with him, that the user understand the wildcard as 'default if nothing specified'. So, for example, book / * / * would mean : if a specific rule is not defined for patron category, then use this default value.
We should not have a "check ALL the rules", but a "check the 1st available, from most to less specific + check the total rule if available.".
The "wildcard" on itemtype being renamed to "total", and being applied if defined, as total document the patron can issue.
so we could have something like that adult children default book empty 3,21 5,21 serial 4,14 3,21 5,21 comic 5,21 3,21 empty total 7 empty 5
which would mean : - an adult can issue 5 books for 21 days (default rule) - an adult can issue 4 serials for 14 days (specific rule) - an adult can issue 7 documents total - a child can issu 3 books, 3 serials, 3 comics, but 5 document maximum
The "branch level" has the same behaviour : it a rule for a branch is defined, then it's applicable, otherwise, it's the default rule of the default branch.
Let us know your opinion on this. It would require some tweaking on issuingrules definition & a small rewrite the CanBookBeIssued sub, to check only 2 rules (1st found + total), not 8 (every cell that fit the issue).