From 8ef923a92f89de35c8c338c4b4955d011941c6b7 Mon Sep 17 00:00:00 2001 From: rangi Date: Wed, 27 Mar 2002 00:02:40 +0000 Subject: [PATCH] Shifting writeoff code back into pay.pl (redirecting to writeoff.pl was breaking when the borrower owes a lot of fines) --- pay.pl | 197 +++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 123 insertions(+), 74 deletions(-) diff --git a/pay.pl b/pay.pl index d3299d24fa..65b5749780 100755 --- a/pay.pl +++ b/pay.pl @@ -8,9 +8,12 @@ use C4::Output; use CGI; use C4::Search; use C4::Accounts2; -my $input=new CGI; +use C4::Database; +use C4::Stats; +my $input=new CGI; +#print $input->header; my $bornum=$input->param('bornum'); if ($bornum eq ''){ $bornum=$input->param('bornum0'); @@ -52,89 +55,135 @@ my %env; $env{'branchcode'}=$user; my $total=$input->param('total'); if ($check ==0){ + print $input->header; if ($total ne ''){ recordpayment(\%env,$bornum,$total); } -my ($numaccts,$accts,$total)=getboracctrecord('',\%bor); -print $input->header; -print startpage(); -print startmenu('member'); -print <Pay Fines for $data->{'firstname'} $data->{'surname'}

-

-

- - - - - - - + my ($numaccts,$accts,$total)=getboracctrecord('',\%bor); + + print startpage(); + print startmenu('member'); + print <Pay Fines for $data->{'firstname'} $data->{'surname'}

+

+

+

FINES & CHARGESAMOUNT OWING
+ + + + + + printend ; -for (my $i=0;$i<$numaccts;$i++){ -if ($accts->[$i]{'amountoutstanding'} > 0){ -$accts->[$i]{'amount'}+=0.00; -$accts->[$i]{'amountoutstanding'}+=0.00; -print < - - - - - - - + for (my $i=0;$i<$numaccts;$i++){ + if ($accts->[$i]{'amountoutstanding'} > 0){ + $accts->[$i]{'amount'}+=0.00; + $accts->[$i]{'amountoutstanding'}+=0.00; + print < + + + + + + + printend ; -} -} -print < - - - - - - - - - - - - - - - - - - -
FINES & CHARGESAMOUNT OWING
Unpaid -Pay -Writeoff -[$i]{'itemnumber'}> -[$i]{'accounttype'}> -[$i]{'amount'}> -[$i]{'amountoutstanding'}> - -[$i]{'accountno'}> -$accts->[$i]{'description'} $accts->[$i]{'title'}$accts->[$i]{'accounttype'}$accts->[$i]{'amount'}$accts->[$i]{'amountoutstanding'}
Unpaid + Pay + Writeoff + [$i]{'itemnumber'}> + [$i]{'accounttype'}> + [$i]{'amount'}> + [$i]{'amountoutstanding'}> + + [$i]{'accountno'}> + $accts->[$i]{'description'} $accts->[$i]{'title'}$accts->[$i]{'accounttype'}$accts->[$i]{'amount'}$accts->[$i]{'amountoutstanding'}
Total Due$total
AMOUNT PAID
-
- - - - - - -
-

 

+ } + } + print < + + Total Due + $total + + + + + + + +
+

 

printend ; -print endmenu('member'); -print endpage(); + print endmenu('member'); + print endpage(); } else { - my $quety=$input->query_string; - print $input->redirect("/cgi-bin/koha/sec/writeoff.pl?$quety"); +# my $quety=$input->query_string; +# print $input->redirect("/cgi-bin/koha/sec/writeoff.pl?$quety"); + my%inp; + my @name=$input->param; + for (my $i=0;$i<@name;$i++){ + my $test=$input->param($name[$i]); + if ($test eq 'wo'){ + my $temp=$name[$i]; + $temp=~ s/payfine//; + $inp{$name[$i]}=$temp; + } + } + my $bornum; + while ( my ($key, $value) = each %inp){ + # print $key,$value; + my $accounttype=$input->param("accounttype$value"); + $bornum=$input->param("bornum$value"); + my $itemno=$input->param("itemnumber$value"); + my $amount=$input->param("amount$value"); + if ($accounttype eq 'Res'){ + my $accountno=$input->param("accountno$value"); + writeoff($bornum,$accountno,$itemno,$accounttype,$amount); + } else { + writeoff($bornum,'',$itemno,$accounttype,$amount); + } + } + $bornum=$input->param('bornum'); + print $input->redirect("/cgi-bin/koha/pay.pl?bornum=$bornum"); +} + + +sub writeoff{ + my ($bornum,$accountnum,$itemnum,$accounttype,$amount)=@_; + my $user=$input->remote_user; + $user=~ s/Levin/C/; + $user=~ s/Foxton/F/; + $user=~ s/Shannon/S/; + my $dbh=C4Connect; + my $env; + my $query="Update accountlines set amountoutstanding=0 where "; + if ($accounttype eq 'Res'){ + $query.="accounttype='Res' and accountno='$accountnum' and borrowernumber='$bornum'"; + } else { + $query.="accounttype='$accounttype' and itemnumber='$itemnum' and borrowernumber='$bornum'"; + } + my $sth=$dbh->prepare($query); + # print $query; + $sth->execute; + $sth->finish; + $query="select max(accountno) from accountlines"; + $sth=$dbh->prepare($query); + $sth->execute; + my $account=$sth->fetchrow_hashref; + $sth->finish; + $account->{'max(accountno)'}++; + $query="insert into accountlines (borrowernumber,accountno,itemnumber,date,amount,description,accounttype) + values ('$bornum','$account->{'max(accountno)'}','$itemnum',now(),'$amount','Writeoff','W')"; + $sth=$dbh->prepare($query); + $sth->execute; + $sth->finish; +# print $query; + $dbh->disconnect; + UpdateStats($env,$user,'writeoff',$amount,'','','',$bornum); } -- 2.39.2