View | Details | Raw Unified | Return to bug 30860
Collapse All | Expand All

(-)a/C4/Reserves.pm (-4 / +13 lines)
Lines 329-335 sub AddReserve { Link Here
329
  $canReserve = &CanBookBeReserved($borrowernumber, $biblionumber, $branchcode, $params)
329
  $canReserve = &CanBookBeReserved($borrowernumber, $biblionumber, $branchcode, $params)
330
  if ($canReserve eq 'OK') { #We can reserve this Item! }
330
  if ($canReserve eq 'OK') { #We can reserve this Item! }
331
331
332
  $params are passed directly through to CanItemBeReserved
332
  Accepts param 'return_all_items' which will process all items and return results of
333
  CanItemBeReserved
334
  All other $params are passed directly through to CanItemBeReserved
333
335
334
See CanItemBeReserved() for possible return values.
336
See CanItemBeReserved() for possible return values.
335
337
Lines 337-342 See CanItemBeReserved() for possible return values. Link Here
337
339
338
sub CanBookBeReserved{
340
sub CanBookBeReserved{
339
    my ($borrowernumber, $biblionumber, $pickup_branchcode, $params) = @_;
341
    my ($borrowernumber, $biblionumber, $pickup_branchcode, $params) = @_;
342
    my $return_all_items = $params->{return_all_items} // 0;
340
343
341
    # Check that patron have not checked out this biblio (if AllowHoldsOnPatronsPossessions set)
344
    # Check that patron have not checked out this biblio (if AllowHoldsOnPatronsPossessions set)
342
    if ( !C4::Context->preference('AllowHoldsOnPatronsPossessions')
345
    if ( !C4::Context->preference('AllowHoldsOnPatronsPossessions')
Lines 360-370 sub CanBookBeReserved{ Link Here
360
363
361
    my $canReserve = { status => '' };
364
    my $canReserve = { status => '' };
362
    my $patron = Koha::Patrons->find( $borrowernumber );
365
    my $patron = Koha::Patrons->find( $borrowernumber );
366
    my %items;
367
    my $can_book_be_reserved = 0;
363
    while ( my $item = $items->next ) {
368
    while ( my $item = $items->next ) {
364
        $canReserve = CanItemBeReserved( $patron, $item, $pickup_branchcode, $params );
369
        $canReserve = CanItemBeReserved( $patron, $item, $pickup_branchcode, $params );
365
        return { status => 'OK' } if $canReserve->{status} eq 'OK';
370
        $can_book_be_reserved = 1 if $canReserve->{status} eq 'OK';
371
        return { status => 'OK' } if !$return_all_items && $can_book_be_reserved;
372
        $items{$item->itemnumber} = $canReserve;
366
    }
373
    }
367
    return $canReserve;
374
    return {
375
        status => $can_book_be_reserved ? 'OK' : $canReserve->{status},
376
        %items
377
    };
368
}
378
}
369
379
370
=head2 CanItemBeReserved
380
=head2 CanItemBeReserved
371
- 

Return to bug 30860