Bug Fixing Merge and addbybiblionumber.pl
authorHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Fri, 28 Aug 2009 21:47:38 +0000 (23:47 +0200)
committerHenri-Damien LAURENT <henridamien.laurent@biblibre.com>
Wed, 30 Sep 2009 09:30:10 +0000 (11:30 +0200)
C4/VirtualShelves.pm
koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tmpl
virtualshelves/addbybiblionumber.pl

index 06bd3a3..9488555 100644 (file)
@@ -604,6 +604,26 @@ sub _shelf_count ($$) {
        return $total;
 }
 
+sub _biblionumber_sth {
+    my ($shelf) = @_;
+    my $query = 'select biblionumber from virtualshelfcontents where shelfnumber = ?';
+    my $dbh = C4::Context->dbh;
+    my $sth = $dbh->prepare($query)
+       or die $dbh->errstr;
+    $sth->execute( $shelf )
+       or die $sth->errstr;
+    $sth;
+}
+
+sub each_biblionumbers (&$) {
+    my ($code,$shelf) = @_;
+    my $ref =  _biblionumber_sth($shelf)->fetchall_arrayref;
+    map {
+       $_=$$_[0];
+       $code->();
+    } @$ref;
+}
+
 1;
 
 __END__
index 5c9687c..5d037a2 100644 (file)
@@ -121,7 +121,7 @@ function placeHold () {
     <!-- TMPL_IF NAME="itemsloop" -->
 
        <form action="merge.pl" method="get">
-               <input type="hidden" name="shelf" value="<!-- TMPL_VAR NAME="shelf" -->" />
+               <input type="hidden" name="shelf" value="<!-- TMPL_VAR NAME="shelfnumber" -->" />
                <input type="submit" class="editshelf" value="Merge" />
        </form>
        <form action="/cgi-bin/koha/virtualshelves/shelves.pl" method="post" class="checkboxed">
index ee199ec..623d1d6 100755 (executable)
@@ -63,7 +63,6 @@ use C4::Circulation;
 use C4::Auth;
 
 #use it only to debug !
-use CGI::Carp qw/fatalsToBrowser/;
 use warnings;
 
 sub AddBibliosToShelf {
@@ -81,11 +80,11 @@ sub AddBibliosToShelf {
 my $query           = new CGI;
 
 # If set, then single item case.
-my $biblionumber    = $query->param('biblionumber');
+my @biblionumber    = $query->param('biblionumber');
 
 # If set, then multiple item case.
-my $biblionumbers   = $query->param('biblionumbers');
 
+my $biblionumbers   = $query->param('biblionumbers');
 my $shelfnumber     = $query->param('shelfnumber');
 my $newvirtualshelf = $query->param('newvirtualshelf');
 my $category        = $query->param('category');
@@ -151,7 +150,7 @@ else {    # this shelf doesn't already exist.
         $shelvesloop{$shelf->{shelfnumber}} = $shelf->{shelfname};
     }
     # then open shelves...
-    my ($shelflist) = GetRecentShelves(3, $limit, undef);
+    ($shelflist) = GetRecentShelves(3, $limit, undef);
     for my $shelf ( @{ $shelflist->[0] } ) {
         push( @shelvesloop, $shelf->{shelfnumber} );
         $shelvesloop{$shelf->{shelfnumber}} = $shelf->{shelfname};