[Koha-cvs] CVS: koha/C4 Stats.pm,1.15,1.16

Paul POULAIN tipaul at users.sourceforge.net
Mon May 19 18:20:54 CEST 2003


Update of /cvsroot/koha/koha/C4
In directory sc8-pr-cvs1:/tmp/cvs-serv31634/C4

Modified Files:
	Stats.pm 
Log Message:
* PARTIAL fix for #322 => gives strange results imho
* removing unused subs
* indenting with tabs
* adding monthly report (stats.pl?time=month)


Index: Stats.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Stats.pm,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -r1.15 -r1.16
*** Stats.pm	19 Dec 2002 18:55:40 -0000	1.15
--- Stats.pm	19 May 2003 16:20:52 -0000	1.16
***************
*** 49,53 ****
  
  @ISA = qw(Exporter);
! @EXPORT = qw(&UpdateStats &statsreport &Count &Overdues &TotalOwing
  &TotalPaid &getcharges &Getpaidbranch &unfilledreserves);
  
--- 49,53 ----
  
  @ISA = qw(Exporter);
! @EXPORT = qw(&UpdateStats &statsreport &TotalOwing
  &TotalPaid &getcharges &Getpaidbranch &unfilledreserves);
  
***************
*** 72,253 ****
  #'
  sub UpdateStats {
!   #module to insert stats data into stats table
!   my ($env,$branch,$type,$amount,$other,$itemnum,$itemtype,$borrowernumber)=@_;
!   my $dbh = C4::Context->dbh;
!   if ($branch eq ''){
!     $branch=$env->{'branchcode'};
!   }
!   my $user = $env->{'usercode'};
!   print $borrowernumber;
!   # FIXME - Use $dbh->do() instead
!   my $sth=$dbh->prepare("Insert into statistics
!   (datetime,branch,type,usercode,value,
!   other,itemnumber,itemtype,borrowernumber)
!   values (now(),'$branch','$type','$user','$amount',
!   '$other','$itemnum','$itemtype','$borrowernumber')");
!   $sth->execute;
!   $sth->finish;
  }
  
- # FIXME - Why does this function exist? Why not just rename &circrep
- # to &statsreport?
- # Then again, it only appears to be used in reports.pl which, in turn,
- # doesn't appear to be used. So presumably this function is obsolete.
- # If not, it needs a POD.
- sub statsreport {
-   #module to return a list of stats for a given day,time,branch type
-   #or to return search stats
-   my ($type,$time)=@_;
-   my @data;
- #  print "here";
- #  if ($type eq 'issue'){
-     @data=circrep($time,$type);
- #  }
-   return(@data);
- }
- 
- # Only used internally. Probably useless: see comment for
- # &statsreport.
- sub circrep {
-   my ($time,$type)=@_;
-   my $dbh = C4::Context->dbh;
-   my $query="Select * from statistics";
-   if ($time eq 'today'){
-     # FIXME - What is this supposed to do? MySQL 3.23.42 barfs on it.
-     $query=$query." where type='$type' and datetime
-     >=datetime('yesterday'::date)";
- 			# FIXME - .= <<EOT;
-   }
-   my $sth=$dbh->prepare($query);
-   $sth->execute;
-   my $i=0;
-   my @results;
-   while (my $data=$sth->fetchrow_hashref){
-   	my %tempvalue;
-     $tempvalue{'value'}="$data->{'datetime'}\t$data->{'branch'}";
-     push(@results, \%tempvalue);
-   }
-   $sth->finish;
- #  print $query;
-   return(@results);
- }
- 
- # FIXME - This is only used in stats.pl, which in turn is never used.
- # Otherwise, this needs a POD.
- sub Count {
-   my ($type,$branch,$time,$time2)=@_;
-   my $dbh = C4::Context->dbh;
-   my $query="Select count(*) from statistics where type='$type'";
-   $query.=" and datetime >= '$time' and datetime< '$time2' and branch='$branch'";
-   my $sth=$dbh->prepare($query);
-   $sth->execute;
-   my $data=$sth->fetchrow_hashref;
-   $sth->finish;
- #  print $query;
-   return($data->{'count(*)'});
- }
- 
- # FIXME - This function doesn't appear to be used.
- # If it is, it needs a POD.
- sub Overdues{
-   my $dbh = C4::Context->dbh;
-   my $query="Select count(*) from issues where date_due >= now()";
-   my $sth=$dbh->prepare($query);
-   $sth->execute;
-   my $count=$sth->fetchrow_hashref;
-   $sth->finish;
-   return($count->{'count(*)'});
- }
- 
- # FIXME - Never used.
- # Otherwise, it'd need a POD.
- sub TotalOwing{
-   my ($type)=@_;
-   my $dbh = C4::Context->dbh;
-   my $query="Select sum(amountoutstanding) from accountlines";
-   if ($type eq 'fine'){
-     $query .= " where accounttype='F' or accounttype='FN'";
-   }
-   my $sth=$dbh->prepare($query);
- #  print $query;
-   $sth->execute;
-    my $total=$sth->fetchrow_hashref;
-    $sth->finish;
-   return($total->{'sum(amountoutstanding)'});
- }
- 
- # FIXME - Never used.
  # Otherwise, it'd need a POD.
  sub TotalPaid {
!   my ($time)=@_;
!   my $dbh = C4::Context->dbh;
!   my $query="Select * from accountlines,borrowers where (accounttype = 'Pay'
! or accounttype ='W')
!   and accountlines.borrowernumber = borrowers.borrowernumber";
!   if ($time eq 'today'){
!     $query .= " and date = now()";
!   } else {
!     $query.=" and date='$time'";
!   }
! #  my $query="Select * from statistics,borrowers
! #  where statistics.borrowernumber= borrowers.borrowernumber
! #  and (statistics.type='payment' or statistics.type='writeoff') ";
! #  if ($time eq 'today'){
! #    $query=$query." and datetime = now()";
! #  } else {
! #    $query.=" and datetime > '$time'";
! #  }
!   $query.=" order by timestamp";
! #  print $query;
!   my $sth=$dbh->prepare($query);
!   $sth->execute;
!   my @results;
!   my $i=0;
!   while (my $data=$sth->fetchrow_hashref){
!     $results[$i]=$data;
!     $i++;
!   }
!    $sth->finish;
! #  print $query;
!   return(@results);
  }
  
