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 |
- |
|
|