From finlayt@users.sourceforge.net Wed May 1 17:08:57 2002 From: Finlay Thompson To: koha-devel@lists.koha-community.org Subject: [Koha-devel] CVS: koha bookcount.pl,NONE,1.1 moredetail.pl,1.4,1.5 Date: Wed, 01 May 2002 17:09:16 +0000 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4667990677947889670==" --===============4667990677947889670== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Update of /cvsroot/koha/koha In directory usw-pr-cvs1:/tmp/cvs-serv15441 Modified Files: moredetail.pl=20 Added Files: bookcount.pl=20 Log Message: moredetail.pl presents circulation information taken from the branchtransfers table Circ2.pm has been changed a little admin/branches.pl alows branches to be added, edited and deleted. updatedatabase needs more fixing --- NEW FILE --- #!/usr/bin/perl #written 7/3/2002 by Finlay #script to display reports use strict; use CGI; use C4::Search; use C4::Circulation::Circ2; use C4::Output; # get all the data .... my %env; my $main=3D'#cccc99'; my $secondary=3D'#ffffcc'; my $input =3D new CGI; my $itm =3D $input->param('itm'); my $bi =3D $input->param('bi'); my $bib =3D $input->param('bib'); my $branches =3D getbranches(\%env); my $idata =3D itemdatanum($itm); my $data =3D bibitemdata($bi); my $homebranch =3D $branches->{$idata->{'homebranch'}}->{'branchname'}; my $holdingbranch =3D $branches->{$idata->{'holdingbranch'}}->{'branchname'}; my ($lastmove, $message) =3D lastmove($itm); my $lastdate; my $count; if (not $lastmove) { $lastdate =3D $message; $count =3D issuessince($itm , 0); } else { $lastdate =3D $lastmove->{'datearrived'}; $count =3D issuessince($itm ,$lastdate); } # make the page ...=20 print $input->header; print startpage; print startmenu('report'); print center; print <<"EOF";
= $data->{'title'} ($data->{'author'})

BARCODE $idata->{'barcode'}
Home Branch: $homebranch
Current Branch: $holdingbranch
Date arrived at current branch: $lastdate
Number of issues since since the above date : $count
EOF foreach my $branchcode (keys %$branches) { my $issues =3D issuesat($itm, $branchcode); my $date =3D lastseenat($itm, $branchcode); my $seen =3D slashdate($date); print << "EOF"; EOF } print <<"EOF";
Branch No. of Issues Last= seen at branch
$branches->{$branchcode}->{'branchname'} $issues $seen
EOF print endmenu('report'); print endpage; ############################################## # This stuff should probably go into C4::Search # database includes use DBI; use C4::Database; sub itemdatanum { my ($itemnumber)=3D@_; my $dbh=3DC4Connect; my $itm =3D $dbh->quote("$itemnumber"); my $query =3D "select * from items where itemnumber=3D$itm"; my $sth=3D$dbh->prepare($query); $sth->execute; my $data=3D$sth->fetchrow_hashref; $sth->finish; $dbh->disconnect; return($data); } sub lastmove { my ($itemnumber)=3D@_; my $dbh=3DC4Connect; my $var1 =3D $dbh->quote($itemnumber); my $sth =3D$dbh->prepare("select max(branchtransfers.datearrived) from = branchtransfers where branchtransfers.itemnumber=3D$var1"); $sth->execute; my ($date) =3D $sth->fetchrow_array; return(0, "Item has no branch transfers record") if not $date; my $var2 =3D $dbh->quote($date); =20 $sth=3D$dbh->prepare("Select * from branchtransfers where branchtransfe= rs.itemnumber=3D$var1 and branchtransfers.datearrived=3D$var2"); $sth->execute; my ($data) =3D $sth->fetchrow_hashref; return(0, "Item has no branch transfers record") if not $data; $sth->finish; $dbh->disconnect; return($data,""); } sub issuessince { my ($itemnumber, $date)=3D@_; my $dbh=3DC4Connect; my $itm =3D $dbh->quote($itemnumber); my $dat =3D $dbh->quote($date); my $sth=3D$dbh->prepare("Select count(*) from issues where issues.itemn= umber=3D$itm and issues.timestamp > $dat"); $sth->execute; my $count=3D$sth->fetchrow_hashref; $sth->finish; $dbh->disconnect; return($count->{'count(*)'}); } sub issuesat { my ($itemnumber, $brcd)=3D@_; my $dbh=3DC4Connect; my $itm =3D $dbh->quote($itemnumber); my $brc =3D $dbh->quote($brcd); my $query =3D "Select count(*) from issues where itemnumber=3D$itm and = branchcode =3D $brc"; my $sth=3D$dbh->prepare($query); $sth->execute; my ($count)=3D$sth->fetchrow_array; $sth->finish; $dbh->disconnect; return($count); } sub lastseenat { my ($itemnumber, $brcd)=3D@_; my $dbh=3DC4Connect; my $itm =3D $dbh->quote($itemnumber); my $brc =3D $dbh->quote($brcd); my $query =3D "Select max(timestamp) from issues where itemnumber=3D$it= m and branchcode =3D $brc"; my $sth=3D$dbh->prepare($query); $sth->execute; my ($date1)=3D$sth->fetchrow_array; $sth->finish; $query =3D "Select max(datearrived) from branchtransfers where itemnumb= er=3D$itm and tobranch =3D $brc"; my $sth=3D$dbh->prepare($query); $sth->execute; my ($date2)=3D$sth->fetchrow_array; $sth->finish; $dbh->disconnect; $date2 =3D~ s/-//g; $date2 =3D~ s/://g; $date2 =3D~ s/ //g; my $date; if ($date1 < $date2) { $date =3D $date2; } else { $date =3D $date1; } return($date); } ##################################################### # write date.... sub slashdate { my ($date) =3D @_; if (not $date) { return "never"; } my ($yr, $mo, $da, $hr, $mi) =3D (substr($date, 0, 4), substr($date, 4, 2= ), substr($date, 6, 2), substr($date, 8, 2), substr($date, 10, 2)); return "$hr:$mi $da/$mo/$yr"; } Index: moredetail.pl =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/koha/koha/moredetail.pl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** moredetail.pl 8 Apr 2002 23:44:43 -0000 1.4 --- moredetail.pl 2 May 2002 00:08:53 -0000 1.5 *************** *** 172,176 **** print <Cancelled: $items[$i]->{'wthdrawn'}
! Total Issues: $items[$i]->{'issues'}
Group Number: $bi
Biblio number: $bib
--- 172,176 ---- print <Cancelled: $items[$i]->{'wthdrawn'}
! {'itemnumber'}>Total Issues: $items[$i]->{'issues'}
Group Number: $bi
Biblio number: $bib
--===============4667990677947889670==--