From 61c133ca318babfb0d03ac70c662cc2efc74af4c Mon Sep 17 00:00:00 2001 From: tipaul Date: Wed, 26 Oct 2005 08:29:28 +0000 Subject: [PATCH] code cleaning : removing useless package (everything needed copied in Accounts2.pm) --- C4/Accounts.pm | 250 ------------------------------------------------ C4/Accounts2.pm | 218 +---------------------------------------- 2 files changed, 1 insertion(+), 467 deletions(-) delete mode 100755 C4/Accounts.pm diff --git a/C4/Accounts.pm b/C4/Accounts.pm deleted file mode 100755 index b991e26933..0000000000 --- a/C4/Accounts.pm +++ /dev/null @@ -1,250 +0,0 @@ -package C4::Accounts; #assumes C4/Accounts - -# FIXME: This module uses the CDK modules, and crashes if called from a web script -# Hence the existence of Accounts2 -# -# This module will be deprecated when we build a new curses/slang/character -# based interface. - -# $Id$ - -# Copyright 2000-2002 Katipo Communications -# -# This file is part of Koha. -# -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. -# -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA - -use strict; -require Exporter; -use DBI; -use C4::Context; -use C4::Format; -use C4::Biblio; -use C4::Stats; -#use C4::InterfaceCDK; -#use C4::Interface::AccountsCDK; -use vars qw($VERSION @ISA @EXPORT); - -# set the version for version checking -$VERSION = 0.01; - -=head1 NAME - -C4::Accounts - Functions for dealing with Koha accounts - -=head1 SYNOPSIS - - use C4::Accounts; - -=head1 DESCRIPTION - -The functions in this module deal with the monetary aspect of Koha, -including looking up and modifying the amount of money owed by a -patron. - -=head1 FUNCTIONS - -=over 2 - -=cut - -@ISA = qw(Exporter); -@EXPORT = qw(&checkaccount &reconcileaccount &getnextacctno); - -=item checkaccount - - $owed = &checkaccount($env, $borrowernumber, $dbh, $date); - -Looks up the total amount of money owed by a borrower (fines, etc.). - -C<$borrowernumber> specifies the borrower to look up. - -C<$dbh> is a DBI::db handle for the Koha database. - -C<$env> is ignored. - -=cut -#' -sub checkaccount { - #take borrower number - #check accounts and list amounts owing - my ($env,$bornumber,$dbh,$date)=@_; - my $select="SELECT SUM(amountoutstanding) AS total - FROM accountlines - WHERE borrowernumber = ? - AND amountoutstanding<>0"; - my @bind = ($bornumber); - if ($date && $date ne ''){ - $select.=" AND date < ?"; - push(@bind,$date); - } - # print $select; - my $sth=$dbh->prepare($select); - $sth->execute(@bind); - my $data=$sth->fetchrow_hashref; - my $total = $data->{'total'}; - $sth->finish; - # output(1,2,"borrower owes $total"); - #if ($total > 0){ - # # output(1,2,"borrower owes $total"); - # if ($total > 5){ - # reconcileaccount($env,$dbh,$bornumber,$total); - # } - #} - # pause(); - return($total); -} - -# XXX - POD. Need to figure out C4/Interface/AccountsCDK.pm first, -# though -# FIXME - It looks as though this function really wants to be part of -# a curses-based script. -sub reconcileaccount { - #print put money owing give person opportunity to pay it off - my ($env,$dummy,$bornumber,$total)=@_; - my $dbh = C4::Context->dbh; - #get borrower record - my $sth=$dbh->prepare("select * from borrowers - where borrowernumber=$bornumber"); - $sth->execute; - my $borrower=$sth->fetchrow_hashref; - $sth->finish(); - #get borrower information - $sth=$dbh->prepare("Select * from accountlines where - borrowernumber=$bornumber and amountoutstanding<>0 order by date"); - $sth->execute; - #display account information - &clearscreen(); - #&helptext('F11 quits'); - output(20,0,"Accounts"); - my @accountlines; - my $row=4; - my $i=0; - my $text; - #output (1,2,"Account Info"); - #output (1,3,"Item\tDate \tAmount\tDescription"); - while (my $data=$sth->fetchrow_hashref){ - my $line=$i+1; - my $amount=0+$data->{'amountoutstanding'}; - my $itemdata = getbibliofromitemnumber($env,$dbh,$data->{'itemnumber'}); - $line= $data->{'accountno'}." ".$data->{'date'}." ".$data->{'accounttype'}." "; - my $title = $itemdata->{'title'}; - if (length($title) > 15 ) {$title = substr($title,0,15);} - $line .= $itemdata->{'barcode'}." $title ".$data->{'description'}; - $line = fmtstr($env,$line,"L65")." ".fmtdec($env,$amount,"52"); - push @accountlines,$line; - $i++; - } - #get amount paid and update database - my ($data,$reason)= - &accountsdialog($env,"Payment Entry",$borrower,\@accountlines,$total); - if ($data>0) { - &recordpayment($env,$bornumber,$dbh,$data); - #Check if the borrower still owes - $total=&checkaccount($env,$bornumber,$dbh); - } - return($total); - -} - -# FIXME - This function is never used. Then again, it's not exported, -# either. -sub recordpayment{ - #here we update both the accountoffsets and the account lines - my ($env,$bornumber,$dbh,$data)=@_; - my $newamtos = 0; - my $accdata = ""; - my $amountleft = $data; - # begin transaction -# my $sth = $dbh->prepare("begin"); -# $sth->execute; - my $nextaccntno = getnextacctno($env,$bornumber,$dbh); - # get lines with outstanding amounts to offset - my $sth = $dbh->prepare("select * from accountlines - where (borrowernumber = ?) and (amountoutstanding<>0) - order by date"); - $sth->execute($bornumber); - # offset transactions - while (($accdata=$sth->fetchrow_hashref) and ($amountleft>0)){ - if ($accdata->{'amountoutstanding'} < $amountleft) { - $newamtos = 0; - $amountleft -= $accdata->{'amountoutstanding'}; - } else { - $newamtos = $accdata->{'amountoutstanding'} - $amountleft; - $amountleft = 0; - } - my $thisacct = $accdata->{accountno}; - my $usth = $dbh->prepare("update accountlines set amountoutstanding= ? - where (borrowernumber = ?) and (accountno=?)"); - $usth->execute($newamtos,$bornumber,$thisacct); - $usth->finish; - - $usth = $dbh->prepare("insert into accountoffsets - (borrowernumber, accountno, offsetaccount, offsetamount) - values (?,?,?,?)"); -# print $updquery - $usth->execute($bornumber,$accdata->{'accountno'},$nextaccntno,$newamtos); - $usth->finish; - } - # create new line - #$updquery = "insert into accountlines (borrowernumber, - #accountno,date,amount,description,accounttype,amountoutstanding) values - #($bornumber,$nextaccntno,datetime('now'::abstime),0-$data,'Payment,thanks', - #'Pay',0-$amountleft)"; - my $usth = $dbh->prepare("insert into accountlines - (borrowernumber, accountno,date,amount,description,accounttype,amountoutstanding) - values (?,?,now(),?,?,'Payment,thanks','Pay')"); - $usth->execute($bornumber,$nextaccntno,0-$data,0-$amountleft); - $usth->finish; - UpdateStats($env,'branch','payment',$data) -} - -=item getnextacctno - - $nextacct = &getnextacctno($env, $borrowernumber, $dbh); - -Returns the next unused account number for the patron with the given -borrower number. - -C<$dbh> is a DBI::db handle to the Koha database. - -C<$env> is ignored. - -=cut -# FIXME - Okay, so what does the above actually _mean_? -sub getnextacctno { - my ($env,$bornumber,$dbh)=@_; - my $nextaccntno = 1; - - my $sth = $dbh->prepare("select max(accountno)+1 from accountlines"); - $sth->execute; - if (my $accdata=$sth->fetchrow_hashref){ - $nextaccntno = $accdata->{'accountno'} + 1; - } - $sth->finish; - return$nextaccntno; -} - -END { } # module clean-up code here (global destructor) - -1; -__END__ - -=back - -=head1 SEE ALSO - -C4::Accounts2(3), DBI(3) - -=cut diff --git a/C4/Accounts2.pm b/C4/Accounts2.pm index 8052db4eb8..3aa6996f83 100755 --- a/C4/Accounts2.pm +++ b/C4/Accounts2.pm @@ -52,7 +52,7 @@ patron. =cut @ISA = qw(Exporter); -@EXPORT = qw(&recordpayment &fixaccounts &makepayment &manualinvoice +@EXPORT = qw( &getnextacctno); # FIXME - Never used @@ -60,138 +60,7 @@ sub displayaccounts{ my ($env)=@_; } -=item recordpayment - &recordpayment($env, $borrowernumber, $payment); - -Record payment by a patron. C<$borrowernumber> is the patron's -borrower number. C<$payment> is a floating-point number, giving the -amount that was paid. C<$env> is a reference-to-hash; -C<$env-E{branchcode}> is the code of the branch where payment was -made. - -Amounts owed are paid off oldest first. That is, if the patron has a -$1 fine from Feb. 1, another $1 fine from Mar. 1, and makes a payment -of $1.50, then the oldest fine will be paid off in full, and $0.50 -will be credited to the next one. - -=cut -#' -sub recordpayment{ - #here we update both the accountoffsets and the account lines - my ($env,$bornumber,$data)=@_; - warn "in accounts2.pm"; - my $dbh = C4::Context->dbh; - my $newamtos = 0; - my $accdata = ""; - my $branch=$env->{'branchcode'}; - warn $branch; - my $amountleft = $data; - # begin transaction - my $nextaccntno = getnextacctno($env,$bornumber,$dbh); - # get lines with outstanding amounts to offset - my $sth = $dbh->prepare("select * from accountlines - where (borrowernumber = ?) and (amountoutstanding<>0) - order by date"); - $sth->execute($bornumber); - # offset transactions - while (($accdata=$sth->fetchrow_hashref) and ($amountleft>0)){ - if ($accdata->{'amountoutstanding'} < $amountleft) { - $newamtos = 0; - $amountleft -= $accdata->{'amountoutstanding'}; - } else { - $newamtos = $accdata->{'amountoutstanding'} - $amountleft; - $amountleft = 0; - } - my $thisacct = $accdata->{accountno}; - my $usth = $dbh->prepare("update accountlines set amountoutstanding= ? - where (borrowernumber = ?) and (accountno=?)"); - $usth->execute($newamtos,$bornumber,$thisacct); - $usth->finish; - $usth = $dbh->prepare("insert into accountoffsets - (borrowernumber, accountno, offsetaccount, offsetamount) - values (?,?,?,?)"); - $usth->execute($bornumber,$accdata->{'accountno'},$nextaccntno,$newamtos); - $usth->finish; - } - # create new line - my $usth = $dbh->prepare("insert into accountlines - (borrowernumber, accountno,date,amount,description,accounttype,amountoutstanding) - values (?,?,now(),?,'Payment,thanks','Pay',?)"); - $usth->execute($bornumber,$nextaccntno,0-$data,0-$amountleft); - $usth->finish; - UpdateStats($env,$branch,'payment',$data,'','','',$bornumber); - $sth->finish; -} - -=item makepayment - - &makepayment($borrowernumber, $acctnumber, $amount, $branchcode); - -Records the fact that a patron has paid off the entire amount he or -she owes. - -C<$borrowernumber> is the patron's borrower number. C<$acctnumber> is -the account that was credited. C<$amount> is the amount paid (this is -only used to record the payment. It is assumed to be equal to the -amount owed). C<$branchcode> is the code of the branch where payment -was made. - -=cut -#' -# FIXME - I'm not at all sure about the above, because I don't -# understand what the acct* tables in the Koha database are for. -sub makepayment{ - #here we update both the accountoffsets and the account lines - #updated to check, if they are paying off a lost item, we return the item - # from their card, and put a note on the item record - my ($bornumber,$accountno,$amount,$user,$branch)=@_; - my %env; - $env{'branchcode'}=$branch; - my $dbh = C4::Context->dbh; - # begin transaction - my $nextaccntno = getnextacctno(\%env,$bornumber,$dbh); - my $newamtos=0; - my $sth=$dbh->prepare("Select * from accountlines where borrowernumber=? and accountno=?"); - $sth->execute($bornumber,$accountno); - my $data=$sth->fetchrow_hashref; - $sth->finish; - - $dbh->do(<do(<do(<finish; - #check to see what accounttype - if ($data->{'accounttype'} eq 'Rep' || $data->{'accounttype'} eq 'L'){ - returnlost($bornumber,$data->{'itemnumber'}); - } -} =item getnextacctno @@ -221,33 +90,6 @@ sub getnextacctno { return($nextaccntno); } -=item fixaccounts - - &fixaccounts($borrowernumber, $accountnumber, $amount); - -=cut -#' -# FIXME - I don't understand what this function does. -sub fixaccounts { - my ($borrowernumber,$accountno,$amount)=@_; - my $dbh = C4::Context->dbh; - my $sth=$dbh->prepare("Select * from accountlines where borrowernumber=? - and accountno=?"); - $sth->execute($borrowernumber,$accountno); - my $data=$sth->fetchrow_hashref; - # FIXME - Error-checking - my $diff=$amount-$data->{'amount'}; - my $outstanding=$data->{'amountoutstanding'}+$diff; - $sth->finish; - - $dbh->do(<finish; } -=item manualinvoice - - &manualinvoice($borrowernumber, $itemnumber, $description, $type, - $amount, $user); - -C<$borrowernumber> is the patron's borrower number. -C<$description> is a description of the transaction. -C<$type> may be one of C, C, C, C, C, C, C, -or C. -C<$itemnumber> is the item involved, if pertinent; otherwise, it -should be the empty string. - -=cut -#' -# FIXME - Okay, so what does this function do, really? -sub manualinvoice{ - my ($bornum,$itemnum,$desc,$type,$amount,$user)=@_; - my $dbh = C4::Context->dbh; - my $insert; - $itemnum=~ s/ //g; - my %env; - my $accountno=getnextacctno('',$bornum,$dbh); - my $amountleft=$amount; - - if ($type eq 'CS' || $type eq 'CB' || $type eq 'CW' - || $type eq 'CF' || $type eq 'CL'){ - my $amount2=$amount*-1; # FIXME - $amount2 = -$amount - $amountleft=fixcredit(\%env,$bornum,$amount2,$itemnum,$type,$user); - } - if ($type eq 'N'){ - $desc.="New Card"; - } - if ($type eq 'L' && $desc eq ''){ - $desc="Lost Item"; - } - if ($type eq 'REF'){ - $amountleft=refund('',$bornum,$amount); - } - if ($itemnum ne ''){ -#FIXME to use ? before uncommenting -# my $sth=$dbh->prepare("Select * from items where barcode='$itemnum'"); -# $sth->execute; -# my $data=$sth->fetchrow_hashref; -# $sth->finish; - $desc.=" ".$itemnum; - my $sth=$dbh->prepare("INSERT INTO accountlines - (borrowernumber, accountno, date, amount, description, accounttype, amountoutstanding, itemnumber) - VALUES (?, ?, now(), ?,?, ?,?,?)"); -# $sth->execute($bornum, $accountno, $amount, $desc, $type, $amountleft, $data->{'itemnumber'}); - $sth->execute($bornum, $accountno, $amount, $desc, $type, $amountleft, $itemnum); - } else { - $desc=$dbh->quote($desc); - my $sth=$dbh->prepare("INSERT INTO accountlines - (borrowernumber, accountno, date, amount, description, accounttype, amountoutstanding) - VALUES (?, ?, now(), ?, ?, ?, ?)"); - $sth->execute($bornum, $accountno, $amount, $desc, $type, $amountleft); - } -} # fixcredit # $amountleft = &fixcredit($env, $bornumber, $data, $barcode, $type, $user); -- 2.39.5