koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha reservereport.pl koha-tmpl/intranet-tmpl/c... [dev_week]


From: Kyle Hall
Subject: [Koha-cvs] koha reservereport.pl koha-tmpl/intranet-tmpl/c... [dev_week]
Date: Wed, 16 Apr 2008 17:30:15 +0000

CVSROOT:        /sources/koha
Module name:    koha
Branch:         dev_week
Changes by:     Kyle Hall <kylemhall>   08/04/16 17:30:15

Modified files:
        .              : reservereport.pl 
        koha-tmpl/intranet-tmpl/ccfls/en/circ: reserve.tmpl 

Log message:
        Added ability to filter reserves by branch.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/reservereport.pl?cvsroot=koha&only_with_tag=dev_week&r1=1.3.4.4&r2=1.3.4.4.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/koha-tmpl/intranet-tmpl/ccfls/en/circ/reserve.tmpl?cvsroot=koha&only_with_tag=dev_week&r1=1.1.2.1.2.2&r2=1.1.2.1.2.3

Patches:
Index: reservereport.pl
===================================================================
RCS file: /sources/koha/koha/Attic/reservereport.pl,v
retrieving revision 1.3.4.4
retrieving revision 1.3.4.4.2.1
diff -u -b -r1.3.4.4 -r1.3.4.4.2.1
--- reservereport.pl    5 Feb 2006 21:59:21 -0000       1.3.4.4
+++ reservereport.pl    16 Apr 2008 17:30:13 -0000      1.3.4.4.2.1
@@ -1,8 +1,6 @@
 #!/usr/bin/perl
 
-#written 26/4/2000
-#script to display reports
-
+# $Id: reservereport.pl,v 1.3.4.4.2.1 2008/04/16 17:30:13 kylemhall Exp $
 
 # Copyright 2000-2002 Katipo Communications
 #
@@ -22,38 +20,181 @@
 # Suite 330, Boston, MA  02111-1307 USA
 
 use strict;
-use C4::Stats;
-use Date::Manip;
-use CGI;
+use C4::Context;
 use C4::Output;
+use C4::Search;
+use CGI;
 use HTML::Template;
