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