changes ownership of directories to root.$httpduser recursively. I don't know
[koha.git] / pay.pl
blob65b5749780a907b13d28b567cf129482b3e99ccc
1 #!/usr/bin/perl
3 #wrriten 11/1/2000 by chris@katipo.oc.nz
4 #part of the koha library system, script to facilitate paying off fines
6 use strict;
7 use C4::Output;
8 use CGI;
9 use C4::Search;
10 use C4::Accounts2;
12 use C4::Database;
13 use C4::Stats;
14 my $input=new CGI;
16 #print $input->header;
17 my $bornum=$input->param('bornum');
18 if ($bornum eq ''){
19 $bornum=$input->param('bornum0');
21 #get borrower details
22 my $data=borrdata('',$bornum);
23 my $user=$input->remote_user;
25 #get account details
26 my %bor;
27 $bor{'borrowernumber'}=$bornum;
30 my @names=$input->param;
31 my %inp;
32 my $check=0;
33 for (my $i=0;$i<@names;$i++){
34 my$temp=$input->param($names[$i]);
35 if ($temp eq 'wo'){
36 $inp{$names[$i]}=$temp;
37 $check=1;
39 if ($temp eq 'yes'){
40 $user=~ s/Levin/C/i;
41 $user=~ s/Foxton/F/i;
42 $user=~ s/Shannon/S/i;
43 my $amount=$input->param($names[$i+4]);
44 my $bornum=$input->param($names[$i+5]);
45 my $accountno=$input->param($names[$i+6]);
46 makepayment($bornum,$accountno,$amount,$user);
47 $check=2;
50 my %env;
51 $user=~ s/Levin/C/i;
52 $user=~ s/Foxton/F/i;
53 $user=~ s/Shannon/S/i;
55 $env{'branchcode'}=$user;
56 my $total=$input->param('total');
57 if ($check ==0){
58 print $input->header;
59 if ($total ne ''){
60 recordpayment(\%env,$bornum,$total);
62 my ($numaccts,$accts,$total)=getboracctrecord('',\%bor);
64 print startpage();
65 print startmenu('member');
66 print <<printend
67 <FONT SIZE=6><em>Pay Fines for $data->{'firstname'} $data->{'surname'}</em></FONT><P>
68 <center>
69 <p>
70 <TABLE CELLSPACING=0 CELLPADDING=5 border=1 >
71 <TR VALIGN=TOP>
72 <td bgcolor="99cc33" background="/images/background-mem.gif" colspan=4><B>FINES & CHARGES</TD>
73 <td bgcolor="99cc33" background="/images/background-mem.gif" colspan=4><B>AMOUNT OWING</TD>
74 </TR>
75 <form action=/cgi-bin/koha/pay.pl method=post>
76 <input type=hidden name=bornum value=$bornum>
77 printend
79 for (my $i=0;$i<$numaccts;$i++){
80 if ($accts->[$i]{'amountoutstanding'} > 0){
81 $accts->[$i]{'amount'}+=0.00;
82 $accts->[$i]{'amountoutstanding'}+=0.00;
83 print <<printend
84 <tr VALIGN=TOP >
85 <TD><input type=radio name=payfine$i value=no checked>Unpaid
86 <input type=radio name=payfine$i value=yes>Pay
87 <input type=radio name=payfine$i value=wo>Writeoff
88 <input type=hidden name=itemnumber$i value=$accts->[$i]{'itemnumber'}>
89 <input type=hidden name=accounttype$i value=$accts->[$i]{'accounttype'}>
90 <input type=hidden name=amount$i value=$accts->[$i]{'amount'}>
91 <input type=hidden name=out$i value=$accts->[$i]{'amountoutstanding'}>
92 <input type=hidden name=bornum$i value=$bornum>
93 <input type=hidden name=accountno$i value=$accts->[$i]{'accountno'}>
94 </td>
95 <TD>$accts->[$i]{'description'} $accts->[$i]{'title'}</td>
96 <TD>$accts->[$i]{'accounttype'}</td>
97 <td>$accts->[$i]{'amount'}</td>
98 <TD>$accts->[$i]{'amountoutstanding'}</td>
100 </tr>
101 printend
105 print <<printend
106 <tr VALIGN=TOP >
107 <TD></td>
108 <TD colspan=2><b>Total Due</b></td>
109 <TD><b>$total</b></td>
110 </tr>
111 <tr VALIGN=TOP >
112 <TD colspan=5 align=right>
113 <INPUT TYPE="image" name="submit" VALUE="pay" height=42 WIDTH=187 BORDER=0 src="/images/pay-fines.gif"></td>
114 </tr>
115 </form>
116 </table>
117 <br clear=all>
118 <p> &nbsp; </p>
120 printend
122 print endmenu('member');
123 print endpage();
125 } else {
126 # my $quety=$input->query_string;
127 # print $input->redirect("/cgi-bin/koha/sec/writeoff.pl?$quety");
128 my%inp;
129 my @name=$input->param;
130 for (my $i=0;$i<@name;$i++){
131 my $test=$input->param($name[$i]);
132 if ($test eq 'wo'){
133 my $temp=$name[$i];
134 $temp=~ s/payfine//;
135 $inp{$name[$i]}=$temp;
138 my $bornum;
139 while ( my ($key, $value) = each %inp){
140 # print $key,$value;
141 my $accounttype=$input->param("accounttype$value");
142 $bornum=$input->param("bornum$value");
143 my $itemno=$input->param("itemnumber$value");
144 my $amount=$input->param("amount$value");
145 if ($accounttype eq 'Res'){
146 my $accountno=$input->param("accountno$value");
147 writeoff($bornum,$accountno,$itemno,$accounttype,$amount);
148 } else {
149 writeoff($bornum,'',$itemno,$accounttype,$amount);
152 $bornum=$input->param('bornum');
153 print $input->redirect("/cgi-bin/koha/pay.pl?bornum=$bornum");
157 sub writeoff{
158 my ($bornum,$accountnum,$itemnum,$accounttype,$amount)=@_;
159 my $user=$input->remote_user;
160 $user=~ s/Levin/C/;
161 $user=~ s/Foxton/F/;
162 $user=~ s/Shannon/S/;
163 my $dbh=C4Connect;
164 my $env;
165 my $query="Update accountlines set amountoutstanding=0 where ";
166 if ($accounttype eq 'Res'){
167 $query.="accounttype='Res' and accountno='$accountnum' and borrowernumber='$bornum'";
168 } else {
169 $query.="accounttype='$accounttype' and itemnumber='$itemnum' and borrowernumber='$bornum'";
171 my $sth=$dbh->prepare($query);
172 # print $query;
173 $sth->execute;
174 $sth->finish;
175 $query="select max(accountno) from accountlines";
176 $sth=$dbh->prepare($query);
177 $sth->execute;
178 my $account=$sth->fetchrow_hashref;
179 $sth->finish;
180 $account->{'max(accountno)'}++;
181 $query="insert into accountlines (borrowernumber,accountno,itemnumber,date,amount,description,accounttype)
182 values ('$bornum','$account->{'max(accountno)'}','$itemnum',now(),'$amount','Writeoff','W')";
183 $sth=$dbh->prepare($query);
184 $sth->execute;
185 $sth->finish;
186 # print $query;
187 $dbh->disconnect;
188 UpdateStats($env,$user,'writeoff',$amount,'','','',$bornum);