@@ -, +, @@ outstanding_debits --- Koha/Account.pm | 16 +++------------- t/db_dependent/Koha/Account.t | 6 +++++- 2 files changed, 8 insertions(+), 14 deletions(-) --- a/Koha/Account.pm +++ a/Koha/Account.pm @@ -434,19 +434,6 @@ my ( $total, $lines ) = Koha::Account->new({ patron_id => $patron_id })->outstan sub outstanding_credits { my ($self) = @_; - my $outstanding_credits = Koha::Account::Lines->search( - { borrowernumber => $self->{patron_id}, - amountoutstanding => { '<' => 0 } - }, - { select => [ { sum => 'amountoutstanding' } ], - as => ['outstanding_credits_total'], - } - ); - my $total - = ( $outstanding_credits->count ) - ? $outstanding_credits->next->get_column('outstanding_credits_total') + 0 - : 0; - my $lines = Koha::Account::Lines->search( { borrowernumber => $self->{patron_id}, @@ -454,6 +441,9 @@ sub outstanding_credits { } ); + # sum returns undef if list is empty + my $total = sum0( $lines->get_column('amountoutstanding') ); + return ( $total, $lines ); } --- a/t/db_dependent/Koha/Account.t +++ a/t/db_dependent/Koha/Account.t @@ -84,7 +84,7 @@ subtest 'outstanding_debits() tests' => sub { subtest 'outstanding_credits() tests' => sub { - plan tests => 5; + plan tests => 7; $schema->storage->txn_begin; @@ -108,6 +108,10 @@ subtest 'outstanding_credits() tests' => sub { $i++; } + ( $total, $lines ) = Koha::Account->new({ patron_id => 'InvalidBorrowernumber' })->outstanding_credits(); + is( $total, 0, "Total if no outstanding credits is 0" ); + is( $lines->count, 0, "With no outstanding credits, we get back a Lines object with 0 lines" ); + $schema->storage->txn_rollback; }; --