Eliminated bug with date handling outputting an English string.
Row striping added.  Highlight for "my branch" row added.
GetBranchesLoop used instead of recreating data structure, so we get the
benefit of branches being sorted (by display name).
---
 circ/bookcount.pl                                  |  128 ++++++++------------
 .../prog/en/modules/circ/bookcount.tmpl            |   56 ++++++---
 2 files changed, 86 insertions(+), 98 deletions(-)

diff --git a/circ/bookcount.pl b/circ/bookcount.pl
index 4b2479b..3a94e0d 100755
--- a/circ/bookcount.pl
+++ b/circ/bookcount.pl
@@ -1,6 +1,5 @@
 #!/usr/bin/perl
 
-
 #written 7/3/2002 by Finlay
 #script to display reports
 
@@ -22,6 +21,7 @@
 # Suite 330, Boston, MA  02111-1307 USA
 
 use strict;
+# use warnings;
 use CGI;
 use C4::Debug;
 use C4::Context;
@@ -42,7 +42,7 @@ my $branches     = GetBranches;
 my $idata = itemdatanum($itm);
 my $data  = GetBiblioItemData($bi);
 
-my $homebranch    = $branches->{ $idata->{'homebranch'} }->{'branchname'};
+my $homebranch    = $branches->{ $idata->{'homebranch'}    }->{'branchname'};
 my $holdingbranch = $branches->{ $idata->{'holdingbranch'} }->{'branchname'};
 
 my ( $lastmove, $message ) = lastmove($itm);
@@ -52,8 +52,7 @@ my $count;
 if ( not $lastmove ) {
 #    $lastdate = $message;
     $count = issuessince( $itm, 0 );
-}
-else {
+} else {
     $lastdate = $lastmove->{'datearrived'};
     $count = issuessince( $itm, $lastdate );
 }
@@ -71,15 +70,13 @@ my ( $template, $loggedinuser, $cookie ) = 
get_template_and_user(
     }
 );
 
