Added magic RCS comment.
authorarensb <arensb>
Sun, 13 Oct 2002 06:20:22 +0000 (06:20 +0000)
committerarensb <arensb>
Sun, 13 Oct 2002 06:20:22 +0000 (06:20 +0000)
Added some FIXME comments.
Deleted unused variables.
Added POD.
Removed unused finalizer.

C4/Circulation/Issues.pm
C4/Circulation/Main.pm

index 242811d..c79f3a6 100755 (executable)
@@ -1,9 +1,10 @@
-package C4::Circulation::Issues; #asummes C4/Circulation/Issues
+package C4::Circulation::Issues;
+
+# $Id$
 
 #package to deal with Issues
 #written 3/11/99 by chris@katipo.co.nz
 
-
 # Copyright 2000-2002 Katipo Communications
 #
 # This file is part of Koha.
@@ -21,6 +22,9 @@ package C4::Circulation::Issues; #asummes C4/Circulation/Issues
 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
 # Suite 330, Boston, MA  02111-1307 USA
 
+# FIXME - AFAICT the only function here that's still being used is
+# &formatitem, and I'm not convinced that it's really being used.
+
 use strict;
 require Exporter;
 use DBI;
@@ -38,49 +42,37 @@ use C4::Stats;
 use C4::Print;
 use C4::Format;
 use C4::Input;
-use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
+use vars qw($VERSION @ISA @EXPORT);
   
 # set the version for version checking
 $VERSION = 0.01;
-    
+
+=head1 NAME
+
+C4::Circulation::Issues - Miscellaneous functions related to Koha issues
+
+=head1 SYNOPSIS
+
+  use C4::Circulation::Issues;
+
+=head1 DESCRIPTION
+
+This module provides a function for pretty-printing an item being
+issued.
+
+=head1 FUNCTIONS
+
+=over 2
+
+=cut
+#'
+
 @ISA = qw(Exporter);
 @EXPORT = qw(&Issue &formatitem);
-%EXPORT_TAGS = ( );     # eg: TAG => [ qw!name1 name2! ],
-                 
-# your exported package globals go here,
-# as well as any optionally exported functions
-
-@EXPORT_OK   = qw($Var1 %Hashit);
-
-
-# non-exported package globals go here
-use vars qw(@more $stuff);
-       
-# initalize package globals, first exported ones
-
-my $Var1   = '';
-my %Hashit = ();
-                   
-# then the others (which are still accessible as $Some::Module::stuff)
-my $stuff  = '';
-my @more   = ();
-       
-# all file-scoped lexicals must be created before
-# the functions below that use them.
-               
-# file-private lexicals go here
-my $priv_var    = '';
-my %secret_hash = ();
-                           
-# here's a file-private function as a closure,
-# callable as &$priv_func;  it cannot be prototyped.
-my $priv_func = sub {
-  # stuff goes here.
-};
-                                                   
-# make all your functions, whether exported or not;
-
 