+use C4::Auth;
+use C4::Date;
+use C4::Reserves2;
+use C4::Koha;
+
+my $input = new CGI;
+my $type=$input->param('type');
+my $order=$input->param('order');
+my $startdate=$input->param('from');
+my $enddate=$input->param('to');
+my $op = $input->param('op');
+my $borrowernumber=$input->param('borrower');
+my $biblionumber=$input->param('biblionum');
+
+my $theme = $input->param('theme'); # only used if allowthemeoverride is set
+
+my $tmpl_name = ($op eq 'slip') ? "circ/reserve-slip.tmpl" : 
"circ/reserve.tmpl" ;
+
+my ($template, $loggedinuser, $cookie)
+      = get_template_and_user({template_name => $tmpl_name,
+                                        query => $input,
+                                        type => "intranet",
+                                        authnotrequired => 0,
+                                        flagsrequired => {borrowers => 1},
+                                        debug => 1,
+                                        });
+my $dbh = C4::Context->dbh;
+my $duedate;
+my $itemnum;
+my $data1;
+my $data2;
+my $data3;
+my $name;
+my $phone;
+my $email;
+my $title;
+my $author;
+
+my @datearr = localtime(time());
+my $todaysdate = (1900+$datearr[5]).'-'.sprintf ("%0.2d", 
($datearr[4]+1)).'-'.sprintf ("%0.2d", $datearr[3]);
+my $twodaysago =  (1900+$datearr[5]).'-'.sprintf ("%0.2d", 
($datearr[4]+1)).'-'.sprintf ("%0.2d", ($datearr[3] - 2) );
+
+## Set up the toBranch select options
+my $branches = getbranches();
+my $branch = getbranch($input, $branches);
+my @branchoptionloop;
+foreach my $br (keys %$branches) {
+  my %branch;
+  $branch{code}=$br;
+  $branch{name}=$branches->{$br}->{'branchname'};
+  $branch{selected} = $br eq $branch;
+  push (@branchoptionloop, \%branch);
+}
+
+my @reservedata;
+
+if ($op eq 'cancelled') {
+
+######
+#get cancelled reserves. 
+#      we assume items.timestamp is updated before reserves.timestamp - this 
is because cancelling a 'W' reserve doesn't change the 'W', and returning such 
an item doesn't change reserves table.  so this ignores cancelled reserves that 
have already been pulled from the reserves shelf.
+
+my $sthCancel= $dbh->prepare("select reserves.borrowernumber, 
reserves.biblionumber, reserves.itemnumber, itemcallnumber, barcode, firstname, 
surname, biblio.title, reservedate  from reserves, biblio, borrowers, items 
where reserves.borrowernumber=borrowers.borrowernumber && 
reserves.biblionumber=biblio.biblionumber && 
reserves.itemnumber=items.itemnumber && reserves.timestamp > items.timestamp  
&& found = 'W' && cancellationdate is not null");
+
+$sthCancel->execute();
+#( $bornum, $bibnum, $itemnum, $itemcallnum , $barcode, $firstname, $surname, 
$title )
+while ( my $cancelled =  $sthCancel->fetchrow_hashref() ) {
+       push @reservedata ,  $cancelled ;
+}
+$template->param( cancelledreserves => 1 );
+
+} elsif ($op eq 'open') {
+
+#get biblionumbers with open reserves.
+my $sthAll= $dbh->prepare("select reserves.biblionumber, 
count(borrowernumber), title, author, reservenotes from reserves, biblio where 
reserves.biblionumber=biblio.biblionumber && found is null && priority > 0 && 
cancellationdate is null group by reserves.biblionumber ");
 
+## Find items on shelf
+my $sthItems = $dbh->prepare("select items.biblionumber, items.itemnumber, 
barcode, itemcallnumber, location from items left join issues USING 
(itemnumber) where  ( items.notforloan = 0 || items.notforloan is null ) && ( 
items.itemlost = 0 || items.itemlost is null  ) && items.biblionumber = ? && ( 
issues.returndate is not null || issues.itemnumber is null ) && 
items.itemnumber not in ( select itemnumber from reserves where biblionumber= ? 
&& found = 'W' ) ");
+
+$sthAll->execute();
+my $item_info;
+while ( my ($bibnum, $numreserves, $title, $author, $notes) = 
$sthAll->fetchrow_array) {
+       $sthItems->execute($bibnum,$bibnum);
+       my %reserve = ( biblionumber => $bibnum,  title => $title, author 
=>$author, numreserves =>$numreserves , notes => $notes );
+       my @resloop;
+       while ( my $res = $sthItems->fetchrow_hashref()) {
+               push  @resloop, $res ;
+       }       
+       if (scalar @resloop > 0) { 
+               $reserve{iteminfo} = address@hidden ;   
+               push  @reservedata, \%reserve ;
+       }
+}
+$template->param( openreserves => 1 );
+
+} else {
+
+$startdate = $twodaysago unless ($startdate);
+$enddate = $todaysdate unless ($enddate);
+
+my ($sqlorderby, $sqldatewhere, $sqlwhowhere) = ("","", "");
+
+if ($op eq 'slip') {
+       $sqlwhowhere .= " && reserves.borrowernumber = " . 
$dbh->quote($borrowernumber) ;
+       $sqlwhowhere .= " && reserves.biblionumber = " . 
$dbh->quote($biblionumber) ;
+} else {
+       
+       $sqldatewhere .= " && reservedate >= " . $dbh->quote($startdate)  if 
($startdate) ;
+       $sqldatewhere .= " && reservedate <= " . $dbh->quote($enddate)  if 
($enddate) ;
+
+       if ($order eq "borrower") {
+               $sqlorderby = " order by  surname, reservedate";
+       } elsif ($order eq "biblio") {
+               $sqlorderby = " order by biblio.title, priority,reservedate";
+       } else {
+               $sqlorderby = " order by reservedate, surname";
+       }
+}
 
-my $input=new CGI;
-my $time=$input->param('time');
+my $strsth="select reservedate,reserves.borrowernumber as bornum, 
firstname,surname , borrowers.phone,phoneday, borrowers.emailaddress, 
borrowers.streetaddress, borrowers.cardnumber, borrowers.city, 
borrowers.zipcode, reserves.biblionumber, reserves.branchcode as branch, 
items.holdingbranch, items.itemcallnumber, items.itemnumber, barcode, notes, 
notificationdate, reminderdate, priority, reserves.found, biblio.title, 
biblio.author from reserves left join items on 
items.itemnumber=reserves.itemnumber, borrowers,biblio where 
isnull(cancellationdate) && reserves.borrowernumber=borrowers.borrowernumber && 
reserves.biblionumber=biblio.biblionumber && reserves.branchcode LIKE '$branch' 
" . $sqlwhowhere . $sqldatewhere . $sqlorderby ;
+
+my $sth = $dbh->prepare($strsth); # or die $dbh->errstr;
+$sth->execute();
+
+while (my $data=$sth->fetchrow_hashref) {
+       push (@reservedata, 
+                       {
+                               reservedate  => 
format_date($data->{reservedate}),
+                               priority         => $data->{priority},
+                               name         => "$data->{firstname} 
$data->{surname}",
+                               firstname       =>      $data->{firstname},
+                               surname         =>      $data->{surname},
+                               title        => $data->{title},
+                               author       => $data->{author},
+                               bornum       => $data->{bornum},
+                               barcode         => $data->{barcode},
+                               itemnum      => $data->{itemnumber},
+                               phone        => $data->{phone},
+                               phoneday        => $data->{phoneday},
+                               city            => $data->{city},
+                               zip        => $data->{zipcode},
+                               streetaddress      => $data->{streetaddress},
+                               cardnumber      => $data->{cardnumber},
+                               email        => $data->{email},
+                               biblionumber => $data->{biblionumber},
+                               statusw          => ($data->{found} eq "W"),
+                               statusf          => ($data->{found} eq "F"),
+                               holdingbranch            => 
$data->{holdingbranch},
+                               branch           => $data->{branch},
+                               itemcallnumber => $data->{itemcallnumber},
+                               notes            => $data->{notes},
+                               notificationdate => $data->{notificationdate},
+                               reminderdate => $data->{reminderdate}
+                       }
+       
+       );
 
-#print $input->header;
-#print startpage;
-#print startmenu('report');
-my $template = gettemplate("reservereport.tmpl");
-#print center;
-#print mktablehdr();
-my ($count,$data)=unfilledreserves();
-
-my @dataloop;
-for (my $i=0;$i<$count;$i++){
-       my %line;
-       $line{name}="$data->[$i]->{'surname'}\, $data->[$i]->{'firstname'}";
-       $line{'reservedate'}=$data->[$i]->{'reservedate'};
-       $line{'title'}=$data->[$i]->{'title'};
-       
$line{'classification'}=$data->[$i]->{'classification'}.$data->[$i]->{'dewey'};
-       push(@dataloop,\%line);
 }
 
-$template->param(      count => $count,
-                       dataloop => address@hidden,
+$sth->finish;
+} # endif op
+
+$template->param(todaysdate        => format_date($todaysdate),
+               from            => $startdate,
+               to                      => $enddate,
+               reserveloop       => address@hidden,
                        intranetcolorstylesheet => 
C4::Context->preference("intranetcolorstylesheet"),
                intranetstylesheet => 
C4::Context->preference("intranetstylesheet"),
                IntranetNav => C4::Context->preference("IntranetNav"),
+                branchoptionloop => address@hidden
                        );
+
 print "Content-Type: text/html\n\n", $template->output;

Index: koha-tmpl/intranet-tmpl/ccfls/en/circ/reserve.tmpl
===================================================================
RCS file: 
/sources/koha/koha/koha-tmpl/intranet-tmpl/ccfls/en/circ/Attic/reserve.tmpl,v
retrieving revision 1.1.2.1.2.2
retrieving revision 1.1.2.1.2.3
diff -u -b -r1.1.2.1.2.2 -r1.1.2.1.2.3
--- koha-tmpl/intranet-tmpl/ccfls/en/circ/reserve.tmpl  22 May 2007 11:50:42 
-0000      1.1.2.1.2.2
+++ koha-tmpl/intranet-tmpl/ccfls/en/circ/reserve.tmpl  16 Apr 2008 17:30:14 
-0000      1.1.2.1.2.3
@@ -32,6 +32,23 @@
 
 <div id="main">
        <h1>Items Reserved as of <!-- TMPL_VAR NAME="todaysdate" --></h1>
+
+        <div>
+          <form action="reserve.pl" method="post">
+            <label for="branch">Library:</label>
+            <select name="branch">
+              <!-- TMPL_LOOP Name="branchoptionloop" -->
+                <!-- TMPL_IF NAME="selected" -->
+                       <option value="<!-- TMPL_VAR Name="code" -->" 
selected="selected"><!-- TMPL_VAR Name="name" --></option>
+               <!-- TMPL_ELSE -->
+                       <option value="<!-- TMPL_VAR Name="code" -->"><!-- 
TMPL_VAR Name="name" --></option>
+               <!-- /TMPL_IF -->
+              <!-- /TMPL_LOOP -->
+            </select>
+            <INPUT type="submit" value="Show Reserves">
+          </form>
+        </div>
+
        <div id="resultlist">
                <table>
                <tr>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]