cleanup of opac-search.pl, synch with search.pl, etc.
[koha_fer] / circ / pendingreserves.pl
index 76ad768..c7a8ee2 100755 (executable)
@@ -25,6 +25,12 @@ use CGI;
 use C4::Auth;
 use C4::Dates qw/format_date format_date_in_iso/;
 
+use vars qw($debug);
+
+BEGIN {
+    $debug = $ENV{DEBUG} || 0;
+}
+
 my $input = new CGI;
 my $order = $input->param('order');
 my $startdate=$input->param('from');
@@ -64,8 +70,7 @@ my $todaysdate =
 
 my $dbh    = C4::Context->dbh;
 my ($sqlorderby, $sqldatewhere) = ("","");
-warn format_date_in_iso($startdate);
-warn format_date_in_iso($enddate);
+$debug and warn format_date_in_iso($startdate) . "\n" . format_date_in_iso($enddate);
 $sqldatewhere .= " AND reservedate >= " . $dbh->quote(format_date_in_iso($startdate))  if ($startdate) ;
 $sqldatewhere .= " AND reservedate <= " . $dbh->quote(format_date_in_iso($enddate))  if ($enddate) ;
 
@@ -102,7 +107,8 @@ my $strsth =
  LEFT JOIN biblio ON reserves.biblionumber=biblio.biblionumber
  WHERE isnull(cancellationdate)
  $sqldatewhere
- AND reserves.found is NULL ";
+ AND reserves.found is NULL 
+ AND reserves.itemnumber is NULL";
 
 if (C4::Context->preference('IndependantBranches')){
        $strsth .= " AND items.holdingbranch=? ";
@@ -149,6 +155,46 @@ while ( my $data = $sth->fetchrow_hashref ) {
 }
 
 $sth->finish;
+$strsth=~ s/AND reserves.itemnumber is NULL/AND reserves.itemnumber is NOT NULL/;
+$strsth=~ s/LEFT JOIN items ON items.biblionumber=reserves.biblionumber/LEFT JOIN items ON items.biblionumber=reserves.itemnumber/;
+$sth = $dbh->prepare($strsth);                                                                                                                          
+if (C4::Context->preference('IndependantBranches')){
+       $sth->execute(C4::Context->userenv->{'branch'});
+}     
+else {
+       $sth->execute(); 
+}              
+while ( my $data = $sth->fetchrow_hashref ) {
+    $this=$data->{biblionumber}.":".$data->{borrowernumber};
+    my @itemlist;
+    push(
+        @reservedata,
+        {
+            reservedate      => $previous eq $this?"":format_date( $data->{reservedate} ),
+            priority         => $previous eq $this?"":$data->{priority},
+            name             => $previous eq $this?"":$data->{borrower},
+            title            => $previous eq $this?"":$data->{title},
+            author           => $previous eq $this?"":$data->{author},
+            borrowernumber   => $previous eq $this?"":$data->{borrowernumber},
+            itemnum          => $previous eq $this?"":$data->{itemnumber},
+            phone            => $previous eq $this?"":$data->{phone},
+            email            => $previous eq $this?"":$data->{email},
+            biblionumber     => $previous eq $this?"":$data->{biblionumber},
+            statusw          => ( $data->{found} eq "w" ),
+            statusf          => ( $data->{found} eq "f" ),
+            holdingbranch    => $data->{holdingbranch},
+            branch           => $previous eq $this?"":$data->{branch},
+            itemcallnumber   => $data->{itemcallnumber},
+            notes            => $previous eq $this?"":$data->{notes},
+            notificationdate => $previous eq $this?"":$data->{notificationdate},
+            reminderdate     => $previous eq $this?"":$data->{reminderdate},
+                       thisitemonly     => 1,
+        }
+    );
+    $previous=$this;
+}
+
+$sth->finish;
 
 $template->param(
     todaysdate      => format_date($todaysdate),