-my @branchloop;
-
-foreach my $branchcode ( keys %$branches ) {
-    my %linebranch;
-    $linebranch{issues} = issuesat( $itm, $branchcode );
-    my $date = lastseenat( $itm, $branchcode );
-    $linebranch{seen}       = slashdate($date);
-    $linebranch{branchname} = $branches->{$branchcode}->{'branchname'};
-    push( @branchloop, \%linebranch );
+my $branchloop = GetBranchesLoop(C4::Context->userenv->{branch});
+foreach (@$branchloop) {
+    my $date = lastseenat( $itm, $_->{value} );
+    my ($datechunk, $timechunk) =  slashdate($date);
+    $_->{issues}     = issuesat($itm, $_->{value});
+    $_->{seen}       = $datechunk;
+    $_->{seentime}   = $timechunk;
 }
 
 ### $lastdate
@@ -94,40 +91,34 @@ $template->param(
     holdingbranch           => $holdingbranch,
     lastdate                => $lastdate ?  format_date($lastdate) : $message,
     count                   => $count,
-    branchloop              => \...@branchloop,
+    branchloop              => $branchloop,
 );
 
 output_html_with_http_headers $input, $cookie, $template->output;
-
+exit;
 
 sub itemdatanum {
     my ($itemnumber) = @_;
-    my $dbh          = C4::Context->dbh;
-    my $sth          = $dbh->prepare("select * from items where itemnumber=?");
+    my $sth = C4::Context->dbh->prepare("SELECT * FROM items WHERE 
itemnumber=?");
     $sth->execute($itemnumber);
-    my $data = $sth->fetchrow_hashref;
-    $sth->finish;
-    return ($data);
+    return $sth->fetchrow_hashref;
 }
 
 sub lastmove {
     my ($itemnumber) = @_;
-    my $dbh          = C4::Context->dbh;
-    my $sth          =
-      $dbh->prepare(
-"select max(branchtransfers.datearrived) from branchtransfers where 
branchtransfers.itemnumber=?"
-      );
+    my $dbh = C4::Context->dbh;
+    my $sth = $dbh->prepare(
+"SELECT max(branchtransfers.datearrived) FROM branchtransfers WHERE 
branchtransfers.itemnumber=?"
+    );
     $sth->execute($itemnumber);
     my ($date) = $sth->fetchrow_array;
     return ( 0, "Item has no branch transfers record" ) if not $date;
-    $sth =
-      $dbh->prepare(
-"Select * from branchtransfers where branchtransfers.itemnumber=? and 
branchtransfers.datearrived=?"
-      );
+    $sth = $dbh->prepare(
+"SELECT * FROM branchtransfers WHERE branchtransfers.itemnumber=? and 
branchtransfers.datearrived=?"
+    );
     $sth->execute( $itemnumber, $date );
     my ($data) = $sth->fetchrow_hashref;
     return ( 0, "Item has no branch transfers record" ) if not $data;
-    $sth->finish;
     return ( $data, "" );
 }
 
@@ -141,76 +132,53 @@ sub issuessince {
                         SELECT COUNT(*) AS count FROM old_issues WHERE 
itemnumber = ? and timestamp > ?
                      ) tmp");
     $sth->execute( $itemnumber, $date, $itemnumber, $date );
-    my $count = $sth->fetchrow_arrayref->[0];
-    $sth->finish;
-    return ( $count );
+    return $sth->fetchrow_arrayref->[0];
 }
 
 sub issuesat {
     my ( $itemnumber, $brcd ) = @_;
     my $dbh = C4::Context->dbh;
-    my $sth =
-      $dbh->prepare("SELECT SUM(count) FROM (
-                        SELECT COUNT(*) AS count FROM issues WHERE itemnumber 
= ? and branchcode = ?
-                        UNION ALL
-                        SELECT COUNT(*) AS count FROM old_issues WHERE 
itemnumber = ? and branchcode = ?
-                     ) tmp");
+    my $sth = $dbh->prepare(
+    "SELECT SUM(count) FROM (
+        SELECT COUNT(*) AS count FROM     issues WHERE itemnumber = ? AND 
branchcode = ?
+        UNION ALL
+        SELECT COUNT(*) AS count FROM old_issues WHERE itemnumber = ? AND 
branchcode = ?
+     ) tmp"
+    );
     $sth->execute( $itemnumber, $brcd, $itemnumber, $brcd );
-    my ($count) = $sth->fetchrow_array;
-    $sth->finish;
-    return ($count);
+    return $sth->fetchrow_array;
 }
 
 sub lastseenat {
     my ( $itm, $brc ) = @_;
     my $dbh = C4::Context->dbh;
-    my $sth =
-      $dbh->prepare("SELECT MAX(tstamp) FROM (
-                        SELECT MAX(timestamp) AS tstamp FROM issues WHERE 
itemnumber = ? and branchcode = ?
-                        UNION ALL
-                        SELECT MAX(timestamp) AS tstamp FROM old_issues WHERE 
itemnumber = ? and branchcode = ?
-                     ) tmp");
+    my $sth = $dbh->prepare(
+    "SELECT MAX(tstamp) FROM (
+        SELECT MAX(timestamp) AS tstamp FROM     issues WHERE itemnumber = ? 
AND branchcode = ?
+        UNION ALL
+        SELECT MAX(timestamp) AS tstamp FROM old_issues WHERE itemnumber = ? 
AND branchcode = ?
+     ) tmp"
+    );
     $sth->execute( $itm, $brc, $itm, $brc );
     my ($date1) = $sth->fetchrow_array;
-    $sth->finish;
-    $sth =
-      $dbh->prepare(
-"Select max(datearrived) from branchtransfers where itemnumber=? and tobranch 
= ?"
-      );
+    $sth = $dbh->prepare(
+"SELECT max(datearrived) FROM branchtransfers WHERE itemnumber=? AND tobranch 
= ?"
+    );
     $sth->execute( $itm, $brc );
     my ($date2) = $sth->fetchrow_array;
-    $sth->finish;
-
-    #FIXME: MJR thinks unsafe
-    $date1 =~ s/-//g;
-    $date1 =~ s/://g;
-    $date1 =~ s/ //g;
-    $date2 =~ s/-//g;
-    $date2 =~ s/://g;
-    $date2 =~ s/ //g;
-    my $date;
-    if ( $date1 < $date2 ) {
-        $date = $date2;
-    }
-    else {
-        $date = $date1;
-    }
+
+    my $date = ( $date1 lt $date2 ) ? $date2 : $date1 ;
     return ($date);
 }
 
 #####################################################
