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
use C4::Format;
use C4::Search;
use C4::Stats;
-use C4::InterfaceCDK;
-use C4::Interface::AccountsCDK;
+#use C4::InterfaceCDK;
+#use C4::Interface::AccountsCDK;
use vars qw($VERSION @ISA @EXPORT);
# set the version for version checking
@ISA = qw(Exporter);
@EXPORT = qw(&checkaccount &reconcileaccount &getnextacctno);
-# FIXME - This is never used
-sub displayaccounts{
- my ($env)=@_;
-}
=item checkaccount
$line= $data->{'accountno'}." ".$data->{'date'}." ".$data->{'accounttype'}." ";
my $title = $itemdata->{'title'};
if (length($title) > 15 ) {$title = substr($title,0,15);}
- $line= $line.$itemdata->{'barcode'}." $title ".$data->{'description'};
+ $line .= $itemdata->{'barcode'}." $title ".$data->{'description'};
$line = fmtstr($env,$line,"L65")." ".fmtdec($env,$amount,"52");
push @accountlines,$line;
$i++;
sub recordpayment{
#here we update both the accountoffsets and the account lines
my ($env,$bornumber,$dbh,$data)=@_;
- my $updquery = "";
my $newamtos = 0;
my $accdata = "";
my $amountleft = $data;
# $sth->execute;
my $nextaccntno = getnextacctno($env,$bornumber,$dbh);
# get lines with outstanding amounts to offset
- my $query = "select * from accountlines
- where (borrowernumber = '$bornumber') and (amountoutstanding<>0)
- order by date";
- my $sth = $dbh->prepare($query);
- $sth->execute;
+ 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 = $amountleft - $accdata->{'amountoutstanding'};
+ $amountleft -= $accdata->{'amountoutstanding'};
} else {
$newamtos = $accdata->{'amountoutstanding'} - $amountleft;
$amountleft = 0;
}
my $thisacct = $accdata->{accountno};
- $updquery = "update accountlines set amountoutstanding= '$newamtos'
- where (borrowernumber = '$bornumber') and (accountno='$thisacct')";
- my $usth = $dbh->prepare($updquery);
- $usth->execute;
+ my $usth = $dbh->prepare("update accountlines set amountoutstanding= ?
+ where (borrowernumber = ?) and (accountno=?)");
+ $usth->execute($newamtos,$bornumber,$thisacct);
$usth->finish;
- $updquery = "insert into accountoffsets
+
+ $usth = $dbh->prepare("insert into accountoffsets
(borrowernumber, accountno, offsetaccount, offsetamount)
- values ($bornumber,$accdata->{'accountno'},$nextaccntno,$newamtos)";
- # FIXME - There's already a $usth in this scope.
- my $usth = $dbh->prepare($updquery);
+ values (?,?,?,?)");
# print $updquery
- $usth->execute;
+ $usth->execute($bornumber,$accdata->{'accountno'},$nextaccntno,$newamtos);
$usth->finish;
}
# create new line
#accountno,date,amount,description,accounttype,amountoutstanding) values
#($bornumber,$nextaccntno,datetime('now'::abstime),0-$data,'Payment,thanks',
#'Pay',0-$amountleft)";
- $updquery = "insert into accountlines
+ my $usth = $dbh->prepare("insert into accountlines
(borrowernumber, accountno,date,amount,description,accounttype,amountoutstanding)
- values ($bornumber,$nextaccntno,now(),0-$data,'Payment,thanks',
- 'Pay',0-$amountleft)";
- my $usth = $dbh->prepare($updquery);
- $usth->execute;
+ values (?,?,now(),?,?,'Payment,thanks','Pay')");
+ $usth->execute($bornumber,$nextaccntno,0-$data,0-$amountleft);
$usth->finish;
UpdateStats($env,'branch','payment',$data)
-# $sth->finish;
-# $query = "commit";
-# $sth = $dbh->prepare;
-# $sth->execute;
-# $sth-finish;
}
=item getnextacctno
sub getnextacctno {
my ($env,$bornumber,$dbh)=@_;
my $nextaccntno = 1;
- # FIXME - This could just be
- # SELECT max(accountno)+1 from accountlines;
- my $query = "select * from accountlines
- where (borrowernumber = '$bornumber')
- order by accountno desc";
- my $sth = $dbh->prepare($query);
+
+ 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);
+ return$nextaccntno;
}
END { } # module clean-up code here (global destructor)
1;
__END__
+
=back
=head1 SEE ALSO
-L<DBI(3)|DBI>
+C4::Accounts2(3), DBI(3)
=cut