There was an email on the mailing list reporting problems with the hold fee set on the patron category. I tested on master and can confirm, that no fee was set on placing a hold. 1) Administration > patron category > Add a hold fee 2) Place a hold for a patron of that category in the OPAC 3) Check the patron account - no fee was applied
There are circumstances where the fee is applied - if the item is already on loan (or otherwise unavailable) a hold fee will be applied immediately. If the item is available, no fee is applied, even at checkout. It might make more sense if a fee was applied immediately for items that are available, and only applied at checkout for any items that were unavailable when the hold was placed. This is true for 3.18.03.000, behaviour may differ at other versions.
Is anyone doing any work on this as it is something we would really like fixing.
What I understand: If it's the first hold placed on this record, the patron is not charged. See the following (ugly) snippet of code (from C4::Reserves::GetReserveFee): 794 if ( $allissued == 0 ) { 795 my $rsth = 796 $dbh->prepare("SELECT * FROM reserves WHERE biblionumber = ?"); 797 $rsth->execute($biblionumber); 798 if ( my $rdata = $rsth->fetchrow_hashref ) { 799 } 800 else { 801 $fee = 0; 802 } 803 } If no reserve exists, the fee is set to 0. This behavior seems to exist for a while. What would be the expected behavior? Does someone have an idea of why this condition exists?
Yeah that behaviour has been there since 2000-12-19 23:45:51 If there are items on the shelf, and you aren't the first hold, you get a charge. Was the original behaviour. ^d0374d0 (rangi 2000-12-19 23:45:51 +0000 209) if (my $rdata = $rsth->fetchrow_hashref) { } else { ^d0374d0 (rangi 2000-12-19 23:45:51 +0000 210) $fee = 0; ^d0374d0 (rangi 2000-12-19 23:45:51 +0000 211) } If they are all out, then you are not charged for the hold, someone must have changed it since then, if it now places a fee if the item is unavailable. Basically, it should be a system preference, or an issuing rule. But I dont think we can change behaviour that has been there for 15 years without a syspref. Or things will start unexpectedly charging, and no library wants angry borrowers.
I understand the bit about 'all out' versus 'at least one on the shelf' - but why only charge from the second hold onwards? Anyway, I tend to agree with Chris that we'd probably need a fix to be an option. What would make sense for me would be one of the following behaviours: - Charge for every hold placed - Charge for ever hold on pick-up (only filled holds) - Charge, if the library gets an available hold for you from the shelf (without the difference mentioned above between a first or later hold) Maybe we should ask about this on the mailing list to get a clear expectation on how this should work. We are also documenting this not very well right now - which explains why people think it's broken: 3.2 and 3.20 manual are both stating: If you charge patrons for placing holds on items, enter the fee amount in the 'Hold fee' field. Only enter numbers and decimals in this field
I can try and provide a fix if we know what we need.
I think this could be something for the mailing lists - wonder if people are aware of current behaviour and if someone can explain "why".
(In reply to Katrin Fischer from comment #7) > I think this could be something for the mailing lists - wonder if people are > aware of current behaviour and if someone can explain "why". Now it is: https://lists.katipo.co.nz/pipermail/koha/2015-August/043527.html :)
Please note that the sub has been refactored (without changing behavior but at least increasing readability) on bug 14702
(In reply to Joonas Kylmälä from comment #8) > (In reply to Katrin Fischer from comment #7) > > I think this could be something for the mailing lists - wonder if people are > > aware of current behaviour and if someone can explain "why". > > Now it is: https://lists.katipo.co.nz/pipermail/koha/2015-August/043527.html > :) This question was asked again: https://lists.katipo.co.nz/pipermail/koha/2015-November/044052.html We would be extremely keen to see a behaviour change, for the reasons outlined on the e-mail list.
This looks like more than an enhancement than a bug fix, at least from my developer point of view. Does a quick fix could do the job? Something like a pref: - charge any holds - charge any holds if all items are issued - charge any holds if all items are issued and at least one hold already exists on this record # default
Hi Jonathan, I am not sure the second option is needed - but the 1 and 3 would be good I think. Preserving the current behaviour and adding what I think is the more expected scenario.
Created attachment 44771 [details] [review] Bug 13592: Add an option to charge for any hold placed Currently the fee is applied on if all items for the record are issued and at least one hold already exists on the record. This patch does not give a complete answer to the problem (see discussion on bug 13592 for the other user's expectations). It only adds the ability to charge for any hold placed regardless of the conditions. Test plan: 1) Execute the updatedb entry to insert the new pref 2) Confirm that the behavior is the same as before applying this patch 3) Change the HoldFeeMode pref to 'always' 4) Note that the fee is applied for any hold placed
There is a inconsitency in the name of the syspref - ReserveFee (in koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref) - HoldFeeMode (in all other files)
Created attachment 44838 [details] [review] Bug 13592: Add an option to charge for any hold placed Currently the fee is applied on if all items for the record are issued and at least one hold already exists on the record. This patch does not give a complete answer to the problem (see discussion on bug 13592 for the other user's expectations). It only adds the ability to charge for any hold placed regardless of the conditions. Test plan: 1) Execute the updatedb entry to insert the new pref 2) Confirm that the behavior is the same as before applying this patch 3) Change the HoldFeeMode pref to 'always' 4) Note that the fee is applied for any hold placed
(In reply to Marc Véron from comment #14) > There is a inconsitency in the name of the syspref Sorry about that, last minute change :-/
Hold fee is applied if all items for the record are issued and at least one hold already exists on the record. This patch adds the ability to charge for any hold placed, regardless of the conditions. Test plan: 1) Execute the updatedb entry to insert the new pref 2) Confirm that the behavior is the same as before applying this patch 3) Change the HoldFeeMode pref to 'always' 4) Note that the fee is applied for any hold placed This patch has been tested and works as expected.
Test plan: 1) Execute the updatedb entry to insert the new pref 2) Confirm that the behavior is the same as before applying this patch 3) Change the HoldFeeMode pref to 'always' 4) Note that the fee is applied for any hold placed Sign off on Jonathan's patch. Signed-off-by: Sally Healey <sally.healey@cheshiresharedservices.gov.uk>
Created attachment 45563 [details] [review] Bug 13592: Add an option to charge for any hold placed
Created attachment 45863 [details] [review] [SIGNED-OFF] Bug 13592: Add an option to charge for any hold placed Currently the fee is applied on if all items for the record are issued and at least one hold already exists on the record. This patch does not give a complete answer to the problem (see discussion on bug 13592 for the other user's expectations). It only adds the ability to charge for any hold placed regardless of the conditions. Test plan: 1) Execute the updatedb entry to insert the new pref 2) Confirm that the behavior is the same as before applying this patch 3) Change the HoldFeeMode pref to 'always' 4) Note that the fee is applied for any hold placed Signed-off-by: Sally Healey <sally.healey@cheshiresharedservices.gov.uk>
Created attachment 45864 [details] [review] Bug 13592: Add an option to charge for any hold placed Currently the fee is applied on if all items for the record are issued and at least one hold already exists on the record. This patch does not give a complete answer to the problem (see discussion on bug 13592 for the other user's expectations). It only adds the ability to charge for any hold placed regardless of the conditions. Test plan: 1) Execute the updatedb entry to insert the new pref 2) Confirm that the behavior is the same as before applying this patch 3) Change the HoldFeeMode pref to 'always' 4) Note that the fee is applied for any hold placed Signed-off-by: Sally Healey <sally.healey@cheshiresharedservices.gov.uk> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Created attachment 45865 [details] [review] Bug 13592 [QA Followup] - Make the system preference description self documenting Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Pushed to master, thanks Jonathan!