@@ -, +, @@ placing a hold/reservation in OPAC. --- C4/Reserves.pm | 22 ++++-- .../opac-tmpl/prog/en/modules/opac-reserve.tt | 79 +++++++++++++------ opac/opac-reserve.pl | 91 ++++++++++++++-------- 3 files changed, 132 insertions(+), 60 deletions(-) --- a/C4/Reserves.pm +++ a/C4/Reserves.pm @@ -409,22 +409,32 @@ sub GetReservesFromBorrowernumber { #------------------------------------------------------------------------------------- =head2 CanBookBeReserved - $error = &CanBookBeReserved($borrowernumber, $biblionumber) + $error = &CanBookBeReserved($borrowernumber, $biblionumber, $pickupLibrary) +C<$pickupLibrary> OPTIONAL, undef OR the branchcode of the item transfer destination. + =cut sub CanBookBeReserved{ - my ($borrowernumber, $biblionumber) = @_; + my ($borrowernumber, $biblionumber, $pickupLibrary) = @_; my $items = GetItemnumbersForBiblio($biblionumber); #get items linked via host records my @hostitems = get_hostitemnumbers_of($biblionumber); if (@hostitems){ - push (@$items,@hostitems); + push (@$items,@hostitems); } foreach my $item (@$items){ - return 1 if CanItemBeReserved($borrowernumber, $item); + + if (defined $pickupLibrary) { + return 1 if ( CanItemBeReserved($borrowernumber, $item) and + CheckBranchTransferLimits($pickupLibrary, $item->{holdingbranch}, $item, undef) + ); + } + else { + return 1 if ( CanItemBeReserved($borrowernumber, $item) ); + } } return 0; } @@ -432,7 +442,7 @@ sub CanBookBeReserved{ =head2 CanItemBeReserved $error = &CanItemBeReserved($borrowernumber, $itemnumber) - + This function return 1 if an item can be issued by this borrower. =cut @@ -527,7 +537,7 @@ sub CanItemBeReserved{ return 0; } } - + return 1; } #-------------------------------------------------------------------------------- --- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-reserve.tt +++ a/koha-tmpl/opac-tmpl/prog/en/modules/opac-reserve.tt @@ -5,6 +5,7 @@ @@ -270,28 +300,29 @@