+# FIXME - This is only used in C4::Circmain and C4::Circulation, both
+# of which look obsolete. Is this function obsolete as well?
+# If not, this needs a POD.
 sub Issue  {
    my ($env) = @_;
    my $dbh = C4::Context->dbh;
@@ -121,7 +113,8 @@ sub Issue  {
    return ($done);
 }    
 
-
+# FIXME - Not exported, but called by "telnet/borrwraper.pl".
+# Presumably this function is obsolete.
 sub processitems {
   #process a users items
    my ($env,$bornum,$borrower,$items,$items2,$it2p,$amountdue,$itemsdet,$odues)=@_;
@@ -171,23 +164,53 @@ sub processitems {
    return @done;
 }
 
+=item formatitem
+
+  $line = &formatitem($env, $item, $datedue, $charge);
+
+Pretty-prints a description of an item being issued, and returns the
+pretty-printed string.
+
+C<$env> is effectively ignored.
+
+C<$item> is a reference-to-hash whose keys are fields from the items
+table in the Koha database.
+
+C<$datedue> is a string that will be prepended to the output.
+
+C<$charge> is a number that will be appended to the output.
+
+The return value C<$line> is a string of the form
+
+I<$datedue $barcode $title: $author $type$dewey$subclass $charge>
+
+where those values that are not passed in as arguments are obtained
+from C<$item>.
+
+=cut
+#'
 sub formatitem {
    my ($env,$item,$datedue,$charge) = @_;
    my $line = $datedue." ".$item->{'barcode'}." ".$item->{'title'}.": ".$item->{'author'};
+       # FIXME - Use string interpolation or sprintf()
    my $iclass =  $item->{'itemtype'};
+   # FIXME - The Dewey code is a string, not a number.
    if ($item->{'dewey'} > 0) {
      my $dewey = $item->{'dewey'};
      $dewey =~ s/0*$//;
      $dewey =~ s/\.$//;
-     $iclass = $iclass.$dewey.$item->{'subclass'};
+     $iclass = $iclass.$dewey.$item->{'subclass'};     # FIXME - .=
    };
    my $llen = 65 - length($iclass);
    my $line = fmtstr($env,$line,"L".$llen);
-   my $line = $line." $iclass ";
-   my $line = $line.fmtdec($env,$charge,"22");
+               # FIXME - Use sprintf() instead of &fmtstr.
+   my $line = $line." $iclass ";               # FIXME - .=
+   my $line = $line.fmtdec($env,$charge,"22"); # FIXME - .=
    return $line;
 }   
-        
+
+# Only used internally
+# FIXME - Only used by &processitems, which appears to be obsolete.
 sub issueitem{
    my ($env,$dbh,$itemnum,$bornum,$items)=@_;
    $itemnum=uc $itemnum;
@@ -262,6 +285,7 @@ sub issueitem{
         my $resborrower = $btsh->fetchrow_hashref;
         my $msgtxt = chr(7)."Res for $resborrower->{'cardnumber'},";
          $msgtxt = $msgtxt." $resborrower->{'initials'} $resborrower->{'surname'}";
+               # FIXME - .=
          my $ans = msg_ny($env,$msgtxt,"Allow issue?");
         if ($ans eq "N") {
            # print a docket;
@@ -317,6 +341,8 @@ sub issueitem{
    return($item,$charge,$datedue);
 }
 
+# FIXME - A virtually identical function appears in
+# C4::Circulation::Circ2. Pick one and stick with it.
 sub createcharge {
   my ($env,$dbh,$itemno,$bornum,$charge) = @_;
   my $nextaccntno = getnextacctno($env,$bornum,$dbh);
@@ -330,7 +356,7 @@ sub createcharge {
 }
 
 
-
+# Only used internally
 sub updateissues{
   # issue the book
   my ($env,$itemno,$bitno,$dbh,$bornum)=@_;
@@ -379,6 +405,8 @@ sub updateissues{
 # &C4::Circulation::Renewals2::calc_charges and
 # &C4::Circulation::Circ2::calc_charges.
 # Pick one and stick with it.
+
+# Only used internally
 sub calc_charges {
   # calculate charges due
   my ($env, $dbh, $itemno, $bornum)=@_;
@@ -409,4 +437,13 @@ sub calc_charges {
   return ($charge);
 }
 
-END { }       # module clean-up code here (global destructor)
+1;
+__END__
+
+=back
+
+=head1 AUTHOR
+
+Koha Developement team <info@koha.org>
+
+=cut
index 599d60f..e1b40f0 100755 (executable)
@@ -1,6 +1,8 @@
-package C4::Circulation::Main; #assumes C4/Circulation/Main
+package C4::Circulation::Main;
 
-#package to deal with circulation 
+# $Id$
+
+#package to deal with circulation
 
 
 # Copyright 2000-2002 Katipo Communications
@@ -41,49 +43,38 @@ use C4::Search;
 use C4::InterfaceCDK;
 use C4::Security;
 
-use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
-  
+use vars qw($VERSION @ISA @EXPORT);
+
 # set the version for version checking
 $VERSION = 0.01;
-    
+
 @ISA = qw(Exporter);
-@EXPORT = qw(&pastitems &checkoverdues &previousissue 
+@EXPORT = qw(&pastitems &checkoverdues &previousissue
 &checkreserve &checkwaiting &scanbook &scanborrower &getbranch &getprinter);
-%EXPORT_TAGS = ( );     # eg: TAG => [ qw!name1 name2! ],
-                 
-# your exported package globals go here,
-# as well as any optionally exported functions
-
-@EXPORT_OK   = qw($Var1 %Hashit);
-
-
-# non-exported package globals go here
-use vars qw(@more $stuff);
-       
-# initalize package globals, first exported ones
-
-my $Var1   = '';
-my %Hashit = ();
-                   
-# then the others (which are still accessible as $Some::Module::stuff)
-my $stuff  = '';
-my @more   = ();
-       
-# all file-scoped lexicals must be created before
-# the functions below that use them.
-               
-# file-private lexicals go here
-my $priv_var    = '';
-my %secret_hash = ();
-                           
-# here's a file-private function as a closure,
-# callable as &$priv_func;  it cannot be prototyped.
-my $priv_func = sub {
-  # stuff goes here.
-};
-                                                   
-# make all your functions, whether exported or not;
 
+=head1 NAME
+
+C4::Circulation::Main - Koha circulation desk functions
+
+=head1 SYNOPSIS
+
+  use C4::Circulation::Main;
+
+=head1 DESCRIPTION
+
+This module provides functions useful to the circulation desk,
+primarily for checking reserves and overdue items.
+
+=head1 FUNCTIONS
+
+=over 2
+
+=cut
+
+# FIXME - This is only used in C4::Circmain and telnet/startint.pl,
+# which look obsolete. Presumably this means this function is obsolete
+# as well.
+# Otherwise, it needs a POD.
 sub getbranch {
   my ($env) = @_;
   my $dbh = C4::Context->dbh;
@@ -100,7 +91,7 @@ sub getbranch {
       my $data = $sth->fetchrow_hashref;
       $env->{'branchcode'}=$data->{'branchcode'};
   }
-  my $query = "select * from branches  
+  my $query = "select * from branches
     where branchcode = '$env->{'branchcode'}'";
   $sth = $dbh->prepare($query);
   $sth->execute;
@@ -110,6 +101,10 @@ sub getbranch {
   $sth->finish;
 }
 
+# FIXME - This is only used in C4::Circmain and telnet/startint.pl,
+# which look obsolete. Presumably this means this function is obsolete
+# as well.
+# Otherwise, it needs a POD.
 sub getprinter {
   my ($env) = @_;
   my $dbh = C4::Context->dbh;
@@ -129,9 +124,13 @@ sub getprinter {
   }
   $sth->finish;
 }
-                     
+
 # FIXME - This is not the same as &C4::Circulation::pastitems, though
 # the two appear to share some code.
+# FIXME - This function is called in &C4::Circulation::Issues::Issue
+# and in telnet/borrwraper.pl, both of which look obsolete. Presumably
+# this means this function is obsolete as well.
+# Otherwise, it needs a POD.
 sub pastitems{
   #Get list of all items borrower has currently on issue
   my ($env,$bornum,$dbh)=@_;
@@ -154,11 +153,30 @@ sub pastitems{
   return(\@items,\@items2);
 }
 
+=item checkoverdues
+
+  $num_items = &checkoverdues($env, $borrowernumber, $dbh);
+
+Returns the number of overdue books a patron has.
+
+C<$env> is ignored.
+
+C<$borrowernumber> is the patron's borrower number.
+
+C<$dbh> is a DBI handle to the Koha database.
+
+=cut
+#'
 sub checkoverdues{
   #checks whether a borrower has overdue items
+  # FIXME - Use C4::Context->dbh instead of getting $dbh as an argument
   my ($env,$bornum,$dbh)=@_;
+  # FIXME - This is what POSIX::strftime is for.
   my @datearr = localtime;
   my $today = ($datearr[5] + 1900)."-".($datearr[4]+1)."-".$datearr[3];
+  # FIXME - MySQL can figure out what today is, so there's no need
+  # to calculate that separately. Just use
+  #    ... date_due < curdate()
   my $query = "Select count(*) from issues where borrowernumber=$bornum and
         returndate is NULL and date_due < '$today'";
   my $sth=$dbh->prepare($query);
@@ -169,13 +187,15 @@ sub checkoverdues{
 }
 
 # FIXME - This is quite similar to &C4::Circulation::previousissue
+# FIXME - Never used. Obsolete, presumably.
+# Otherwise, it needs a POD.
 sub previousissue {
   my ($env,$itemnum,$dbh,$bornum)=@_;
-  my $sth=$dbh->prepare("Select 
+  my $sth=$dbh->prepare("Select
      firstname,surname,issues.borrowernumber,cardnumber,returndate
-     from issues,borrowers where 
+     from issues,borrowers where
      issues.itemnumber='$itemnum' and
-     issues.borrowernumber=borrowers.borrowernumber 
+     issues.borrowernumber=borrowers.borrowernumber
      and issues.returndate is NULL");
   $sth->execute;
   my $borrower=$sth->fetchrow_hashref;
@@ -207,9 +227,9 @@ sub previousissue {
         } else {
           $canissue = "N";
         }
-      }    
+      }
     } else {
-      my $text="Issued to $borrower->{'firstname'} $borrower->{'surname'} ($borrower->{'cardnumber'})";    
+      my $text="Issued to $borrower->{'firstname'} $borrower->{'surname'} ($borrower->{'cardnumber'})";
       my $resp = C4::InterfaceCDK::msg_yn($env,$text,"Mark as returned?");
       if ( $resp eq "Y") {
         &returnrecord($env,$dbh,$borrower->{'borrowernumber'},$itemnum);
@@ -217,21 +237,47 @@ sub previousissue {
         $canissue = "N";
       }
     }
-  } 
+  }
   return($borrower->{'borrowernumber'},$canissue,$newdate);
 }
 
+=item checkreserve
+
+  ($borrowernumber, $reserve) = &checkreserve($env, $dbh, $itemnumber);
+
+C<$env> is ignored.
+
+C<$dbh> is a DBI handle to the Koha database.
 
+C<$itemnumber> is the number of the item to find.
+
+C<&checkreserve> returns two values:
+
+C<$borrowernumber> is the borrower number of the patron for whom the
+book is reserved, or the empty string. I can't tell when it returns a
+number and when it returns a string, nor what it means.
+
+C<$reserve> describes the reserved item. It is a reference-to-hash
+whose keys are the fields of the reserves and items tables of the Koha
+database.
+
+=cut
+#'
 sub checkreserve{
-  # Check for reserves for biblio 
+  # Check for reserves for biblio
+  # FIXME - Use C4::Context->dbh to get $dbh, instead of passing it
+  # on the argument list.
   my ($env,$dbh,$itemnum)=@_;
   my $resbor = "";
-  my $query = "select * from reserves,items 
+  # Find this item in the reserves.
+  # Apparently reserves.found=='W' means "Waiting".
+  # FIXME - Is it necessary to get every field from both tables?
+  my $query = "select * from reserves,items
     where (items.itemnumber = '$itemnum')
     and (reserves.cancellationdate is NULL)
     and (items.biblionumber = reserves.biblionumber)
     and ((reserves.found = 'W')
-    or (reserves.found is null)) 
+    or (reserves.found is null))
     order by priority";
   my $sth = $dbh->prepare($query);
   $sth->execute();
@@ -239,31 +285,34 @@ sub checkreserve{
   if (my $data=$sth->fetchrow_hashref) {
     $resrec=$data;
     my $const = $data->{'constrainttype'};
-    if ($const eq "a") {
-      $resbor = $data->{'borrowernumber'}; 
+    if ($const eq "a") {               # FIXME - What does 'a' mean?
+      $resbor = $data->{'borrowernumber'};
     } else {
       my $found = 0;
-      my $cquery = "select * from reserveconstraints,items 
-         where (borrowernumber='$data->{'borrowernumber'}') 
+      my $cquery = "select * from reserveconstraints,items
+         where (borrowernumber='$data->{'borrowernumber'}')
          and reservedate='$data->{'reservedate'}'
         and reserveconstraints.biblionumber='$data->{'biblionumber'}'
-        and (items.itemnumber=$itemnum and 
+        and (items.itemnumber=$itemnum and
         items.biblioitemnumber = reserveconstraints.biblioitemnumber)";
       my $csth = $dbh->prepare($cquery);
       $csth->execute;
       if (my $cdata=$csth->fetchrow_hashref) {$found = 1;}
-      if ($const eq 'o') {
+      if ($const eq 'o') {             # FIXME - What does 'o' mean?
         if ($found eq 1) {$resbor = $data->{'borrowernumber'};}
       } else {
-        if ($found eq 0) {$resbor = $data->{'borrowernumber'};} 
+        if ($found eq 0) {$resbor = $data->{'borrowernumber'};}
       }
       $csth->finish();
-    }     
+    }
   }
   $sth->finish;
   return ($resbor,$resrec);
 }
 
+# FIXME - This is only used in C4::Circulation::Borrower, which
+# appears to be obsolete. Presumably this function is obsolete as
+# well. Otherwise, it needs a POD.
 sub checkwaiting{
   # check for reserves waiting
   my ($env,$dbh,$bornum)=@_;
@@ -283,6 +332,9 @@ sub checkwaiting{
 }
 
 # FIXME - This is identical to &C4::Circulation::scanbook
+# FIXME - This function is only used in tkperl/tkcirc, if anywhere
+# (it's hard to tell). Presumably it's obsolete.
+# Otherwise, it needs a POD.
 sub scanbook {
   my ($env,$interface)=@_;
   #scan barcode
@@ -292,14 +344,26 @@ sub scanbook {
 }
 
 # FIXME - This is very similar to &C4::Circulation::scanborrower
+# FIXME - This is only used in C4::Circulation::Borrower, which
+# appears to be obsolete. Presumably this function is obsolete as
+# well.
+# Otherwise, it needs a POD.
 sub scanborrower {
   my ($env,$interface)=@_;
   #scan barcode
   my ($number,$reason,$book)=C4::InterfaceCDK::borrower_dialog($env); #C4::InterfaceCDK
-  $number= $number;
+  $number= $number;            # FIXME - WTF?
   $book=uc $book;
   return ($number,$reason,$book);
 }
 
+1;
+__END__
+
+=back
+
+=head1 AUTHOR
+
+Koha Developement team <info@koha.org>
 
-END { }       # module clean-up code here (global destructor)
+=cut