From: Ian Walls Date: Fri, 6 Jan 2012 14:53:49 +0000 (-0500) Subject: Bug 7016 Followup: Add new GetItemnumberForBiblio subroutine X-Git-Tag: v3.08.00~36^2~1 X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=commitdiff_plain;h=f84671dce925ef0f5127073520d35b480613e3c1;p=koha_gimpoz Bug 7016 Followup: Add new GetItemnumberForBiblio subroutine Adds a new subroutine in C4::Items, GetItemnumbersForBiblio, which takes a single biblionumber, and returns an array of all the corresponding itemnumbers. This patch also replaces the usage of get_itemnumbers_of in C4::Reserves::CanBookBeReserved with this new subroutine, as the output is more consistent with what we were lookng for (this is what fixes the bug issue). Signed-off-by: Galen Charlton --- diff --git a/C4/Items.pm b/C4/Items.pm index 4915884afd..59eaa69636 100644 --- a/C4/Items.pm +++ b/C4/Items.pm @@ -70,6 +70,7 @@ BEGIN { GetItemsInfo GetItemsLocationInfo GetHostItemsInfo + GetItemnumbersForBiblio get_itemnumbers_of get_hostitemnumbers_of GetItemnumberFromBarcode @@ -1497,6 +1498,26 @@ sub GetLastAcquisitions { return @results; } +=head2 GetItemnumberForBiblio + + my @itemnumbers = GetItemnumbersForBiblio($biblionumber); + +Given a single biblionumber, return an array of all the corresponding itemnumbers + +=cut + +sub GetItemnumbersForBiblio { + my $biblionumber = shift; + my @items; + my $dbh = C4::Context->dbh; + my $sth = $dbh->prepare("SELECT itemnumber FROM items WHERE biblionumber = ?"); + $sth->execute($biblionumber); + while (my $result = $sth->fetchrow_hashref) { + push @items, $result->{'itemnumber'}; + } + return \@items; +} + =head2 get_itemnumbers_of my @itemnumbers_of = get_itemnumbers_of(@biblionumbers); diff --git a/C4/Reserves.pm b/C4/Reserves.pm index f12c23f009..2b915670c5 100644 --- a/C4/Reserves.pm +++ b/C4/Reserves.pm @@ -383,7 +383,7 @@ sub GetReservesFromBorrowernumber { sub CanBookBeReserved{ my ($borrowernumber, $biblionumber) = @_; - my @items = get_itemnumbers_of($biblionumber); + my @items = GetItemnumbersForBiblio($biblionumber); #get items linked via host records my @hostitems = get_hostitemnumbers_of($biblionumber); if (@hostitems){