Merge remote-tracking branch 'origin/new/bug_7016'
authorPaul Poulain <paul.poulain@biblibre.com>
Wed, 18 Apr 2012 14:54:44 +0000 (16:54 +0200)
committerPaul Poulain <paul.poulain@biblibre.com>
Wed, 18 Apr 2012 14:54:44 +0000 (16:54 +0200)
C4/Items.pm
C4/Reserves.pm

index 4790091..7e98bb5 100644 (file)
@@ -66,6 +66,7 @@ BEGIN {
         GetItemsInfo
        GetItemsLocationInfo
        GetHostItemsInfo
+        GetItemnumbersForBiblio
         get_itemnumbers_of
        get_hostitemnumbers_of
         GetItemnumberFromBarcode
@@ -1495,6 +1496,26 @@ sub  GetLastAcquisitions {
        return @results;
 }
 
+=head2 GetItemnumbersForBiblio
+
+  my $itemnumbers = GetItemnumbersForBiblio($biblionumber);
+
+Given a single biblionumber, return an arrayref 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);
index 930d524..c4b2c66 100644 (file)
@@ -391,14 +391,14 @@ 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){
-       push (@items,@hostitems);
+    push (@$items,@hostitems);
     }
 
-    foreach my $item (@items){
+    foreach my $item (@$items){
         return 1 if CanItemBeReserved($borrowernumber, $item);
     }
     return 0;