- # FIXME - Only used in stats.pl, which in turn is never used.
  # Otherwise, it needs a POD.
  sub getcharges{
!   my($borrowerno,$timestamp)=@_;
!   my $dbh = C4::Context->dbh;
!   my $timestamp2=$timestamp-1;
!   my $query="Select * from accountlines where borrowernumber=$borrowerno
!   and timestamp = '$timestamp' and accounttype <> 'Pay' and
!   accounttype <> 'W'";
!   my $sth=$dbh->prepare($query);
! #  print $query,"<br>";
!   $sth->execute;
!   my $i=0;
!   my @results;
!   while (my $data=$sth->fetchrow_hashref){
! #    if ($data->{'timestamp'} == $timestamp){
!       $results[$i]=$data;
!       $i++;
! #    }
!   }
!   return(@results);
  }
  
- # This is only used in stats.pl and stats2.pl, neither of which is
- # used.
  # Otherwise, this needs a POD.
  sub Getpaidbranch{
!   my($date,$borrno)=@_;
!   my $dbh = C4::Context->dbh;
!   my $query="select * from statistics where type='payment' and datetime
!   >'$date' and  borrowernumber='$borrno'";
!   my $sth=$dbh->prepare($query);
!   $sth->execute;
! #  print $query;
!   my $data=$sth->fetchrow_hashref;
!   $sth->finish;
!   return($data->{'branch'});
  }
  
--- 72,158 ----
  #'
  sub UpdateStats {
! 	#module to insert stats data into stats table
! 	my ($env,$branch,$type,$amount,$other,$itemnum,$itemtype,$borrowernumber)=@_;
! 	my $dbh = C4::Context->dbh;
! 	if ($branch eq ''){
! 		$branch=$env->{'branchcode'};
! 	}
! 	my $user = $env->{'usercode'};
! 	print $borrowernumber;
! 	# FIXME - Use $dbh->do() instead
! 	my $sth=$dbh->prepare("Insert into statistics (datetime,branch,type,usercode,value,
! 					other,itemnumber,itemtype,borrowernumber) values (now(),?,?,?,?,?,?,?,?)");
! 	$sth->execute('$branch','$type','$user','$amount','$other','$itemnum','$itemtype','$borrowernumber');
! 	$sth->finish;
  }
  
  # Otherwise, it'd need a POD.
  sub TotalPaid {
! 	my ($time,$time2)=@_;
! 	$time2=$time unless $time2;
! 	my $dbh = C4::Context->dbh;
! 	my $query="Select * from accountlines,borrowers where (accounttype = 'Pay' or accounttype ='W')
! 					and accountlines.borrowernumber = borrowers.borrowernumber";
! 	if ($time eq 'today'){
! 		$query .= " and date = now()";
! 	} else {
! 		$query.=" and date>='$time' and date<='$time2'";
! 	}
! 	#  my $query="Select * from statistics,borrowers
! 	#  where statistics.borrowernumber= borrowers.borrowernumber
! 	#  and (statistics.type='payment' or statistics.type='writeoff') ";
! 	#  if ($time eq 'today'){
! 	#    $query=$query." and datetime = now()";
! 	#  } else {
! 	#    $query.=" and datetime > '$time'";
! 	#  }
! 	$query.=" order by timestamp";
! 	#  print $query;
! 	my $sth=$dbh->prepare($query);
! 	$sth->execute;
! 	my @results;
! 	my $i=0;
! 	while (my $data=$sth->fetchrow_hashref){
! 		$results[$i]=$data;
! 		$i++;
! 	}
! 	$sth->finish;
! 	#  print $query;
! 	return(@results);
  }
  
  # Otherwise, it needs a POD.
  sub getcharges{
! 	my($borrowerno,$timestamp)=@_;
! 	my $dbh = C4::Context->dbh;
! 	my $timestamp2=$timestamp-1;
! 	my $query="Select * from accountlines where borrowernumber=$borrowerno
! 	and timestamp = '$timestamp' and accounttype <> 'Pay' and
! 	accounttype <> 'W'";
! 	my $sth=$dbh->prepare($query);
! 	#  print $query,"<br>";
! 	$sth->execute;
! 	my $i=0;
! 	my @results;
! 	while (my $data=$sth->fetchrow_hashref){
! 	#    if ($data->{'timestamp'} == $timestamp){
! 		$results[$i]=$data;
! 		$i++;
! 	#    }
! 	}
! 	return(@results);
  }
  
  # Otherwise, this needs a POD.
  sub Getpaidbranch{
! 	my($date,$borrno)=@_;
! 	my $dbh = C4::Context->dbh;
! 	my $query="select * from statistics where type='payment' and datetime >'$date' and  borrowernumber='$borrno'";
! 	my $sth=$dbh->prepare($query);
! 	$sth->execute;
! 	#  print $query;
! 	my $data=$sth->fetchrow_hashref;
! 	$sth->finish;
! 	return($data->{'branch'});
  }
  
