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

(-)a/Koha/Items.pm (-11 / +15 lines)
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
- 

Return to bug 37334