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 607-613
sub search {
Link Here
|
607 |
if ( $status eq 'not_for_loan' ) { |
612 |
if ( $status eq 'not_for_loan' ) { |
608 |
my @item_types_notforloan = |
613 |
my @item_types_notforloan = |
609 |
Koha::ItemTypes->search( { notforloan => { '!=' => 0 } } )->get_column('itemtype'); |
614 |
Koha::ItemTypes->search( { notforloan => { '!=' => 0 } } )->get_column('itemtype'); |
610 |
$self = $self->search( [ { notforloan => { '!=' => 0 } }, { 'me.itype' => \@item_types_notforloan } ] ); |
615 |
$self = $self->search( [ { notforloan => { '<=' => 0 } }, { 'me.itype' => \@item_types_notforloan } ] ); |
611 |
} |
616 |
} |
612 |
if ( $status eq 'on_hold' ) { |
617 |
if ( $status eq 'on_hold' ) { |
613 |
$self = $self->filter_by_has_holds; |
618 |
$self = $self->filter_by_has_holds; |
Lines 621-627
sub search {
Link Here
|
621 |
} |
626 |
} |
622 |
|
627 |
|
623 |
if ( $status eq 'restricted' ) { |
628 |
if ( $status eq 'restricted' ) { |
624 |
$self = $self->search( { restricted => { '!=' => 0 } } ); |
629 |
$self = $self->search( { restricted => [ { '!=' => 0 }, undef ] } ); |
625 |
} |
630 |
} |
626 |
} |
631 |
} |
627 |
|
632 |
|
628 |
- |
|
|