| Lines 290-309
          sub filter_by_available {
      
      
        Link Here | 
        
          | 290 |     my ($self) = @_; | 290 |     my ($self) = @_; | 
        
          | 291 |  | 291 |  | 
        
          | 292 |     my @all_itemnumbers       = $self->get_column('itemnumber'); | 292 |     my @all_itemnumbers       = $self->get_column('itemnumber'); | 
            
              | 293 |     my @item_types_notforloan = Koha::ItemTypes->search( { notforloan => { '!=' => 0 } } )->get_column('itemtype'); |  |  | 
        
          | 294 |     my @not_available_itemnumbers; | 293 |     my @not_available_itemnumbers; | 
        
          | 295 |     push @not_available_itemnumbers, $self->filter_by_checked_out->get_column('itemnumber'); | 294 |     push @not_available_itemnumbers, $self->filter_by_checked_out->get_column('itemnumber'); | 
        
          | 296 |     push @not_available_itemnumbers, $self->filter_by_in_transit->get_column('itemnumber'); | 295 |     push @not_available_itemnumbers, $self->filter_by_in_transit->get_column('itemnumber'); | 
          
            
              | 297 |     push @not_available_itemnumbers, $self->search( | 296 |  | 
            
              | 298 |         { |  |  | 
            
              | 299 |             itemlost => 0, withdrawn => 0, damaged => 0, notforloan => 0, | 
            
              | 300 |             itype => { -not_in => \@item_types_notforloan }, restricted => 0, | 
            
              | 301 |         } | 
            
              | 302 |     )->get_column('itemnumber'); | 
        
          | 303 |     push @not_available_itemnumbers, $self->filter_by_has_holds->get_column('itemnumber'); | 297 |     push @not_available_itemnumbers, $self->filter_by_has_holds->get_column('itemnumber'); | 
        
          | 304 |     push @not_available_itemnumbers, $self->filter_by_has_recalls->get_column('itemnumber'); | 298 |     push @not_available_itemnumbers, $self->filter_by_has_recalls->get_column('itemnumber'); | 
        
          | 305 |  | 299 |  | 
          
            
              | 306 |     return Koha::Items->search( { 'me.itemnumber' => [ array_minus @all_itemnumbers, @not_available_itemnumbers ] } ); | 300 |     my @item_types_notforloan = Koha::ItemTypes->search( { notforloan => { '!=' => 0 } } )->get_column('itemtype'); | 
            
              |  |  | 301 |     return Koha::Items->search( | 
            
              | 302 |         { | 
            
              | 303 |             'me.itemnumber' => [ array_minus @all_itemnumbers, @not_available_itemnumbers ], | 
            
              | 304 |             itemlost        => 0, | 
            
              | 305 |             withdrawn       => 0, | 
            
              | 306 |             damaged         => 0, | 
            
              | 307 |             notforloan      => { '<='    => 0 }, | 
            
              | 308 |             'me.itype'      => { -not_in => \@item_types_notforloan }, | 
            
              | 309 |             restricted      => [ { '!=' => 0 }, undef ], | 
            
              | 310 |         } | 
            
              | 311 |     ); | 
        
          | 307 | } | 312 | } | 
        
          | 308 |  | 313 |  | 
        
          | 309 |  | 314 |  | 
  
    | Lines 594-600
          sub search {
      
      
        Link Here | 
        
          | 594 |         } | 599 |         } | 
        
          | 595 |         if ( $status eq 'not_for_loan' ) { | 600 |         if ( $status eq 'not_for_loan' ) { | 
        
          | 596 |             my @item_types_notforloan = Koha::ItemTypes->search( { notforloan => { '!=' => 0 } } )->get_column('itemtype'); | 601 |             my @item_types_notforloan = Koha::ItemTypes->search( { notforloan => { '!=' => 0 } } )->get_column('itemtype'); | 
          
            
              | 597 |             $self = $self->search( [ { notforloan => { '!=' => 0 } }, { 'me.itype' => \@item_types_notforloan } ] ); | 602 |             $self = $self->search( [ { notforloan => { '<=' => 0 } }, { 'me.itype' => \@item_types_notforloan } ] ); | 
        
          | 598 |         } | 603 |         } | 
        
          | 599 |         if ( $status eq 'on_hold' ) { | 604 |         if ( $status eq 'on_hold' ) { | 
        
          | 600 |             $self = $self->filter_by_has_holds; | 605 |             $self = $self->filter_by_has_holds; | 
  
    | Lines 608-614
          sub search {
      
      
        Link Here | 
        
          | 608 |         } | 613 |         } | 
        
          | 609 |  | 614 |  | 
        
          | 610 |         if ( $status eq 'restricted' ) { | 615 |         if ( $status eq 'restricted' ) { | 
          
            
              | 611 |             $self = $self->search( { restricted => { '!=' => 0 } } ); | 616 |             $self = $self->search( { restricted => [ { '!=' => 0 }, undef ] } ); | 
        
          | 612 |         } | 617 |         } | 
        
          | 613 |     } | 618 |     } | 
        
          | 614 |  | 619 |  | 
            
              | 615 | -  |  |  |