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 404-410 $.tablesorter.addParser({ Link Here
404
		[% IF ( RESERVE.cancelable ) %]
404
		[% IF ( RESERVE.cancelable ) %]
405
			<form action="/cgi-bin/koha/opac-modrequest.pl" method="post">
405
			<form action="/cgi-bin/koha/opac-modrequest.pl" method="post">
406
			<input type="hidden" name="biblionumber" value="[% RESERVE.biblionumber %]" />
406
			<input type="hidden" name="biblionumber" value="[% RESERVE.biblionumber %]" />
407
		<input type="hidden" name="reservenumber" value="[% RESERVE.reservenumber %]" />
407
		        <input type="hidden" name="reservenumber" value="[% RESERVE.reservenumber %]" />
408
			<input type="submit" name="submit" class="icon delete cancel" value="Cancel" onclick="return confirmDelete('Are you sure you want to cancel this hold?');" /></form>
408
			<input type="submit" name="submit" class="icon delete cancel" value="Cancel" onclick="return confirmDelete('Are you sure you want to cancel this hold?');" /></form>
409
		[% ELSE %]
409
		[% ELSE %]
410
			&nbsp;
410
			&nbsp;
(-)a/opac/opac-reserve.pl (-9 / +11 lines)
Lines 33-39 use C4::Overdues; Link Here
33
use C4::Debug;
33
use C4::Debug;
34
# use Data::Dumper;
34
# use Data::Dumper;
35
35
36
my $MAXIMUM_NUMBER_OF_RESERVES = C4::Context->preference("maxreserves");
36
my $maxreserves = C4::Context->preference("maxreserves");
37
my $max_holds_per_record = C4::Context->preference('MaxHoldsPerRecord');
37
38
38
my $query = new CGI;
39
my $query = new CGI;
39
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
40
my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
Lines 289-295 if ( CheckBorrowerDebarred($borrowernumber) ) { Link Here
289
290
290
my @reserves = GetReservesFromBorrowernumber( $borrowernumber );
291
my @reserves = GetReservesFromBorrowernumber( $borrowernumber );
291
$template->param( RESERVES => \@reserves );
292
$template->param( RESERVES => \@reserves );
292
if ( $MAXIMUM_NUMBER_OF_RESERVES && (scalar(@reserves) >= $MAXIMUM_NUMBER_OF_RESERVES) ) {
293
if ( $maxreserves && (scalar(@reserves) >= $maxreserves) ) {
293
    $template->param( message => 1 );
294
    $template->param( message => 1 );
294
    $noreserves = 1;
295
    $noreserves = 1;
295
    $template->param( too_many_reserves => scalar(@reserves));
296
    $template->param( too_many_reserves => scalar(@reserves));
Lines 297-308 if ( $MAXIMUM_NUMBER_OF_RESERVES && (scalar(@reserves) >= $MAXIMUM_NUMBER_OF_RES Link Here
297
foreach my $res (@reserves) {
298
foreach my $res (@reserves) {
298
    foreach my $biblionumber (@biblionumbers) {
299
    foreach my $biblionumber (@biblionumbers) {
299
        if ( $res->{'biblionumber'} == $biblionumber && $res->{'borrowernumber'} == $borrowernumber) {
300
        if ( $res->{'biblionumber'} == $biblionumber && $res->{'borrowernumber'} == $borrowernumber) {
300
#            $template->param( message => 1 );
301
            $biblioDataHash{$biblionumber}->{holds_count}++;
301
#            $noreserves = 1;
302
#            $template->param( already_reserved => 1 );
303
            $biblioDataHash{$biblionumber}->{already_reserved} = 1;
304
        }
302
        }
305
    }
303
    }
304
    
306
}
305
}
307
306
308
unless ($noreserves) {
307
unless ($noreserves) {
Lines 344-350 foreach my $biblioNum (@biblionumbers) { Link Here
344
    $biblioLoopIter{author} = $biblioData->{author};
343
    $biblioLoopIter{author} = $biblioData->{author};
345
    $biblioLoopIter{rank} = $biblioData->{rank};
344
    $biblioLoopIter{rank} = $biblioData->{rank};
346
    $biblioLoopIter{reservecount} = $biblioData->{reservecount};
345
    $biblioLoopIter{reservecount} = $biblioData->{reservecount};
347
    $biblioLoopIter{already_reserved} = $biblioData->{already_reserved};
346
    $biblioLoopIter{holds_count} = $biblioData->{holds_count};
348
347
349
    if (!$itemLevelTypes && $biblioData->{itemtype}) {
348
    if (!$itemLevelTypes && $biblioData->{itemtype}) {
350
        $biblioLoopIter{description} = $itemTypes->{$biblioData->{itemtype}}{description};
349
        $biblioLoopIter{description} = $itemTypes->{$biblioData->{itemtype}}{description};
Lines 471-477 foreach my $biblioNum (@biblionumbers) { Link Here
471
            $policy_holdallowed = 0;
470
            $policy_holdallowed = 0;
472
        }
471
        }
473
472
474
        if (IsAvailableForItemLevelRequest($itemNum) and $policy_holdallowed and CanItemBeReserved($borrowernumber,$itemNum) and ($itemLoopIter->{already_reserved} ne 1)) {
473
        if (IsAvailableForItemLevelRequest($itemNum) and $policy_holdallowed and CanItemBeReserved($borrowernumber,$itemNum) and ($itemLoopIter->{holds_count} < $max_holds_per_record )) {
475
            $itemLoopIter->{available} = 1;
474
            $itemLoopIter->{available} = 1;
476
            $numCopiesAvailable++;
475
            $numCopiesAvailable++;
477
        }
476
        }
Lines 504-509 foreach my $biblioNum (@biblionumbers) { Link Here
504
        $biblioLoopIter{holdable} = undef;
503
        $biblioLoopIter{holdable} = undef;
505
        $anyholdable = undef;
504
        $anyholdable = undef;
506
    }
505
    }
506
    if ($biblioLoopIter{holds_count} >= $max_holds_per_record) {
507
        $biblioLoopIter{holdable} = undef;
508
        $anyholdable = undef;
509
    }
507
    if(not CanBookBeReserved($borrowernumber,$biblioNum)){
510
    if(not CanBookBeReserved($borrowernumber,$biblioNum)){
508
        $biblioLoopIter{holdable} = undef;
511
        $biblioLoopIter{holdable} = undef;
509
        $anyholdable = undef;
512
        $anyholdable = undef;
510
- 

Return to bug 7710