From b3cd3855b912cd7bfc9b10f1163a34d09be4f5e0 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Tue, 26 Jun 2018 13:08:36 +0000 Subject: [PATCH] Bug 20946: Reduce number of db calls Signed-off-by: Kyle M Hall Signed-off-by: Nick Clemens --- Koha/Account.pm | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/Koha/Account.pm b/Koha/Account.pm index 02832d36c7..bffc98bd65 100644 --- a/Koha/Account.pm +++ b/Koha/Account.pm @@ -22,6 +22,7 @@ use Modern::Perl; use Carp; use Data::Dumper; use List::MoreUtils qw( uniq ); +use List::Util qw( sum ); use C4::Log qw( logaction ); use C4::Stats qw( UpdateStats ); @@ -297,19 +298,6 @@ my ( $total, $lines ) = Koha::Account->new({ patron_id => $patron_id })->outstan sub outstanding_debits { my ($self) = @_; - my $outstanding_debits = Koha::Account::Lines->search( - { borrowernumber => $self->{patron_id}, - amountoutstanding => { '>' => 0 } - }, - { select => [ { sum => 'amountoutstanding' } ], - as => ['outstanding_debits_total'], - } - ); - my $total - = ( $outstanding_debits->count ) - ? $outstanding_debits->next->get_column('outstanding_debits_total') + 0 - : 0; - my $lines = Koha::Account::Lines->search( { borrowernumber => $self->{patron_id}, @@ -317,6 +305,9 @@ sub outstanding_debits { } ); + # sum returns undef it list is empty + my $total = sum( $lines->get_column('amountoutstanding') ) + 0; + return ( $total, $lines ); } -- 2.39.5