Bug 28541

Summary: Incorrect default pickup location passed to HTML, causing UI show items unreservable
Product: Koha Reporter: Joonas Kylmälä <joonas.kylmala>
Component: Hold requestsAssignee: Peter Vashchuk <stalkernoid>
Status: ASSIGNED --- QA Contact: Testopia <testopia>
Severity: normal    
Priority: P5 - low CC: gmcharlt, jonathan.druart, nugged, stalkernoid, tomascohen
Version: Main   
Hardware: All   
OS: All   
See Also: https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=28338
Change sponsored?: --- Patch complexity: ---
Documentation contact: Documentation submission:
Text to go in the release notes:
Version(s) released in:
Bug Depends on: 27071    
Bug Blocks:    

Description Joonas Kylmälä 2021-06-10 12:17:43 UTC
The default pickup branch for holds through intranet was changed in Bug 27071 to be the branch returned by C4::Reserves::GetReservesControlBranch() function. However, the result of this calculation, $reserves_control_branch, is not passed to to the Template Toolkit template:

> # pass the userenv branch if no pickup location selected
> $template->param( pickup => $pickup || C4::Context->userenv->{branch} );

Instead the wrong value, currently logged in branch is passed. This causes the UI give false warning triangles about not being able to reserve some items even though the reservation works if you ignore those warnings. We should be passing the same branch as we did the availability calculation with, i.e. $reserves_control_branch.
Comment 1 Joonas Kylmälä 2021-06-10 12:27:25 UTC
Actually... On further thought I don't think that is the explanation for the triangles. I don't think we can use the GetReservesControlBranch to get the default pickup location as was changed in bug 27071 because that doesn't give us a branch with pickup option necessarely. The case we have is that the patrons/item's GetReservesControlBranch returns a branch where you cannot go pickup the item. We would need to be able to fallback to some other branch where pickup is possible I think.
Comment 2 Joonas Kylmälä 2021-06-10 13:21:48 UTC
I think I found a solution: Let's similary fetch the possible pickup locations like we do in request.tt:

> [% PROCESS options_for_libraries libraries => Branches.pickup_locations({ search_params => { biblio => biblionumber, patron => patron }, selected => pickup }) %]

And if the request.pl gets called without a pickup location then let's call Koha::Template::Plugin::Branches::pickup_locations($biblionumber, $patron) to get one. This gets a valid pickup location selected in the holds page and if the branch is wrong the user can change it.
Comment 3 Jonathan Druart 2021-07-19 12:45:26 UTC
Tomas, can you take a look at this bug please?
Comment 4 Katrin Fischer 2022-02-26 21:56:43 UTC
Ping!