Update of /cvsroot/koha/koha In directory usw-pr-cvs1:/tmp/cvs-serv8133 Modified Files: pay.pl Log Message: Shifting writeoff code back into pay.pl (redirecting to writeoff.pl was breaking when the borrower owes a lot of fines) Index: pay.pl =================================================================== RCS file: /cvsroot/koha/koha/pay.pl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** pay.pl 2 Apr 2001 22:51:26 -0000 1.2 --- pay.pl 27 Mar 2002 00:02:40 -0000 1.3 *************** *** 9,15 **** use C4::Search; use C4::Accounts2; - my $input=new CGI; my $bornum=$input->param('bornum'); if ($bornum eq ''){ --- 9,18 ---- use C4::Search; use C4::Accounts2; + use C4::Database; + use C4::Stats; + my $input=new CGI; + #print $input->header; my $bornum=$input->param('bornum'); if ($bornum eq ''){ *************** *** 53,140 **** my $total=$input->param('total'); if ($check ==0){ if ($total ne ''){ recordpayment(\%env,$bornum,$total); } ! my ($numaccts,$accts,$total)=getboracctrecord('',\%bor); ! print $input->header; ! print startpage(); ! print startmenu('member'); ! print <<printend ! <FONT SIZE=6><em>Pay Fines for $data->{'firstname'} $data->{'surname'}</em></FONT><P> ! <center> ! <p> ! <TABLE CELLSPACING=0 CELLPADDING=5 border=1 > ! <TR VALIGN=TOP> ! <td bgcolor="99cc33" background="/images/background-mem.gif" colspan=4><B>FINES & CHARGES</TD> ! <td bgcolor="99cc33" background="/images/background-mem.gif" colspan=4><B>AMOUNT OWING</TD> ! </TR> ! <form action=/cgi-bin/koha/pay.pl method=post> ! <input type=hidden name=bornum value=$bornum> printend ; ! for (my $i=0;$i<$numaccts;$i++){ ! if ($accts->[$i]{'amountoutstanding'} > 0){ ! $accts->[$i]{'amount'}+=0.00; ! $accts->[$i]{'amountoutstanding'}+=0.00; ! print <<printend ! <tr VALIGN=TOP > ! <TD><input type=radio name=payfine$i value=no checked>Unpaid ! <input type=radio name=payfine$i value=yes>Pay ! <input type=radio name=payfine$i value=wo>Writeoff ! <input type=hidden name=itemnumber$i value=$accts->[$i]{'itemnumber'}> ! <input type=hidden name=accounttype$i value=$accts->[$i]{'accounttype'}> ! <input type=hidden name=amount$i value=$accts->[$i]{'amount'}> ! <input type=hidden name=out$i value=$accts->[$i]{'amountoutstanding'}> ! <input type=hidden name=bornum$i value=$bornum> ! <input type=hidden name=accountno$i value=$accts->[$i]{'accountno'}> ! </td> ! <TD>$accts->[$i]{'description'} $accts->[$i]{'title'}</td> ! <TD>$accts->[$i]{'accounttype'}</td> ! <td>$accts->[$i]{'amount'}</td> ! <TD>$accts->[$i]{'amountoutstanding'}</td> ! </tr> printend ; ! } ! } ! print <<printend ! <tr VALIGN=TOP > ! <TD></td> ! <TD colspan=2><b>Total Due</b></td> ! ! <TD><b>$total</b></td> ! ! </tr> ! ! ! ! <tr VALIGN=TOP > ! <TD></td> ! <TD colspan=3><b>AMOUNT PAID</b></td> ! <TD><input type=text name=total value="" SIZE=7></td> ! </tr> ! <tr VALIGN=TOP > ! <TD colspan=5 align=right> ! <INPUT TYPE="image" name="submit" VALUE="pay" height=42 WIDTH=187 BORDER=0 src="/images/pay-fines.gif"></td> ! </tr> ! </form> ! </table> ! ! ! ! ! ! ! <br clear=all> ! <p> </p> printend ; ! print endmenu('member'); ! print endpage(); } else { ! my $quety=$input->query_string; ! print $input->redirect("/cgi-bin/koha/sec/writeoff.pl?$quety"); } --- 56,189 ---- 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 startpage(); ! print startmenu('member'); ! print <<printend ! <FONT SIZE=6><em>Pay Fines for $data->{'firstname'} $data->{'surname'}</em></FONT><P> ! <center> ! <p> ! <TABLE CELLSPACING=0 CELLPADDING=5 border=1 > ! <TR VALIGN=TOP> ! <td bgcolor="99cc33" background="/images/background-mem.gif" colspan=4><B>FINES & CHARGES</TD> ! <td bgcolor="99cc33" background="/images/background-mem.gif" colspan=4><B>AMOUNT OWING</TD> ! </TR> ! <form action=/cgi-bin/koha/pay.pl method=post> ! <input type=hidden name=bornum value=$bornum> printend ; ! for (my $i=0;$i<$numaccts;$i++){ ! if ($accts->[$i]{'amountoutstanding'} > 0){ ! $accts->[$i]{'amount'}+=0.00; ! $accts->[$i]{'amountoutstanding'}+=0.00; ! print <<printend ! <tr VALIGN=TOP > ! <TD><input type=radio name=payfine$i value=no checked>Unpaid ! <input type=radio name=payfine$i value=yes>Pay ! <input type=radio name=payfine$i value=wo>Writeoff ! <input type=hidden name=itemnumber$i value=$accts->[$i]{'itemnumber'}> ! <input type=hidden name=accounttype$i value=$accts->[$i]{'accounttype'}> ! <input type=hidden name=amount$i value=$accts->[$i]{'amount'}> ! <input type=hidden name=out$i value=$accts->[$i]{'amountoutstanding'}> ! <input type=hidden name=bornum$i value=$bornum> ! <input type=hidden name=accountno$i value=$accts->[$i]{'accountno'}> ! </td> ! <TD>$accts->[$i]{'description'} $accts->[$i]{'title'}</td> ! <TD>$accts->[$i]{'accounttype'}</td> ! <td>$accts->[$i]{'amount'}</td> ! <TD>$accts->[$i]{'amountoutstanding'}</td> ! </tr> printend ; ! } ! } ! print <<printend ! <tr VALIGN=TOP > ! <TD></td> ! <TD colspan=2><b>Total Due</b></td> ! <TD><b>$total</b></td> ! </tr> ! <tr VALIGN=TOP > ! <TD colspan=5 align=right> ! <INPUT TYPE="image" name="submit" VALUE="pay" height=42 WIDTH=187 BORDER=0 src="/images/pay-fines.gif"></td> ! </tr> ! </form> ! </table> ! <br clear=all> ! <p> </p> printend ; ! print endmenu('member'); ! print endpage(); } else { ! # 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); }