X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=pay.pl;h=f3de382b0e2f36cb4c25f8b19620a44eed012481;hb=4487617448b12c6cd351b72f20666c0d5b0c4e20;hp=446a58b8344e852ba82f9290e7d7807b52cdfa10;hpb=7197a3735b36b22261776f93f3aa2407dcf55ba6;p=koha.git diff --git a/pay.pl b/pay.pl index 446a58b834..f3de382b0e 100755 --- a/pay.pl +++ b/pay.pl @@ -1,4 +1,6 @@ #!/usr/bin/perl +# WARNING: Not enough context to figure out the correct tabstop size +# WARNING: Assume that this file uses 4-character tabs # $Id$ @@ -25,18 +27,20 @@ use strict; use C4::Context; +use C4::Auth; use C4::Output; 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); @@ -51,21 +55,21 @@ 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; @@ -75,134 +79,105 @@ 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, $loggedinuser, $cookie) + = get_template_and_user ({ template_name => "members/pay.tmpl", + query => $input, + type => "intranet", + authnotrequired => 0, + flagsrequired => {borrowers => 1}, + debug => 1, + }); + 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 $sth; + if ($accounttype eq 'Res'){ + $sth=$dbh->prepare("Update accountlines set amountoutstanding=0 where accounttype='Res' and accountno=? and borrowernumber=?"); + $sth->execute($accountnum,$bornum); + } else { + $sth=$dbh->prepare("Update accountlines set amountoutstanding=0 where accounttype=? and itemnumber=? and borrowernumber=?"); + $sth->execute($accounttype,$itemnum,$bornum); + } + $sth->finish; + $sth=$dbh->prepare("select max(accountno) from accountlines"); + $sth->execute; + my $account=$sth->fetchrow_hashref; + $sth->finish; + $account->{'max(accountno)'}++; + $sth=$dbh->prepare("insert into accountlines (borrowernumber,accountno,itemnumber,date,amount,description,accounttype) + values (?,?,?,now(),?,'Writeoff','W')"); + $sth->execute($bornum,$account->{'max(accountno)'},$itemnum,$amount); + $sth->finish; + UpdateStats($env,$user,'writeoff',$amount,'','','',$bornum); } + +# Local Variables: +# tab-width: 4 +# End: