5 #written 11/1/2000 by chris@katipo.oc.nz
6 #part of the koha library system, script to facilitate paying off fines
9 # Copyright 2000-2002 Katipo Communications
11 # This file is part of Koha.
13 # Koha is free software; you can redistribute it and/or modify it under the
14 # terms of the GNU General Public License as published by the Free Software
15 # Foundation; either version 2 of the License, or (at your option) any later
18 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
19 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
20 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
22 # You should have received a copy of the GNU General Public License along with
23 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
24 # Suite 330, Boston, MA 02111-1307 USA
36 #print $input->header;
37 my $bornum=$input->param('bornum');
39 $bornum=$input->param('bornum0');
42 my $data=borrdata('',$bornum);
43 my $user=$input->remote_user;
47 $bor{'borrowernumber'}=$bornum;
50 my @names=$input->param;
53 for (my $i=0;$i<@names;$i++){
54 my$temp=$input->param($names[$i]);
56 $inp{$names[$i]}=$temp;
62 $user=~ s/Shannon/S/i;
63 my $amount=$input->param($names[$i+4]);
64 my $bornum=$input->param($names[$i+5]);
65 my $accountno=$input->param($names[$i+6]);
66 makepayment($bornum,$accountno,$amount,$user);
73 $user=~ s/Shannon/S/i;
75 $env{'branchcode'}=$user;
76 my $total=$input->param('total');
80 recordpayment(\%env,$bornum,$total);
82 my ($numaccts,$accts,$total)=getboracctrecord('',\%bor);
85 print startmenu('member');
87 <FONT SIZE=6><em>Pay Fines for $data->{'firstname'} $data->{'surname'}</em></FONT><P>
90 <TABLE CELLSPACING=0 CELLPADDING=5 border=1 >
92 <td bgcolor="99cc33" background="/images/background-mem.gif" colspan=4><B>FINES & CHARGES</TD>
93 <td bgcolor="99cc33" background="/images/background-mem.gif" colspan=4><B>AMOUNT OWING</TD>
95 <form action=/cgi-bin/koha/pay.pl method=post>
96 <input type=hidden name=bornum value=$bornum>
99 for (my $i=0;$i<$numaccts;$i++){
100 if ($accts->[$i]{'amountoutstanding'} > 0){
101 $accts->[$i]{'amount'}+=0.00;
102 $accts->[$i]{'amountoutstanding'}+=0.00;
105 <TD><input type=radio name=payfine$i value=no checked>Unpaid
106 <input type=radio name=payfine$i value=yes>Pay
107 <input type=radio name=payfine$i value=wo>Writeoff
108 <input type=hidden name=itemnumber$i value=$accts->[$i]{'itemnumber'}>
109 <input type=hidden name=accounttype$i value=$accts->[$i]{'accounttype'}>
110 <input type=hidden name=amount$i value=$accts->[$i]{'amount'}>
111 <input type=hidden name=out$i value=$accts->[$i]{'amountoutstanding'}>
112 <input type=hidden name=bornum$i value=$bornum>
113 <input type=hidden name=accountno$i value=$accts->[$i]{'accountno'}>
115 <TD>$accts->[$i]{'description'} $accts->[$i]{'title'}</td>
116 <TD>$accts->[$i]{'accounttype'}</td>
117 <td>$accts->[$i]{'amount'}</td>
118 <TD>$accts->[$i]{'amountoutstanding'}</td>
128 <TD colspan=2><b>Total Due</b></td>
129 <TD><b>$total</b></td>
132 <TD colspan=5 align=right>
133 <INPUT TYPE="image" name="submit" VALUE="pay" height=42 WIDTH=187 BORDER=0 src="/images/pay-fines.gif"></td>
142 print endmenu('member');
146 # my $quety=$input->query_string;
147 # print $input->redirect("/cgi-bin/koha/sec/writeoff.pl?$quety");
149 my @name=$input->param;
150 for (my $i=0;$i<@name;$i++){
151 my $test=$input->param($name[$i]);
155 $inp{$name[$i]}=$temp;
159 while ( my ($key, $value) = each %inp){
161 my $accounttype=$input->param("accounttype$value");
162 $bornum=$input->param("bornum$value");
163 my $itemno=$input->param("itemnumber$value");
164 my $amount=$input->param("amount$value");
165 if ($accounttype eq 'Res'){
166 my $accountno=$input->param("accountno$value");
167 writeoff($bornum,$accountno,$itemno,$accounttype,$amount);
169 writeoff($bornum,'',$itemno,$accounttype,$amount);
172 $bornum=$input->param('bornum');
173 print $input->redirect("/cgi-bin/koha/pay.pl?bornum=$bornum");
178 my ($bornum,$accountnum,$itemnum,$accounttype,$amount)=@_;
179 my $user=$input->remote_user;
182 $user=~ s/Shannon/S/;
183 my $dbh = C4::Context->dbh;
185 my $query="Update accountlines set amountoutstanding=0 where ";
186 if ($accounttype eq 'Res'){
187 $query.="accounttype='Res' and accountno='$accountnum' and borrowernumber='$bornum'";
189 $query.="accounttype='$accounttype' and itemnumber='$itemnum' and borrowernumber='$bornum'";
191 my $sth=$dbh->prepare($query);
195 $query="select max(accountno) from accountlines";
196 $sth=$dbh->prepare($query);
198 my $account=$sth->fetchrow_hashref;
200 $account->{'max(accountno)'}++;
201 $query="insert into accountlines (borrowernumber,accountno,itemnumber,date,amount,description,accounttype)
202 values ('$bornum','$account->{'max(accountno)'}','$itemnum',now(),'$amount','Writeoff','W')";
203 $sth=$dbh->prepare($query);
207 UpdateStats($env,$user,'writeoff',$amount,'','','',$bornum);