X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=pay.pl;h=cd069ece0ea5b92b06ea38be65314627c843ee78;hb=98d746e42e467166609de4c0f3f86993764371dd;hp=a58b8f6d05859ba4e4080811ca57041341d94882;hpb=dbca39823f826d5e8d1cd7c0fc8d768be1f57b64;p=koha_gimpoz diff --git a/pay.pl b/pay.pl index a58b8f6d05..cd069ece0e 100755 --- a/pay.pl +++ b/pay.pl @@ -1,6 +1,8 @@ #!/usr/bin/perl -#wrriten 11/1/2000 by chris@katipo.oc.nz +# $Id$ + +#written 11/1/2000 by chris@katipo.oc.nz #part of the koha library system, script to facilitate paying off fines @@ -28,13 +30,14 @@ use CGI; use C4::Search; use C4::Accounts2; use C4::Stats; +use HTML::Template; my $input=new CGI; #print $input->header; my $bornum=$input->param('bornum'); if ($bornum eq ''){ - $bornum=$input->param('bornum0'); + $bornum=$input->param('bornum0'); } #get borrower details my $data=borrdata('',$bornum); @@ -42,28 +45,28 @@ my $user=$input->remote_user; #get account details my %bor; -$bor{'borrowernumber'}=$bornum; +$bor{'borrowernumber'}=$bornum; my @names=$input->param; my %inp; my $check=0; for (my $i=0;$i<@names;$i++){ - my$temp=$input->param($names[$i]); - if ($temp eq 'wo'){ - $inp{$names[$i]}=$temp; - $check=1; - } - if ($temp eq 'yes'){ - $user=~ s/Levin/C/i; - $user=~ s/Foxton/F/i; - $user=~ s/Shannon/S/i; - my $amount=$input->param($names[$i+4]); - my $bornum=$input->param($names[$i+5]); - my $accountno=$input->param($names[$i+6]); - makepayment($bornum,$accountno,$amount,$user); - $check=2; - } + my$temp=$input->param($names[$i]); + if ($temp eq 'wo'){ + $inp{$names[$i]}=$temp; + $check=1; + } + if ($temp eq 'yes'){ + $user=~ s/Levin/C/i; + $user=~ s/Foxton/F/i; + $user=~ s/Shannon/S/i; + my $amount=$input->param($names[$i+4]); + my $bornum=$input->param($names[$i+5]); + my $accountno=$input->param($names[$i+6]); + makepayment($bornum,$accountno,$amount,$user); + $check=2; + } } my %env; $user=~ s/Levin/C/i; @@ -73,134 +76,98 @@ 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 startpage(); - print startmenu('member'); - print <Pay Fines for $data->{'firstname'} $data->{'surname'}

-

-

- - - - - - - -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 -; - } - } - 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'}
Total Due$total
-
-
-

 

- -printend -; - print endmenu('member'); - print endpage(); + my $template = gettemplate("members/pay.tmpl"); + if ($total ne ''){ + recordpayment(\%env,$bornum,$total); + } + my ($numaccts,$accts,$total)=getboracctrecord('',\%bor); + + my @loop_pay; + for (my $i=0;$i<$numaccts;$i++){ + if ($accts->[$i]{'amountoutstanding'} > 0){ + $accts->[$i]{'amount'}+=0.00; + $accts->[$i]{'amountoutstanding'}+=0.00; + my %line; + $line{i}=$i; + $line{itemnumber} = $accts->[$i]{'itemnumber'}; + $line{accounttype} = $accts->[$i]{'accounttype'}; + $line{amount} = $accts->[$i]{'amount'}; + $line{amountoutstanding} = $accts->[$i]{'amountoutstanding'}; + $line{bornum} = $bornum; + $line{accountno} = $accts->[$i]{'accountno'}; + $line{description} = $accts->[$i]{'description'}; + $line{title} = $accts->[$i]{'title'}; + push(@loop_pay, \%line); + } + } + $template->param(firstname => $data->{'firstname'}, + surname => $data->{'surname'}, + bornum => $bornum, + loop_pay => \@loop_pay, + total => $total); + print "Content-Type: text/html\n\n", $template->output; } 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%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); + 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"); + $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 = C4::Context->dbh; - 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; - UpdateStats($env,$user,'writeoff',$amount,'','','',$bornum); + 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 = C4::Context->dbh; + 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; + UpdateStats($env,$user,'writeoff',$amount,'','','',$bornum); }