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 |
- |
|
|