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

(-)a/C4/Reserves.pm (+29 lines)
Lines 324-330 sub CanBookBeReserved{ Link Here
324
        return { status =>'alreadypossession' };
324
        return { status =>'alreadypossession' };
325
    }
325
    }
326
326
327
    my $patron = Koha::Patrons->find($borrowernumber);
328
    my $holds = $patron->holds;
329
330
    # Check if borrower has reached the maximum number of holds allowed
331
    my $maxreserves = C4::Context->preference('maxreserves');
332
    if ($maxreserves && $holds->count >= $maxreserves) {
333
        return { status => 'tooManyReserves' };
334
    }
335
327
    my @itemnumbers = Koha::Items->search({ biblionumber => $biblionumber})->get_column("itemnumber");
336
    my @itemnumbers = Koha::Items->search({ biblionumber => $biblionumber})->get_column("itemnumber");
337
328
    #get items linked via host records
338
    #get items linked via host records
329
    my @hostitems = get_hostitemnumbers_of($biblionumber);
339
    my @hostitems = get_hostitemnumbers_of($biblionumber);
330
    if (@hostitems){
340
    if (@hostitems){
Lines 359-364 sub CanBookBeReserved{ Link Here
359
         { status => libraryNotPickupLocation },   if given branchcode is not configured to be a pickup location
369
         { status => libraryNotPickupLocation },   if given branchcode is not configured to be a pickup location
360
         { status => cannotBeTransferred }, if branch transfer limit applies on given item and branchcode
370
         { status => cannotBeTransferred }, if branch transfer limit applies on given item and branchcode
361
         { status => pickupNotInHoldGroup }, pickup location is not in hold group, and pickup locations are only allowed from hold groups.
371
         { status => pickupNotInHoldGroup }, pickup location is not in hold group, and pickup locations are only allowed from hold groups.
372
         { status => alreadyReserved }, if the borrower has already reserved this item.
362
373
363
=cut
374
=cut
364
375
Lines 392-401 sub CanItemBeReserved { Link Here
392
    return { status =>'itemAlreadyOnHold' }
403
    return { status =>'itemAlreadyOnHold' }
393
      if Koha::Holds->search( { borrowernumber => $borrowernumber, itemnumber => $itemnumber } )->count();
404
      if Koha::Holds->search( { borrowernumber => $borrowernumber, itemnumber => $itemnumber } )->count();
394
405
406
<<<<<<< HEAD
395
    # Check that patron have not checked out this biblio (if AllowHoldsOnPatronsPossessions set)
407
    # Check that patron have not checked out this biblio (if AllowHoldsOnPatronsPossessions set)
396
    if ( !C4::Context->preference('AllowHoldsOnPatronsPossessions')
408
    if ( !C4::Context->preference('AllowHoldsOnPatronsPossessions')
397
        && C4::Circulation::CheckIfIssuedToPatron( $patron->borrowernumber, $biblio->biblionumber ) ) {
409
        && C4::Circulation::CheckIfIssuedToPatron( $patron->borrowernumber, $biblio->biblionumber ) ) {
398
        return { status =>'alreadypossession' };
410
        return { status =>'alreadypossession' };
411
=======
412
    # Check if borrower has reached the maximum number of holds allowed
413
    my $maxreserves = C4::Context->preference('maxreserves');
414
    my $holds = Koha::Holds->search( { borrowernumber => $borrowernumber } );
415
    if ($maxreserves && $holds->count >= $maxreserves) {
416
        return { status => 'tooManyReserves', limit => $maxreserves };
417
>>>>>>> Bug 11999: Add maxreserves check in CanBookBeReserved and CanItemBeReserved
399
    }
418
    }
400
419
401
    my $controlbranch = C4::Context->preference('ReservesControlBranch');
420
    my $controlbranch = C4::Context->preference('ReservesControlBranch');
Lines 432-437 sub CanItemBeReserved { Link Here
432
        $ruleitemtype = undef;
451
        $ruleitemtype = undef;
433
    }
452
    }
434
453
454
<<<<<<< HEAD
435
    my $search_params = {
455
    my $search_params = {
436
        borrowernumber => $borrowernumber,
456
        borrowernumber => $borrowernumber,
437
        biblionumber   => $item->biblionumber,
457
        biblionumber   => $item->biblionumber,
Lines 441-446 sub CanItemBeReserved { Link Here
441
    my $holds = Koha::Holds->search($search_params);
461
    my $holds = Koha::Holds->search($search_params);
442
    if (   defined $holds_per_record && $holds_per_record ne ''
462
    if (   defined $holds_per_record && $holds_per_record ne ''
443
        && $holds->count() >= $holds_per_record ) {
463
        && $holds->count() >= $holds_per_record ) {
464
=======
465
    $holds = Koha::Holds->search(
466
        {
467
            borrowernumber => $borrowernumber,
468
            biblionumber   => $item->biblionumber,
469
        }
470
    );
471
    if ( $holds->count() >= $holds_per_record ) {
472
>>>>>>> Bug 11999: Add maxreserves check in CanBookBeReserved and CanItemBeReserved
444
        return { status => "tooManyHoldsForThisRecord", limit => $holds_per_record };
473
        return { status => "tooManyHoldsForThisRecord", limit => $holds_per_record };
445
    }
474
    }
446
475
(-)a/reserve/request.pl (-2 / +3 lines)
Lines 310-316 foreach my $biblionumber (@biblionumbers) { Link Here
310
                $exceeded_holds_per_record = 1;
310
                $exceeded_holds_per_record = 1;
311
                $biblioloopiter{ $canReserve->{status} } = 1;
311
                $biblioloopiter{ $canReserve->{status} } = 1;
312
            }
312
            }
313
            elsif ( $canReserve->{status} eq 'ageRestricted' ) {
313
            elsif ( grep { $canReserve->{status} eq $_ }
314
                (qw(ageRestricted alreadyReserved none_available)) )
315
            {
314
                $template->param( $canReserve->{status} => 1 );
316
                $template->param( $canReserve->{status} => 1 );
315
                $biblioloopiter{ $canReserve->{status} } = 1;
317
                $biblioloopiter{ $canReserve->{status} } = 1;
316
            }
318
            }
317
- 

Return to bug 11999