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

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

Return to bug 37334