-# write date....
+# return date and time from timestamp
 sub slashdate {
     my ($date) = @_;
-    if ( not $date ) {
-        return "never";
-    }
-    my ( $yr, $mo, $da, $hr, $mi ) = (
-        substr( $date, 0,  4 ),
-        substr( $date, 4,  2 ),
-        substr( $date, 6,  2 ),
-        substr( $date, 8,  2 ),
-        substr( $date, 10, 2 )
+    $date or return;
+    # warn "slashdate($date)...";
+    return (
+        format_date($date),
+        substr($date,11,5)
     );
-    return "$hr:$mi  " . format_date("$yr-$mo-$da");
 }
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/bookcount.tmpl 
b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/bookcount.tmpl
index 542fc15..5ffc75c 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/bookcount.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/bookcount.tmpl
@@ -1,6 +1,12 @@
 <!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
 <title>Koha &rsaquo; Circulation &rsaquo; Circulation Statistics for <!-- 
TMPL_VAR Name="title" escape="html" --></title>
 <!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
+<script type="text/javascript">
+$(document).ready(function(){
+    $(".striped tr:even").addClass("highlight");
+    $("tr.mybranch td").css("background-color", "#CFE7FF");
+});
+</script>
 </head>
 <body>
 <!-- TMPL_INCLUDE NAME="header.inc" -->
@@ -15,27 +21,41 @@
        <div class="yui-b">
 
 <h2>
-<!-- TMPL_VAR Name="title" escape="html" --> <!-- TMPL_IF NAME="author" --> by 
<!-- TMPL_VAR Name="author" --><!-- /TMPL_IF --></h2>
-<h3>Barcode <!-- TMPL_VAR Name="barcode" --></h3>
+<!-- TMPL_VAR NAME="title" ESCAPE="html" --> <!-- TMPL_IF NAME="author" --> by 
<!-- TMPL_VAR NAME="author" ESCAPE="html" --><!-- /TMPL_IF --></h2>
+<h3>Barcode <!-- TMPL_VAR NAME="barcode" --></h3>
 <table>
-               <tr><th>Home Library</th><th>Current Library</th><th>Date 
arrived at current library </th><th>Number of issues since since last 
transfer</th></tr>
+               <tr><th>Home Library</th><th>Current Library</th><th>Date 
arrived<br />at current library </th><th>Number of issues<br />since last 
transfer</th></tr>
                
-               <tr><td> <!-- TMPL_VAR Name="homebranch" --> </td><td> <!-- 
TMPL_VAR Name="holdingbranch" --></td><td> <!-- TMPL_VAR Name="lastdate" --> 
</td><td> <!-- TMPL_VAR Name="count" --> </td></tr>
+               <tr><td><!-- TMPL_VAR NAME="homebranch" --></td>
+            <td><!-- TMPL_VAR NAME="holdingbranch" --></td>
+            <td><!-- TMPL_VAR NAME="lastdate" --></td>
+            <td><!-- TMPL_VAR NAME="count" --></td>
+        </tr>
+</table>
+<table class="striped">
+    <tr>
+        <th>Library</th>
+        <th>No. of times checked out</th>
+        <th>Last Seen</th>
+    </tr>
+    <!-- TMPL_LOOP NAME="branchloop" -->
+    <!-- TMPL_IF NAME="selected" -->
+        <tr class="mybranch">
+    <!-- TMPL_ELSE -->
+        <tr>
+    <!-- /TMPL_IF -->
+            <td><!-- TMPL_VAR NAME="branchname" --></td>
+            <td><!-- TMPL_VAR NAME="issues" --></td>
+            <td><!-- TMPL_IF NAME="seen" -->
+                    <span style="display:none;"><!-- TMPL_VAR NAME="seen" 
--><!-- TMPL_VAR NAME="seentime" --></span>
+                    <!-- invisible span for eventual use by tablesorter -->
+                    <!-- TMPL_VAR NAME="seentime" DEFAULT="??:??" --> <!-- 
TMPL_VAR NAME="seen" --> 
+                <!-- TMPL_ELSE -->Never
+                <!-- /TMPL_IF -->
+            </td>
+        </tr>
+    <!-- /TMPL_LOOP -->
 </table>
-<table>
-                       <tr>
-                               <th>Library</th>
-                               <th>No. of times checked out</th>
-                               <th>Last Seen</th>
-                       </tr>
-                       <!-- TMPL_LOOP Name="branchloop" -->
-                               <tr>
-                                       <td><!-- TMPL_VAR Name="branchname" --> 
</td>
-                                       <td><!-- TMPL_VAR Name="issues" --> 
</td>
-                                       <td><!-- TMPL_VAR Name="seen" --> </td>
-                               </tr>
-                       <!-- /TMPL_LOOP -->
-               </table>
 
 </div>
 </div>
-- 
1.5.6.5

_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha.org/mailman/listinfo/koha-patches

Reply via email to