Currently, when a hold is in transit form one library to another, the patron cannot change the pickup location. Some libraries would like to allow the option for the patron to switch the pickup location before the book has arrived. We should add a system preference that enables this change, Koha circulation can already handle this, if you change the location in the DB manually the hold is transferred again when arriving at initial location
Created attachment 135834 [details] [review] Bug 30500: Add OPACInTransitHoldPickupLocationChange syspref Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Created attachment 135835 [details] [review] Bug 30500: Allow patrons to change in transit holds pickup locations This patch adds a way for patrons to change the pickup location for in transit holds. This is done in the OPAC on the holds table. The feature is controlled by a new system preference: * OPACInTransitHoldPickupLocationChange To test: 1. Apply this patches 2. Run: $ updatedatabase $ restart_all => SUCCESS: system preference added 3. Have an in-transit hold for a known patron 4. Visit the holds table for the patron (OPAC) => SUCCESS: Hold in transit, cannot change pickup location 5. Enable the OPACInTransitHoldPickupLocationChange system preference => SUCCESS: Descriptive text makes sense and is idiomatic 6. Reload the OPAC page => SUCCESS: You can now choose a new pickup location 7. Choose one => SUCCESS: It works! Reloaded page pre-selects the new pickup location 8. Switch to the new pickup location library on the staff interface 9. Go to Circulation > Transfers to receive => SUCCESS: The hold is there! 10. Scan the hold => SUCCESS: Usual workflow follows 11. Sign off :-D Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Created attachment 135836 [details] [review] Bug 30500: Add OPACInTransitHoldPickupLocationChange syspref Sponsored-by: Montgomery County Public Libraries Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Created attachment 135837 [details] [review] Bug 30500: Allow patrons to change in transit holds pickup locations This patch adds a way for patrons to change the pickup location for in transit holds. This is done in the OPAC on the holds table. The feature is controlled by a new system preference: * OPACInTransitHoldPickupLocationChange To test: 1. Apply this patches 2. Run: $ updatedatabase $ restart_all => SUCCESS: system preference added 3. Have an in-transit hold for a known patron 4. Visit the holds table for the patron (OPAC) => SUCCESS: Hold in transit, cannot change pickup location 5. Enable the OPACInTransitHoldPickupLocationChange system preference => SUCCESS: Descriptive text makes sense and is idiomatic 6. Reload the OPAC page => SUCCESS: You can now choose a new pickup location 7. Choose one => SUCCESS: It works! Reloaded page pre-selects the new pickup location 8. Switch to the new pickup location library on the staff interface 9. Go to Circulation > Transfers to receive => SUCCESS: The hold is there! 10. Scan the hold => SUCCESS: Usual workflow follows 11. Sign off :-D Sponsored-by: Montgomery County Public Libraries Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Created attachment 135847 [details] [review] Bug 30500: Add OPACInTransitHoldPickupLocationChange syspref Sponsored-by: Montgomery County Public Libraries Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Created attachment 135848 [details] [review] Bug 30500: Allow patrons to change in transit holds pickup locations This patch adds a way for patrons to change the pickup location for in transit holds. This is done in the OPAC on the holds table. The feature is controlled by a new system preference: * OPACInTransitHoldPickupLocationChange To test: 1. Apply this patches 2. Run: $ updatedatabase $ restart_all => SUCCESS: system preference added 3. Have an in-transit hold for a known patron 4. Visit the holds table for the patron (OPAC) => SUCCESS: Hold in transit, cannot change pickup location 5. Enable the OPACInTransitHoldPickupLocationChange system preference => SUCCESS: Descriptive text makes sense and is idiomatic 6. Reload the OPAC page => SUCCESS: You can now choose a new pickup location 7. Choose one => SUCCESS: It works! Reloaded page pre-selects the new pickup location 8. Switch to the new pickup location library on the staff interface 9. Go to Circulation > Transfers to receive => SUCCESS: The hold is there! 10. Scan the hold => SUCCESS: Usual workflow follows 11. Sign off :-D Sponsored-by: Montgomery County Public Libraries Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Created attachment 138690 [details] [review] Bug 30500: (QA follow-up) Separate code execution streams for obviously independent parameters When $new_pickup_location gets passed as parameter it doesn't make any sense to also check is_cancelable_from_opac. Also this makes code more clearer as it seemed like it was possible for item to get cancelled at the same time as request to change pickup location.
Pushed to master for 22.11. Nice work everyone, thanks!
Enhancement will not be backported to 22.05.x series