CVS: koha bookcount.pl,NONE,1.1 moredetail.pl,1.4,1.5
Update of /cvsroot/koha/koha In directory usw-pr-cvs1:/tmp/cvs-serv15441 Modified Files: moredetail.pl Added Files: bookcount.pl 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='#cccc99'; my $secondary='#ffffcc'; my $input = new CGI; my $itm = $input->param('itm'); my $bi = $input->param('bi'); my $bib = $input->param('bib'); my $branches = getbranches(\%env); my $idata = itemdatanum($itm); my $data = bibitemdata($bi); my $homebranch = $branches->{$idata->{'homebranch'}}->{'branchname'}; my $holdingbranch = $branches->{$idata->{'holdingbranch'}}->{'branchname'}; my ($lastmove, $message) = lastmove($itm); my $lastdate; my $count; if (not $lastmove) { $lastdate = $message; $count = issuessince($itm , 0); } else { $lastdate = $lastmove->{'datearrived'}; $count = issuessince($itm ,$lastdate); } # make the page ... print $input->header; print startpage; print startmenu('report'); print center; print <<"EOF"; <br> <FONT SIZE=6><em><a href=/cgi-bin/koha/detail.pl?bib=$bib&type=intra>$data->{'title'} ($data->{'author'})</a></em></FONT><P> <p> <img src="/images/holder.gif" width=16 height=200 align=left> <TABLE CELLSPACING=0 CELLPADDING=5 border=1 width=440 > <TR VALIGN=TOP><td bgcolor="99cc33" background="/images/background-mem.gif"> <B>BARCODE $idata->{'barcode'}</b></TD> </TR> <TR VALIGN=TOP > <TD width=440 > <b>Home Branch: </b> $homebranch <br> <b>Current Branch: </b> $holdingbranch<br> <b>Date arrived at current branch: </b> $lastdate <br> <b>Number of issues since since the above date :</b> $count <br> <table cellspacing =0 cellpadding=5 border=1 width = 440> <TR><TD > <b>Branch</b></td> <TD > <b>No. of Issues</b></td> <td><b>Last seen at branch</b></td></TR> EOF foreach my $branchcode (keys %$branches) { my $issues = issuesat($itm, $branchcode); my $date = lastseenat($itm, $branchcode); my $seen = slashdate($date); print << "EOF"; <TR><TD > <b>$branches->{$branchcode}->{'branchname'}</b></td> <TD > <b> $issues </b></td> <td><b> $seen</b></td></TR> EOF } print <<"EOF"; </table> </TR> </table> 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)=@_; my $dbh=C4Connect; my $itm = $dbh->quote("$itemnumber"); my $query = "select * from items where itemnumber=$itm"; my $sth=$dbh->prepare($query); $sth->execute; my $data=$sth->fetchrow_hashref; $sth->finish; $dbh->disconnect; return($data); } sub lastmove { my ($itemnumber)=@_; my $dbh=C4Connect; my $var1 = $dbh->quote($itemnumber); my $sth =$dbh->prepare("select max(branchtransfers.datearrived) from branchtransfers where branchtransfers.itemnumber=$var1"); $sth->execute; my ($date) = $sth->fetchrow_array; return(0, "Item has no branch transfers record") if not $date; my $var2 = $dbh->quote($date); $sth=$dbh->prepare("Select * from branchtransfers where branchtransfers.itemnumber=$var1 and branchtransfers.datearrived=$var2"); $sth->execute; my ($data) = $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)=@_; my $dbh=C4Connect; my $itm = $dbh->quote($itemnumber); my $dat = $dbh->quote($date); my $sth=$dbh->prepare("Select count(*) from issues where issues.itemnumber=$itm and issues.timestamp > $dat"); $sth->execute; my $count=$sth->fetchrow_hashref; $sth->finish; $dbh->disconnect; return($count->{'count(*)'}); } sub issuesat { my ($itemnumber, $brcd)=@_; my $dbh=C4Connect; my $itm = $dbh->quote($itemnumber); my $brc = $dbh->quote($brcd); my $query = "Select count(*) from issues where itemnumber=$itm and branchcode = $brc"; my $sth=$dbh->prepare($query); $sth->execute; my ($count)=$sth->fetchrow_array; $sth->finish; $dbh->disconnect; return($count); } sub lastseenat { my ($itemnumber, $brcd)=@_; my $dbh=C4Connect; my $itm = $dbh->quote($itemnumber); my $brc = $dbh->quote($brcd); my $query = "Select max(timestamp) from issues where itemnumber=$itm and branchcode = $brc"; my $sth=$dbh->prepare($query); $sth->execute; my ($date1)=$sth->fetchrow_array; $sth->finish; $query = "Select max(datearrived) from branchtransfers where itemnumber=$itm and tobranch = $brc"; my $sth=$dbh->prepare($query); $sth->execute; my ($date2)=$sth->fetchrow_array; $sth->finish; $dbh->disconnect; $date2 =~ s/-//g; $date2 =~ s/://g; $date2 =~ s/ //g; my $date; if ($date1 < $date2) { $date = $date2; } else { $date = $date1; } return($date); } ##################################################### # write date.... 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)); return "$hr:$mi $da/$mo/$yr"; } Index: moredetail.pl =================================================================== 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 <<printend <b>Cancelled: $items[$i]->{'wthdrawn'}<br> ! <b>Total Issues:</b> $items[$i]->{'issues'}<br> <b>Group Number:</b> $bi <br> <b>Biblio number:</b> $bib <br> --- 172,176 ---- print <<printend <b>Cancelled: $items[$i]->{'wthdrawn'}<br> ! <b><a href=/cgi-bin/koha/bookcount.pl?&bib=$bib&bi=$bi&itm=$items[$i]->{'itemnumber'}>Total Issues:</a></b> $items[$i]->{'issues'}<br> <b>Group Number:</b> $bi <br> <b>Biblio number:</b> $bib <br>
participants (1)
-
Finlay Thompson