[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
Wed Jan 10 17:34:04 CET 2024


https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=34972

--- Comment #4 from Emily Lamancusa <emily.lamancusa at montgomerycountymd.gov> ---
Created attachment 160776
  -->
https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=160776&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

-- 
You are receiving this mail because:
You are watching all bug changes.


More information about the Koha-bugs mailing list