[Koha-bugs] [Bug 34972] Canceling a waiting hold from the holds over tab can make the next hold unfillable
bugzilla-daemon at bugs.koha-community.org
bugzilla-daemon at bugs.koha-community.org
Fri Mar 22 18:41:09 CET 2024
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=34972
Andrew Fuerste-Henry <andrewfh at dubcolib.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #163472|0 |1
is obsolete| |
--- Comment #11 from Andrew Fuerste-Henry <andrewfh at dubcolib.org> ---
Created attachment 163729
-->
https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=163729&action=edit
Bug 34972: GetOtherReserves should not alter hold states
GetOtherReserves attempts to set the waiting/transit status for the next
hold on the list when applicable, but in practice it either leaves the
hold state unchanged, or sets the itemnumber without setting the found
status (erroneously converting bib-level holds to item-level holds).
The latter situation only occurs when the user has been prompted to
confirm, cancel, or revert the hold, and is able to ignore the prompt.
In those situations, the hold's state should not change.
GetOtherReserves does not need to change the hold's state, and
attempting to do so produces no effect except for erroneously converting
bib-level holds to item-level holds in certain situations, so this patch
removes that code.
To test:
1. Place 2 bib-level holds for 2 different patrons (Patron A and Patron
B) on the same record, both for pickup at the logged-in library
2. Check in an item from that record to fill Patron A's hold
3. Set the hold's expiration date to yesterday by accessing the database
in the command line:
- In a ktd shell prompt, open the db client with koha-mysql kohadev
- UPDATE reserves
SET expirationdate = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
WHERE borrowernumber = <Patron A's borrowernumber>
4. Go to Circulation > Holds Awaiting Pickup, and find the hold in the
"holds waiting past their expiration date" tab
5. Click the "Cancel hold" button in the Actions column next to the hold
6. Return to the bib record and look at Patron B's hold
--> Note that Patron B's hold is now an item-level hold and does not
have a waiting status
7. Cancel Patron B's hold
8. Place 2 new holds on the record: one for Patron A at the logged-in
library, and one for Patron B at a different library
9. Check in an item to fill Patron A's hold
10. Repeat steps 3-5 to expire and cancel Patron A's hold
11. Return to the bib record and look at Patron B's hold
--> Note that Patron B's hold is now an item-level hold and does not
have a transit status
12. Place 2 bib-level holds for 2 different patrons (Patron A and Patron
B) on the same record, both for pickup at the logged-in library
13. Check in an item from that record to fill Patron A's hold
14. Check in the same item again. A modal will pop up, saying that the
hold is already waiting
15. In the modal, choose a cancellation reason and click "Cancel hold"
--> A new modal will pop up to fill Patron B's hold
16. Click "Ignore" on the modal for Patron B's hold
17. Return to the bib record and look at Patron B's hold
--> Note that Patron B's hold is now an item-level hold and does not
have a waiting status
18. Apply patch
19. Repeat steps 1-6
--> Note that Patron B's hold is still a bib-level/"next available" hold
20. Repeat steps 7-11
--> Note that Patron B's hold is still a bib-level/"next available" hold
21. Repeat steps 12-17
--> Note that Patron B's hold is still a bib-level/"next available" hold
22. Prove t/db_dependent/Circulation.t
23. Prove t/db_dependent/Koha/Holds.t
--> Tests pass
Signed-off-by: Andrew Fuerste Henry <andrewfh at dubcolib.org>
--
You are receiving this mail because:
You are watching all bug changes.
More information about the Koha-bugs
mailing list