1) place biblio level hold on a book to borrower A. 3) check out an item of the book to borrower B. 4) When confirming checkout, check the 'Cancel hold' check-box, and click the "Yes, check out" button. 5) Click Show Checkouts. Note that the item has an 'On hold' link in the 'Check In' area. Clicking the link brings you to reserve/request.pl?biblionumber=..., showing the un-cancelled hold. This was replicated on Koha 3.19.00.038
First, I want to point out there are two different pieces of code that handle similar situations, first is where a librarian attempts to check out a book on hold and *waiting* for a different patron. When this happens, Koha will offer to cancel or revert the waiting hold. This feature works correctly. This bug is dealing with the situation where an item is checked out to a patron that is not the next in line hold-wise for an item. In this case, Koha will warn the librarian that there are holds on the item and show the first person in line. Again, I want to stress that this is the case where the item *is not waiting* for a patron. The hold for the patron listed will just have a priority of 1. The only situation where the "Cancel hold" checkbox will function is when the priority 1 hold is an item level hold. This is due to the fact that CancelReserve is being passed the trio of biblionumber, borrowernumber, and itemnumber rather than the singular reserve_id. The call stack is as such: AddIssue MoveReserve ( here is where CancelReserve should be called using reserve_id ) CancelReserve
Created attachment 41926 [details] [review] Bug 14640 - 'Cancel Hold' check box on check-out confirmation does not cancel the hold when item is checked out. This bug is dealing with the situation where an item is checked out to a patron that is not the next in line hold-wise for an item. In this case, Koha will warn the librarian that there are holds on the item and show the first person in line. Again, I want to stress that this is the case where the item *is not waiting* for a patron. The hold for the patron listed will just have a priority of 1. The only situation where the "Cancel hold" checkbox will function is when the priority 1 hold is an item level hold. This is due to the fact that CancelReserve is being passed the trio of biblionumber, borrowernumber, and itemnumber rather than the singular reserve_id. 1) place biblio level hold on a book to borrower A. 2) check out an item of the book to borrower B. 3) When confirming checkout, check the 'Cancel hold' check-box, and click the "Yes, check out" button. 4) Note the hold was not canceled 5) Apply this patch 6) Repeat steps 1 through 3 7) Note the hold was indeed canceled
Created attachment 42103 [details] [review] Bug 14640 - 'Cancel Hold' check box on check-out confirmation does not cancel the hold when item is checked out. Test plan passed, code looks good. Signed-off-by: Joonas Kylmälä <j.kylmala@gmail.com>
Created attachment 42142 [details] [review] Bug 14640: Add tests Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Created attachment 42143 [details] [review] Bug 14640 - 'Cancel Hold' check box on check-out confirmation does not cancel the hold when item is checked out. This bug is dealing with the situation where an item is checked out to a patron that is not the next in line hold-wise for an item. In this case, Koha will warn the librarian that there are holds on the item and show the first person in line. Again, I want to stress that this is the case where the item *is not waiting* for a patron. The hold for the patron listed will just have a priority of 1. The only situation where the "Cancel hold" checkbox will function is when the priority 1 hold is an item level hold. This is due to the fact that CancelReserve is being passed the trio of biblionumber, borrowernumber, and itemnumber rather than the singular reserve_id. 1) place biblio level hold on a book to borrower A. 2) check out an item of the book to borrower B. 3) When confirming checkout, check the 'Cancel hold' check-box, and click the "Yes, check out" button. 4) Note the hold was not canceled 5) Apply this patch 6) Repeat steps 1 through 3 7) Note the hold was indeed canceled Signed-off-by: Joonas Kylmälä <j.kylmala@gmail.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Patches pushed to master. Thanks Jonathan and Kyle!
Master is at version 3.21.00.026.
Pushed to 3.20.x will be in 3.20.4
Pushed to 3.18.x will be in 3.18.11