***************
*** 256,291 ****
  # Otherwise, it needs a POD.
  sub unfilledreserves {
!   my $dbh = C4::Context->dbh;
!   my $query="select *,biblio.title from reserves,reserveconstraints,biblio,borrowers,biblioitems where found <> 'F' and cancellationdate
! is NULL and biblio.biblionumber=reserves.biblionumber and
! reserves.constrainttype='o'
! and (reserves.biblionumber=reserveconstraints.biblionumber
! and reserves.borrowernumber=reserveconstraints.borrowernumber)
! and
! reserves.borrowernumber=borrowers.borrowernumber and
! biblioitems.biblioitemnumber=reserveconstraints.biblioitemnumber order by
! biblio.title,reserves.reservedate";
!   my $sth=$dbh->prepare($query);
!   $sth->execute;
!   my $i=0;
!   my @results;
!   while (my $data=$sth->fetchrow_hashref){
!     $results[$i]=$data;
!     $i++;
!   }
!   $sth->finish;
!   $query="select *,biblio.title from reserves,biblio,borrowers where found <> 'F' and cancellationdate
! is NULL and biblio.biblionumber=reserves.biblionumber and reserves.constrainttype='a' and
! reserves.borrowernumber=borrowers.borrowernumber
! order by
! biblio.title,reserves.reservedate";
!   $sth=$dbh->prepare($query);
!   $sth->execute;
!   while (my $data=$sth->fetchrow_hashref){
!     $results[$i]=$data;
!     $i++;
!   }
!   $sth->finish;
!   return($i,\@results);
  }
  
--- 161,196 ----
  # Otherwise, it needs a POD.
  sub unfilledreserves {
! 	my $dbh = C4::Context->dbh;
! 	my $query="select *,biblio.title from reserves,reserveconstraints,biblio,borrowers,biblioitems where found <> 'F' and cancellationdate
! 								is NULL and biblio.biblionumber=reserves.biblionumber and
! 								reserves.constrainttype='o'
! 								and (reserves.biblionumber=reserveconstraints.biblionumber
! 								and reserves.borrowernumber=reserveconstraints.borrowernumber)
! 								and
! 								reserves.borrowernumber=borrowers.borrowernumber and
! 								biblioitems.biblioitemnumber=reserveconstraints.biblioitemnumber order by
! 								biblio.title,reserves.reservedate";
! 	my $sth=$dbh->prepare($query);
! 	$sth->execute;
! 	my $i=0;
! 	my @results;
! 	while (my $data=$sth->fetchrow_hashref){
! 		$results[$i]=$data;
! 		$i++;
! 	}
! 	$sth->finish;
! 	$query="select *,biblio.title from reserves,biblio,borrowers where found <> 'F' and cancellationdate
! 		is NULL and biblio.biblionumber=reserves.biblionumber and reserves.constrainttype='a' and
! 		reserves.borrowernumber=borrowers.borrowernumber
! 		order by
! 		biblio.title,reserves.reservedate";
! 	$sth=$dbh->prepare($query);
! 	$sth->execute;
! 	while (my $data=$sth->fetchrow_hashref){
! 		$results[$i]=$data;
! 		$i++;
! 	}
! 	$sth->finish;
! 	return($i,\@results);
  }
  





More information about the Koha-cvs mailing list