From 14a78a8c5201ad2e4306ed0202007820e1409bb3 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Fri, 6 Jan 2017 13:22:07 +0100 Subject: [PATCH] Bug 17736: [QA Follow-up] We do not need GetItemHolds in acqui The solution of Jonathan can be applied in two other cases, effectively making GetItemHolds obsolete. Test plan: [1] Git grep on GetItemHolds [2] Add an order, place a hold, delete order. [3] Add an order, receive, place hold, delete order. Signed-off-by: Marcel de Rooy Signed-off-by: Martin Renvoize Signed-off-by: Kyle M Hall --- C4/Items.pm | 22 ---------------------- acqui/basket.pl | 9 ++------- acqui/parcel.pl | 8 +------- 3 files changed, 3 insertions(+), 36 deletions(-) diff --git a/C4/Items.pm b/C4/Items.pm index d7b2600c8f..dda02a33ee 100644 --- a/C4/Items.pm +++ b/C4/Items.pm @@ -91,7 +91,6 @@ BEGIN { ShelfToCart GetAnalyticsCount - GetItemHolds SearchItemsByField SearchItems @@ -2564,27 +2563,6 @@ sub GetAnalyticsCount { return ($result); } -=head2 GetItemHolds - - $holds = &GetItemHolds($biblionumber, $itemnumber); - -This function return the count of holds with $biblionumber and $itemnumber - -=cut - -sub GetItemHolds { - my ($biblionumber, $itemnumber) = @_; - my $holds; - my $dbh = C4::Context->dbh; - my $query = "SELECT count(*) - FROM reserves - WHERE biblionumber=? AND itemnumber=?"; - my $sth = $dbh->prepare($query); - $sth->execute($biblionumber, $itemnumber); - $holds = $sth->fetchrow; - return $holds; -} - =head2 SearchItemsByField my $items = SearchItemsByField($field, $value); diff --git a/acqui/basket.pl b/acqui/basket.pl index 4940821b13..0677e3391a 100755 --- a/acqui/basket.pl +++ b/acqui/basket.pl @@ -470,13 +470,8 @@ sub get_order_infos { my $itemcount = $biblio->items->count; my $holds_count = $biblio->holds->count; my @items = GetItemnumbersFromOrder( $ordernumber ); - my $itemholds; - foreach my $item (@items){ - my $nb = GetItemHolds($biblionumber, $item); - if ($nb){ - $itemholds += $nb; - } - } + my $itemholds = $biblio ? $biblio->holds->search({ itemnumber => { -in => \@items } })->count : 0; + # if the biblio is not in other orders and if there is no items elsewhere and no subscriptions and no holds we can then show the link "Delete order and Biblio" see bug 5680 $line{can_del_bib} = 1 if $countbiblio <= 1 && $itemcount == scalar @items && !(@subscriptions) && !($holds_count); $line{items} = ($itemcount) - (scalar @items); diff --git a/acqui/parcel.pl b/acqui/parcel.pl index fbd376f24e..f89261f02f 100755 --- a/acqui/parcel.pl +++ b/acqui/parcel.pl @@ -245,13 +245,7 @@ unless( defined $invoice->{closedate} ) { my $itemcount = $biblio->items->count; my $holds_count = $biblio->holds->count; my @items = GetItemnumbersFromOrder( $ordernumber ); - my $itemholds; - foreach my $item (@items){ - my $nb = GetItemHolds($biblionumber, $item); - if ($nb){ - $itemholds += $nb; - } - } + my $itemholds = $biblio ? $biblio->holds->search({ itemnumber => { -in => \@items } })->count : 0; my $suggestion = GetSuggestionInfoFromBiblionumber($line{biblionumber}); $line{suggestionid} = $suggestion->{suggestionid}; -- 2.39.5