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