@@ -, +, @@ - item1: homebranch: MPL, holdingbranch: MPL - item2: homebranch: FPL, holdingbranch: FPL - item3: homebranch: CPL, holdingbranch: IPT (acevedo?) --- .../intranet-tmpl/prog/en/modules/reserve/request.tt | 8 ++++++-- reserve/placerequest.pl | 7 ++++--- reserve/request.pl | 6 +++++- 3 files changed, 15 insertions(+), 6 deletions(-) --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -724,9 +724,13 @@ [% IF (itemloo.pickup_locations_count > 0) %] - + data-patron-id="[% patron.borrowernumber | html %]"> + [% IF (itemloo.default_pickup_location) %] + + [% END %] + [% END %] --- a/reserve/placerequest.pl +++ a/reserve/placerequest.pl @@ -45,7 +45,6 @@ my $biblionumber = $input->param('biblionumber'); my $borrowernumber = $input->param('borrowernumber'); my $notes = $input->param('notes'); my $branch = $input->param('pickup'); -my $item_pickup = $input->param('item_pickup'); my $startdate = $input->param('reserve_date') || ''; my @rank = $input->multi_param('rank-request'); my $type = $input->param('type'); @@ -94,18 +93,20 @@ if ( $type eq 'str8' && $borrower ) { my $can_override = C4::Context->preference('AllowHoldPolicyOverride'); if ( defined $checkitem && $checkitem ne '' ) { + my $item_pickup_location = $input->param("item_pickup_$checkitem"); + my $item = Koha::Items->find($checkitem); if ( $item->biblionumber ne $biblionumber ) { $biblionumber = $item->biblionumber; } - my $can_item_be_reserved = CanItemBeReserved($borrower->{'borrowernumber'}, $item->itemnumber, $item_pickup)->{status}; + my $can_item_be_reserved = CanItemBeReserved($borrower->{'borrowernumber'}, $item->itemnumber, $item_pickup_location)->{status}; if ( $can_item_be_reserved eq 'OK' || ( $can_item_be_reserved ne 'itemAlreadyOnHold' && $can_override ) ) { AddReserve( { - branchcode => $item_pickup, + branchcode => $item_pickup_location, borrowernumber => $borrower->{'borrowernumber'}, biblionumber => $biblionumber, priority => $rank[0], --- a/reserve/request.pl +++ a/reserve/request.pl @@ -578,10 +578,14 @@ foreach my $biblionumber (@biblionumbers) { ) { # Send the pickup locations count to the UI, the pickup locations will be pulled using the API - $item->{pickup_locations_count} = $item_object->pickup_locations({ patron => $patron })->count; + my $pickup_locations = $item_object->pickup_locations({ patron => $patron }); + $item->{pickup_locations_count} = $pickup_locations->count; if ( $item->{pickup_locations_count} > 0 ) { $num_available++; $item->{available} = 1; + # pass the holding branch for use as default + my $default_pickup_location = $pickup_locations->search({ branchcode => $item->{holdingbranch} })->next; + $item->{default_pickup_location} = $default_pickup_location; } else { $item->{available} = 0; --