Merge remote branch 'kc/new/bug_3670' into kcmaster
[koha.git] / virtualshelves / addbybiblionumber.pl
index b636c12..a0d9fdd 100755 (executable)
@@ -59,6 +59,7 @@
 =cut
 
 use strict;
+#use warnings; FIXME - Bug 2505
 use C4::Biblio;
 use CGI;
 use C4::Output;
@@ -76,7 +77,7 @@ sub AddBibliosToShelf {
         @biblionumber = (split /\//,$biblionumber[0]);
     }
     for my $bib (@biblionumber){
-        AddToShelfFromBiblio($bib, $shelfnumber);
+        AddToShelf($bib, $shelfnumber);
     }
 }
 
@@ -152,18 +153,17 @@ if ( $shelfnumber || ( $shelfnumber == -1 ) ) {    # the shelf already exist.
 }
 else {    # this shelf doesn't already exist.
     my $limit = 10;
-    my ($shelflist) = GetRecentShelves(1, $limit, $loggedinuser);
+    my ($shelflist);
     my @shelvesloop;
     my %shelvesloop;
-    for my $shelf ( @{ $shelflist->[0] } ) {
-        push( @shelvesloop, $shelf->{shelfnumber} );
-        $shelvesloop{$shelf->{shelfnumber}} = $shelf->{shelfname};
-    }
-    # then open shelves...
-    ($shelflist) = GetRecentShelves(3, $limit, undef);
-    for my $shelf ( @{ $shelflist->[0] } ) {
-        push( @shelvesloop, $shelf->{shelfnumber} );
-        $shelvesloop{$shelf->{shelfnumber}} = $shelf->{shelfname};
+
+    #grab each type of shelf, open (type 3) should not be limited by user.
+    foreach my $shelftype (1,2,3) {
+           my ($shelflist) = GetRecentShelves($shelftype, $limit, $shelftype == 3 ? undef : $loggedinuser);
+           for my $shelf (@{ $shelflist->[0] }) {
+                   push(@shelvesloop, $shelf->{shelfnumber});
+                   $shelvesloop{$shelf->{shelfnumber}} = $shelf->{shelfname};
+           }
     }
 
     if(@shelvesloop gt 0){