diff --git a/C4/Reserves.pm b/C4/Reserves.pm index 3dc72f0226..9630b3feac 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -2021,23 +2021,27 @@ sub MoveReserve { my $lookahead = C4::Context->preference('ConfirmFutureHolds'); #number of days to look for future holds my $item = Koha::Items->find($itemnumber); my ( $restype, $res, undef ) = CheckReserves( $item, $lookahead ); - return unless $res; - my $biblionumber = $res->{biblionumber}; - - if ( $res->{borrowernumber} == $borrowernumber ) { + if ( $res && $res->{borrowernumber} == $borrowernumber ) { my $hold = Koha::Holds->find( $res->{reserve_id} ); $hold->fill( { item_id => $itemnumber } ); } else { - # warn "Reserved"; # The item is reserved by someone else. # Find this item in the reserves + my $lookahead_date = output_pref( + { + dt => dt_from_string->add_duration( DateTime::Duration->new( days => $lookahead ) ), + dateformat => 'iso', dateonly => 1 + } + ); my $borr_res = Koha::Holds->search( { borrowernumber => $borrowernumber, - biblionumber => $biblionumber, + biblionumber => $item->biblionumber, + reservedate => { '<=' => $lookahead_date }, + -or => [ item_level_hold => 0, itemnumber => $itemnumber ], }, { order_by => 'priority' } )->next();