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

(-)a/koha-tmpl/opac-tmpl/prog/en/modules/opac-user.tt (-1 / +1 lines)
Lines 408-414 $.tablesorter.addParser({ Link Here
408
		[% IF ( RESERVE.cancelable ) %]
408
		[% IF ( RESERVE.cancelable ) %]
409
			<form action="/cgi-bin/koha/opac-modrequest.pl" method="post">
409
			<form action="/cgi-bin/koha/opac-modrequest.pl" method="post">
410
			<input type="hidden" name="biblionumber" value="[% RESERVE.biblionumber %]" />
410
			<input type="hidden" name="biblionumber" value="[% RESERVE.biblionumber %]" />
411
		<input type="hidden" name="reservenumber" value="[% RESERVE.reservenumber %]" />
411
		        <input type="hidden" name="reservenumber" value="[% RESERVE.reservenumber %]" />
412
			<input type="submit" name="submit" class="icon delete cancel" value="Cancel" onclick="return confirmDelete('Are you sure you want to cancel this hold?');" /></form>
412
			<input type="submit" name="submit" class="icon delete cancel" value="Cancel" onclick="return confirmDelete('Are you sure you want to cancel this hold?');" /></form>
413
		[% ELSE %]
413
		[% ELSE %]
414
		[% END %]
414
		[% END %]
(-)a/opac/opac-reserve.pl (-9 / +11 lines)
Lines 37-43 use C4::Debug; Link Here
37
use Koha::DateUtils;
37
use Koha::DateUtils;
38
# use Data::Dumper;
38
# use Data::Dumper;
39
39
40
my $MAXIMUM_NUMBER_OF_RESERVES = C4::Context->preference("maxreserves");
40
my $maxreserves = C4::Context->preference("maxreserves");
41
my $max_holds_per_record = C4::Context->preference('MaxHoldsPerRecord');
41
42
42
my $query = new CGI;
43
my $query = new CGI;
43
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
44
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
Lines 298-304 if ( CheckBorrowerDebarred($borrowernumber) ) { Link Here
298
299
299
my @reserves = GetReservesFromBorrowernumber( $borrowernumber );
300
my @reserves = GetReservesFromBorrowernumber( $borrowernumber );
300
$template->param( RESERVES => \@reserves );
301
$template->param( RESERVES => \@reserves );
301
if ( $MAXIMUM_NUMBER_OF_RESERVES && (scalar(@reserves) >= $MAXIMUM_NUMBER_OF_RESERVES) ) {
302
if ( $maxreserves && (scalar(@reserves) >= $maxreserves) ) {
302
    $template->param( message => 1 );
303
    $template->param( message => 1 );
303
    $noreserves = 1;
304
    $noreserves = 1;
304
    $template->param( too_many_reserves => scalar(@reserves));
305
    $template->param( too_many_reserves => scalar(@reserves));
Lines 306-317 if ( $MAXIMUM_NUMBER_OF_RESERVES && (scalar(@reserves) >= $MAXIMUM_NUMBER_OF_RES Link Here
306
foreach my $res (@reserves) {
307
foreach my $res (@reserves) {
307
    foreach my $biblionumber (@biblionumbers) {
308
    foreach my $biblionumber (@biblionumbers) {
308
        if ( $res->{'biblionumber'} == $biblionumber && $res->{'borrowernumber'} == $borrowernumber) {
309
        if ( $res->{'biblionumber'} == $biblionumber && $res->{'borrowernumber'} == $borrowernumber) {
309
#            $template->param( message => 1 );
310
            $biblioDataHash{$biblionumber}->{holds_count}++;
310
#            $noreserves = 1;
311
#            $template->param( already_reserved => 1 );
312
            $biblioDataHash{$biblionumber}->{already_reserved} = 1;
313
        }
311
        }
314
    }
312
    }
313
    
315
}
314
}
316
315
317
unless ($noreserves) {
316
unless ($noreserves) {
Lines 353-359 foreach my $biblioNum (@biblionumbers) { Link Here
353
    $biblioLoopIter{author} = $biblioData->{author};
352
    $biblioLoopIter{author} = $biblioData->{author};
354
    $biblioLoopIter{rank} = $biblioData->{rank};
353
    $biblioLoopIter{rank} = $biblioData->{rank};
355
    $biblioLoopIter{reservecount} = $biblioData->{reservecount};
354
    $biblioLoopIter{reservecount} = $biblioData->{reservecount};
356
    $biblioLoopIter{already_reserved} = $biblioData->{already_reserved};
355
    $biblioLoopIter{holds_count} = $biblioData->{holds_count};
357
356
358
    if (!$itemLevelTypes && $biblioData->{itemtype}) {
357
    if (!$itemLevelTypes && $biblioData->{itemtype}) {
359
        $biblioLoopIter{description} = $itemTypes->{$biblioData->{itemtype}}{description};
358
        $biblioLoopIter{description} = $itemTypes->{$biblioData->{itemtype}}{description};
Lines 480-486 foreach my $biblioNum (@biblionumbers) { Link Here
480
            $policy_holdallowed = 0;
479
            $policy_holdallowed = 0;
481
        }
480
        }
482
481
483
        if (IsAvailableForItemLevelRequest($itemNum) and $policy_holdallowed and CanItemBeReserved($borrowernumber,$itemNum) and ($itemLoopIter->{already_reserved} ne 1)) {
482
        if (IsAvailableForItemLevelRequest($itemNum) and $policy_holdallowed and CanItemBeReserved($borrowernumber,$itemNum) and ($itemLoopIter->{holds_count} < $max_holds_per_record )) {
484
            $itemLoopIter->{available} = 1;
483
            $itemLoopIter->{available} = 1;
485
            $numCopiesAvailable++;
484
            $numCopiesAvailable++;
486
        }
485
        }
Lines 513-518 foreach my $biblioNum (@biblionumbers) { Link Here
513
        $biblioLoopIter{holdable} = undef;
512
        $biblioLoopIter{holdable} = undef;
514
        $anyholdable = undef;
513
        $anyholdable = undef;
515
    }
514
    }
515
    if ($biblioLoopIter{holds_count} >= $max_holds_per_record) {
516
        $biblioLoopIter{holdable} = undef;
517
        $anyholdable = undef;
518
    }
516
    if(not CanBookBeReserved($borrowernumber,$biblioNum)){
519
    if(not CanBookBeReserved($borrowernumber,$biblioNum)){
517
        $biblioLoopIter{holdable} = undef;
520
        $biblioLoopIter{holdable} = undef;
518
        $anyholdable = undef;
521
        $anyholdable = undef;
519
- 

Return to bug 7710