| Lines 292-312
          sub filter_by_has_recalls {
      
      
        Link Here | 
        
          | 292 | sub filter_by_available { | 292 | sub filter_by_available { | 
        
          | 293 |     my ($self) = @_; | 293 |     my ($self) = @_; | 
        
          | 294 |  | 294 |  | 
          
            
              | 295 |     my @all_itemnumbers       = $self->get_column('itemnumber'); | 295 |     my @all_itemnumbers = $self->get_column('itemnumber'); | 
            
              | 296 |     my @item_types_notforloan = Koha::ItemTypes->search( { notforloan => { '!=' => 0 } } )->get_column('itemtype'); |  |  | 
        
          | 297 |     my @not_available_itemnumbers; | 296 |     my @not_available_itemnumbers; | 
        
          | 298 |     push @not_available_itemnumbers, $self->filter_by_checked_out->get_column('itemnumber'); | 297 |     push @not_available_itemnumbers, $self->filter_by_checked_out->get_column('itemnumber'); | 
        
          | 299 |     push @not_available_itemnumbers, $self->filter_by_in_transit->get_column('itemnumber'); | 298 |     push @not_available_itemnumbers, $self->filter_by_in_transit->get_column('itemnumber'); | 
          
            
              | 300 |     push @not_available_itemnumbers, $self->search( | 299 |  | 
            
              | 301 |         { |  |  | 
            
              | 302 |             itemlost => 0, withdrawn => 0, damaged => 0, notforloan => 0, | 
            
              | 303 |             itype => { -not_in => \@item_types_notforloan }, restricted => 0, | 
            
              | 304 |         } | 
            
              | 305 |     )->get_column('itemnumber'); | 
        
          | 306 |     push @not_available_itemnumbers, $self->filter_by_has_holds->get_column('itemnumber'); | 300 |     push @not_available_itemnumbers, $self->filter_by_has_holds->get_column('itemnumber'); | 
        
          | 307 |     push @not_available_itemnumbers, $self->filter_by_has_recalls->get_column('itemnumber'); | 301 |     push @not_available_itemnumbers, $self->filter_by_has_recalls->get_column('itemnumber'); | 
        
          | 308 |  | 302 |  | 
          
            
              | 309 |     return Koha::Items->search( { 'me.itemnumber' => [ array_minus @all_itemnumbers, @not_available_itemnumbers ] } ); | 303 |     my @item_types_notforloan = Koha::ItemTypes->search( { notforloan => { '!=' => 0 } } )->get_column('itemtype'); | 
            
              |  |  | 304 |     return Koha::Items->search( | 
            
              | 305 |         { | 
            
              | 306 |             'me.itemnumber' => [ array_minus @all_itemnumbers, @not_available_itemnumbers ], | 
            
              | 307 |             itemlost        => 0, | 
            
              | 308 |             withdrawn       => 0, | 
            
              | 309 |             damaged         => 0, | 
            
              | 310 |             notforloan      => { '<='    => 0 }, | 
            
              | 311 |             'me.itype'      => { -not_in => \@item_types_notforloan }, | 
            
              | 312 |             restricted      => [ { '!=' => 0 }, undef ], | 
            
              | 313 |         } | 
            
              | 314 |     ); | 
        
          | 310 | } | 315 | } | 
        
          | 311 |  | 316 |  | 
        
          | 312 | =head3 move_to_biblio | 317 | =head3 move_to_biblio | 
  
    | Lines 601-607
          sub search {
      
      
        Link Here | 
        
          | 601 |         if ( $status eq 'not_for_loan' ) { | 606 |         if ( $status eq 'not_for_loan' ) { | 
        
          | 602 |             my @item_types_notforloan = | 607 |             my @item_types_notforloan = | 
        
          | 603 |                 Koha::ItemTypes->search( { notforloan => { '!=' => 0 } } )->get_column('itemtype'); | 608 |                 Koha::ItemTypes->search( { notforloan => { '!=' => 0 } } )->get_column('itemtype'); | 
          
            
              | 604 |             $self = $self->search( [ { notforloan => { '!=' => 0 } }, { 'me.itype' => \@item_types_notforloan } ] ); | 609 |             $self = $self->search( [ { notforloan => { '<=' => 0 } }, { 'me.itype' => \@item_types_notforloan } ] ); | 
        
          | 605 |         } | 610 |         } | 
        
          | 606 |         if ( $status eq 'on_hold' ) { | 611 |         if ( $status eq 'on_hold' ) { | 
        
          | 607 |             $self = $self->filter_by_has_holds; | 612 |             $self = $self->filter_by_has_holds; | 
  
    | Lines 615-621
          sub search {
      
      
        Link Here | 
        
          | 615 |         } | 620 |         } | 
        
          | 616 |  | 621 |  | 
        
          | 617 |         if ( $status eq 'restricted' ) { | 622 |         if ( $status eq 'restricted' ) { | 
          
            
              | 618 |             $self = $self->search( { restricted => { '!=' => 0 } } ); | 623 |             $self = $self->search( { restricted => [ { '!=' => 0 }, undef ] } ); | 
        
          | 619 |         } | 624 |         } | 
        
          | 620 |     } | 625 |     } | 
        
          | 621 |  | 626 |  | 
            
              | 622 | -  |  |  |