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