X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FSearch.pm;h=b36c5f85c2d389b0c37794960cee4057334a0830;hb=4792d78c19cb475d676a3224dab2ca1bacf6037f;hp=04ebe3bc4ee3ecd33dd3d1f9f0554f41660e5d7e;hpb=b20c00ee2d678c2cdf49115ebb10f02802ada907;p=srvgit diff --git a/C4/Search.pm b/C4/Search.pm index 04ebe3bc4e..b36c5f85c2 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -1627,9 +1627,9 @@ sub searchResults { my $items_count = scalar(@fields); my $maxitems_pref = C4::Context->preference('maxItemsinSearchResults'); my $maxitems = $maxitems_pref ? $maxitems_pref - 1 : 1; + my @hiddenitems; # hidden itemnumbers based on OpacHiddenItems syspref # loop through every item - my @hiddenitems; foreach my $field (@fields) { my $item; @@ -1639,11 +1639,20 @@ sub searchResults { } $item->{description} = $itemtypes{ $item->{itype} }{description}; - # Hidden items + # OPAC hidden items if ($is_opac) { + # hidden because lost + if ($hidelostitems && $item->{itemlost}) { + $hideatopac_count++; + next; + } + # hidden based on OpacHiddenItems syspref my @hi = C4::Items::GetHiddenItemnumbers($item); - $item->{'hideatopac'} = @hi; - push @hiddenitems, @hi; + if (scalar @hi) { + push @hiddenitems, @hi; + $hideatopac_count++; + next; + } } my $hbranch = C4::Context->preference('HomeOrHoldingBranch') eq 'homebranch' ? 'homebranch' : 'holdingbranch'; @@ -1722,14 +1731,12 @@ sub searchResults { || $item->{itemlost} || $item->{damaged} || $item->{notforloan} > 0 - || $item->{hideatopac} || $reservestatus eq 'Waiting' || ($transfertwhen ne '')) { $wthdrawn_count++ if $item->{wthdrawn}; $itemlost_count++ if $item->{itemlost}; $itemdamaged_count++ if $item->{damaged}; - $hideatopac_count++ if $item->{hideatopac}; $item_in_transit_count++ if $transfertwhen ne ''; $item_onhold_count++ if $reservestatus eq 'Waiting'; $item->{status} = $item->{wthdrawn} . "-" . $item->{itemlost} . "-" . $item->{damaged} . "-" . $item->{notforloan}; @@ -1745,7 +1752,7 @@ sub searchResults { $other_count++; my $key = $prefix . $item->{status}; - foreach (qw(wthdrawn itemlost damaged branchname itemcallnumber hideatopac)) { + foreach (qw(wthdrawn itemlost damaged branchname itemcallnumber)) { $other_items->{$key}->{$_} = $item->{$_}; } $other_items->{$key}->{intransit} = ( $transfertwhen ne '' ) ? 1 : 0; @@ -1761,7 +1768,7 @@ sub searchResults { $can_place_holds = 1; $available_count++; $available_items->{$prefix}->{count}++ if $item->{$hbranch}; - foreach (qw(branchname itemcallnumber hideatopac description)) { + foreach (qw(branchname itemcallnumber description)) { $available_items->{$prefix}->{$_} = $item->{$_}; } $available_items->{$prefix}->{location} = $shelflocations->{ $item->{location} }; @@ -1769,10 +1776,12 @@ sub searchResults { } } } # notforloan, item level and biblioitem level - if ($items_count > 0) { - next if $is_opac && $hideatopac_count >= $items_count; - next if $hidelostitems && $itemlost_count >= $items_count; - } + + # if all items are hidden, do not show the record + if ($items_count > 0 && $hideatopac_count == $items_count) { + next; + } + my ( $availableitemscount, $onloanitemscount, $otheritemscount ); for my $key ( sort keys %$onloan_items ) { (++$onloanitemscount > $maxitems) and last;