X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=members%2Fboraccount.pl;h=743c04a543a507087c54fb70da674e7193050a6c;hb=146f1ca3a6e8f9f309da8b70fec8d90d9ce32090;hp=48e26209f6a3237a90134152870a6f879ad1667e;hpb=98cfad6e9bcab065a78838c01b3220da0f064298;p=koha.git diff --git a/members/boraccount.pl b/members/boraccount.pl index 48e26209f6..743c04a543 100755 --- a/members/boraccount.pl +++ b/members/boraccount.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl -#writen 11/1/2000 by chris@katipo.oc.nz +#written 11/1/2000 by chris@katipo.oc.nz #script to display borrowers account details @@ -9,91 +9,79 @@ # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . -use strict; -use warnings; +use Modern::Perl; use C4::Auth; use C4::Output; -use C4::Dates qw/format_date/; -use CGI; +use CGI qw ( -utf8 ); use C4::Members; -use C4::Branch; use C4::Accounts; use C4::Members::Attributes qw(GetBorrowerAttributes); +use Koha::Patrons; +use Koha::Patron::Categories; my $input=new CGI; -my ($template, $loggedinuser, $cookie) - = get_template_and_user({template_name => "members/boraccount.tmpl", - query => $input, - type => "intranet", - authnotrequired => 0, - flagsrequired => {borrowers => 1, updatecharges => 1}, - debug => 1, - }); +my ($template, $loggedinuser, $cookie) = get_template_and_user( + { + template_name => "members/boraccount.tt", + query => $input, + type => "intranet", + authnotrequired => 0, + flagsrequired => { borrowers => 'edit_borrowers', + updatecharges => 'remaining_permissions'}, + debug => 1, + } +); -my $borrowernumber=$input->param('borrowernumber'); +my $borrowernumber = $input->param('borrowernumber'); my $action = $input->param('action') || ''; -#get borrower details -my $data=GetMember('borrowernumber' => $borrowernumber); - -if ( $action eq 'reverse' ) { - ReversePayment( $input->param('accountlines_id') ); +my $logged_in_user = Koha::Patrons->find( $loggedinuser ) or die "Not logged in"; +my $patron = Koha::Patrons->find( $borrowernumber ); +unless ( $patron ) { + print $input->redirect("/cgi-bin/koha/circ/circulation.pl?borrowernumber=$borrowernumber"); + exit; } -if ( $data->{'category_type'} eq 'C') { - my ( $catcodes, $labels ) = GetborCatFromCatType( 'A', 'WHERE category_type = ?' ); - my $cnt = scalar(@$catcodes); - $template->param( 'CATCODE_MULTI' => 1) if $cnt > 1; - $template->param( 'catcode' => $catcodes->[0]) if $cnt == 1; +output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } ); + +if ( $action eq 'void' ) { + my $payment_id = scalar $input->param('accountlines_id'); + my $payment = Koha::Account::Lines->find( $payment_id ); + $payment->void(); } #get account details -my ($total,$accts,undef)=GetMemberAccountRecords($borrowernumber); +my $total = $patron->account->balance; + +my @accountlines = Koha::Account::Lines->search( + { borrowernumber => $patron->borrowernumber }, + { order_by => { -desc => 'accountlines_id' } } +); + my $totalcredit; if($total <= 0){ $totalcredit = 1; } -my $reverse_col = 0; # Flag whether we need to show the reverse column -foreach my $accountline ( @{$accts}) { - $accountline->{amount} += 0.00; - if ($accountline->{amount} <= 0 ) { - $accountline->{amountcredit} = 1; - } - $accountline->{amountoutstanding} += 0.00; - if ( $accountline->{amountoutstanding} <= 0 ) { - $accountline->{amountoutstandingcredit} = 1; - } - - $accountline->{date} = format_date($accountline->{date}); - $accountline->{amount} = sprintf '%.2f', $accountline->{amount}; - $accountline->{amountoutstanding} = sprintf '%.2f', $accountline->{amountoutstanding}; - if ($accountline->{accounttype} eq 'Pay') { - $accountline->{payment} = 1; - $reverse_col = 1; - } -} - -$template->param( adultborrower => 1 ) if ( $data->{'category_type'} eq 'A' ); - -my ($picture, $dberror) = GetPatronImage($data->{'cardnumber'}); -$template->param( picture => 1 ) if $picture; +my $actions_col = ( Koha::Account::Lines->search( + { borrowernumber => $patron->borrowernumber }, + { where => { amount => { '<=', 0 } } } )->count > 0 ) ? 1 : 0; if (C4::Context->preference('ExtendedPatronAttributes')) { my $attributes = GetBorrowerAttributes($borrowernumber); @@ -104,32 +92,12 @@ if (C4::Context->preference('ExtendedPatronAttributes')) { } $template->param( + patron => $patron, finesview => 1, - firstname => $data->{'firstname'}, - surname => $data->{'surname'}, - othernames => $data->{'othernames'}, - borrowernumber => $borrowernumber, - cardnumber => $data->{'cardnumber'}, - categorycode => $data->{'categorycode'}, - category_type => $data->{'category_type'}, - categoryname => $data->{'description'}, - address => $data->{'address'}, - address2 => $data->{'address2'}, - city => $data->{'city'}, - state => $data->{'state'}, - zipcode => $data->{'zipcode'}, - country => $data->{'country'}, - phone => $data->{'phone'}, - email => $data->{'email'}, - branchcode => $data->{'branchcode'}, - branchname => GetBranchName($data->{'branchcode'}), total => sprintf("%.2f",$total), totalcredit => $totalcredit, - is_child => ($data->{'category_type'} eq 'C'), - reverse_col => $reverse_col, - accounts => $accts, - activeBorrowerRelationship => (C4::Context->preference('borrowerRelationship') ne ''), - RoutingSerials => C4::Context->preference('RoutingSerials'), + actions_col => $actions_col, + accounts => \@accountlines, ); output_html_with_http_headers $input, $cookie, $template->output;