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

(-)a/C4/Reserves.pm (-7 / +9 lines)
Lines 24-29 package C4::Reserves; Link Here
24
use Modern::Perl;
24
use Modern::Perl;
25
25
26
use C4::Accounts;
26
use C4::Accounts;
27
use C4::Biblio qw( GetMarcFromKohaField );
27
use C4::Circulation qw( CheckIfIssuedToPatron GetAgeRestriction GetBranchItemRule );
28
use C4::Circulation qw( CheckIfIssuedToPatron GetAgeRestriction GetBranchItemRule );
28
use C4::Context;
29
use C4::Context;
29
use C4::Items qw( CartToShelf get_hostitemnumbers_of );
30
use C4::Items qw( CartToShelf get_hostitemnumbers_of );
Lines 398-404 sub CanItemBeReserved { Link Here
398
399
399
    # we retrieve borrowers and items informations #
400
    # we retrieve borrowers and items informations #
400
    # item->{itype} will come for biblioitems if necessery
401
    # item->{itype} will come for biblioitems if necessery
401
    my $biblio   = $item->biblio;
402
    my $borrower = $patron->unblessed;
402
    my $borrower = $patron->unblessed;
403
403
404
    # If an item is damaged and we don't allow holds on damaged items, we can stop right here
404
    # If an item is damaged and we don't allow holds on damaged items, we can stop right here
Lines 406-415 sub CanItemBeReserved { Link Here
406
      if ( $item->damaged
406
      if ( $item->damaged
407
        && !C4::Context->preference('AllowHoldsOnDamagedItems') );
407
        && !C4::Context->preference('AllowHoldsOnDamagedItems') );
408
408
409
    # Check for the age restriction
409
    if( GetMarcFromKohaField('biblioitems.agerestriction') ){
410
    my ( $ageRestriction, $daysToAgeRestriction ) =
410
        my $biblio = $item->biblio;
411
      C4::Circulation::GetAgeRestriction( $biblio->biblioitem->agerestriction, $borrower );
411
        # Check for the age restriction
412
    return { status => 'ageRestricted' } if $daysToAgeRestriction && $daysToAgeRestriction > 0;
412
        my ( $ageRestriction, $daysToAgeRestriction ) =
413
          C4::Circulation::GetAgeRestriction( $biblio->biblioitem->agerestriction, $borrower );
414
        return { status => 'ageRestricted' } if $daysToAgeRestriction && $daysToAgeRestriction > 0;
415
    }
413
416
414
    # Check that the patron doesn't have an item level hold on this item already
417
    # Check that the patron doesn't have an item level hold on this item already
415
    return { status =>'itemAlreadyOnHold' }
418
    return { status =>'itemAlreadyOnHold' }
Lines 417-423 sub CanItemBeReserved { Link Here
417
420
418
    # Check that patron have not checked out this biblio (if AllowHoldsOnPatronsPossessions set)
421
    # Check that patron have not checked out this biblio (if AllowHoldsOnPatronsPossessions set)
419
    if ( !C4::Context->preference('AllowHoldsOnPatronsPossessions')
422
    if ( !C4::Context->preference('AllowHoldsOnPatronsPossessions')
420
        && C4::Circulation::CheckIfIssuedToPatron( $patron->borrowernumber, $biblio->biblionumber ) ) {
423
        && C4::Circulation::CheckIfIssuedToPatron( $patron->borrowernumber, $item->biblionumber ) ) {
421
        return { status =>'alreadypossession' };
424
        return { status =>'alreadypossession' };
422
    }
425
    }
423
426
424
- 

Return to bug 29517