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