X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=members%2Fsummary-print.pl;h=6c6ed923ec3d27e690dedf310ecd50a098270fc4;hb=a925b07f7b5c182f2c8050886d58e08ce065eff3;hp=a6a0e3619449c8e54e275ce3e1fb6dd42766cf5d;hpb=9af6c4e34bc41616c03bb786201a9c10ebf13dab;p=koha-ffzg.git diff --git a/members/summary-print.pl b/members/summary-print.pl index a6a0e36194..6c6ed923ec 100755 --- a/members/summary-print.pl +++ b/members/summary-print.pl @@ -2,29 +2,29 @@ # 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 3 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 Modern::Perl; use CGI; -use C4::Auth; -use C4::Output; +use C4::Auth qw( get_template_and_user ); +use C4::Output qw( output_and_exit_if_error output_and_exit output_html_with_http_headers ); use C4::Members; use C4::Circulation qw( GetIssuingCharges ); use C4::Reserves; -use C4::Items; +use Koha::DateUtils qw( dt_from_string ); use Koha::Holds; use Koha::ItemTypes; use Koha::Patrons; @@ -37,30 +37,19 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( template_name => "members/moremember-print.tt", query => $input, type => "intranet", - authnotrequired => 0, flagsrequired => { circulate => "circulate_remaining_permissions" }, - debug => 1, } ); -my $patron = Koha::Patrons->find( $borrowernumber ); -unless ( $patron ) { - print $input->redirect("/cgi-bin/koha/circ/circulation.pl?borrowernumber=$borrowernumber"); - exit; -} -my $category = $patron->category; -my $data = $patron->unblessed; -$data->{description} = $category->description; -$data->{category_type} = $category->category_type; - -my ( $total, $accts, $numaccts ) = GetMemberAccountRecords($borrowernumber); -foreach my $accountline (@$accts) { - if ( $accountline->{accounttype} ne 'F' - && $accountline->{accounttype} ne 'FU' ) - { - $accountline->{printtitle} = 1; - } -} +my $logged_in_user = Koha::Patrons->find( $loggedinuser ); +my $patron = Koha::Patrons->find( $borrowernumber ); +output_and_exit_if_error( $input, $cookie, $template, { module => 'members', logged_in_user => $logged_in_user, current_patron => $patron } ); + +my $total = $patron->account->balance; +my $accts = Koha::Account::Lines->search( + { borrowernumber => $patron->borrowernumber, amountoutstanding => { '!=' => 0 } }, + { order_by => { -desc => 'accountlines_id' } } +); our $totalprice = 0; @@ -69,9 +58,7 @@ my $holds_rs = Koha::Holds->search( ); $template->param( - %$data, - - borrowernumber => $borrowernumber, + patron => $patron, accounts => $accts, totaldue => $total, @@ -86,36 +73,32 @@ output_html_with_http_headers $input, $cookie, $template->output; sub build_issue_data { my ( $borrowernumber ) = @_; - my $issues = GetPendingIssues( $borrowernumber ); + my $patron = Koha::Patrons->find( $borrowernumber ); + return unless $patron; - my $return = []; + my $pending_checkouts = $patron->pending_checkouts->search( {}, + { order_by => [ { -desc => 'date_due' }, { -asc => 'issue_id' } ] } ); - my $today = DateTime->now( time_zone => C4::Context->tz ); - $today->truncate( to => 'day' ); + my @checkouts; - foreach my $issue ( @{$issues} ) { + while ( my $c = $pending_checkouts->next ) { + my $checkout = $c->unblessed_all_relateds; - my %row = %{$issue}; - $totalprice += $issue->{replacementprice} - if ( $issue->{replacementprice} ); + $totalprice += $checkout->{replacementprice} + if $checkout->{replacementprice}; #find the charge for an item my ( $charge, $itemtype ) = - GetIssuingCharges( $issue->{itemnumber}, $borrowernumber ); + GetIssuingCharges( $checkout->{itemnumber}, $borrowernumber ); - $itemtype = Koha::ItemTypes->find( $itemtype ); - $row{'itemtype_description'} = $itemtype->description; #FIXME Should not it be translated_description + $checkout->{charge} = $charge; - $row{'charge'} = sprintf( "%.2f", $charge ); + $checkout->{overdue} = $c->is_overdue; - $row{date_due} = $row{date_due_sql}; - - push( @{$return}, \%row ); + push @checkouts, $checkout; } - @{$return} = sort { $a->{date_due} eq $b->{date_due} } @{$return}; - - return $return; + return \@checkouts; } @@ -124,7 +107,7 @@ sub build_reserve_data { my $return = []; - my $today = DateTime->now( time_zone => C4::Context->tz ); + my $today = dt_from_string(); $today->truncate( to => 'day' ); while ( my $reserve = $reserves->next() ) {