@@ -, +, @@ --- C4/Items.pm | 21 --------------------- labels/label-item-search.pl | 1 - reserve/request.pl | 21 ++++++++++++--------- 3 files changed, 12 insertions(+), 31 deletions(-) --- a/C4/Items.pm +++ a/C4/Items.pm @@ -70,7 +70,6 @@ BEGIN { GetLostItems GetItemsForInventory GetItemsCount - GetItemInfosOf GetItemsByBiblioitemnumber GetItemsInfo GetItemsLocationInfo @@ -947,26 +946,6 @@ sub GetItemsCount { return ($count); } -=head2 GetItemInfosOf - - GetItemInfosOf(@itemnumbers); - -=cut - -sub GetItemInfosOf { - my @itemnumbers = @_; - - my $itemnumber_values = @itemnumbers ? join( ',', @itemnumbers ) : "''"; - - my $dbh = C4::Context->dbh; - my $query = " - SELECT * - FROM items - WHERE itemnumber IN ($itemnumber_values) - "; - return $dbh->selectall_hashref($query, 'itemnumber'); -} - =head2 GetItemsByBiblioitemnumber GetItemsByBiblioitemnumber($biblioitemnumber); --- a/labels/label-item-search.pl +++ a/labels/label-item-search.pl @@ -30,7 +30,6 @@ use C4::Output qw(output_html_with_http_headers); use C4::Context; use C4::Search qw(SimpleSearch); use C4::Biblio qw(TransformMarcToKoha); -use C4::Items qw(GetItemInfosOf); use C4::Koha qw(GetItemTypes); use C4::Creators::Lib qw(html_table); use C4::Debug; --- a/reserve/request.pl +++ a/reserve/request.pl @@ -44,6 +44,7 @@ use C4::Members; use C4::Search; # enabled_staff_search_views use Koha::DateUtils; use Koha::Holds; +use Koha::Items; use Koha::Libraries; use Koha::Patrons; @@ -292,28 +293,30 @@ foreach my $biblionumber (@biblionumbers) { my %itemnumbers_of_biblioitem; - ## $items is array of 'item' table numbers - my $items = Koha::Items->search({ biblionumber => $biblionumber }); - my @itemnumbers = $items->get_column('itemnumber'); my @hostitems = get_hostitemnumbers_of($biblionumber); + my @itemnumbers; if (@hostitems){ $template->param('hostitemsflag' => 1); push(@itemnumbers, @hostitems); } - if (!@itemnumbers) { + my $items = Koha::Items->search({ -or => { biblionumber => $biblionumber, itemnumber => { in => \@itemnumbers } } }); + + unless ( $items->count ) { + # FIXME Then why do we continue? $template->param('noitems' => 1); $biblioloopiter{noitems} = 1; } - ## Hash of item number to 'item' table fields - my $iteminfos_of = GetItemInfosOf(@itemnumbers); - ## Here we go backwards again to create hash of biblioitemnumber to itemnumbers, ## when by definition all of the itemnumber have the same biblioitemnumber - foreach my $itemnumber (@itemnumbers) { - my $biblioitemnumber = $iteminfos_of->{$itemnumber}->{biblioitemnumber}; + my ( $itemnumbers_of_biblioitem, $iteminfos_of); + while ( my $item = $items->next ) { + $item = $item->unblessed; + my $biblioitemnumber = $item->{biblioitemnumber}; + my $itemnumber = $item->{itemnumber}; push( @{ $itemnumbers_of_biblioitem{$biblioitemnumber} }, $itemnumber ); + $iteminfos_of->{$itemnumber} = $item; } ## Should be same as biblionumber --