From b0cb7f44ef80d5f6a3d45ce87543a27637c68c6f Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Sat, 16 Jun 2018 09:44:19 -0300 Subject: [PATCH] Bug 20946: Use K::Account->outstanding_debits in pay.pl and paycollect.pl This patch changes the how account lines are fetched (using Koha::Account->outstanding_debits) so credits are not picked. To test: - Add a $5 credit to a patron - Add a $1 fine - Go to the 'Pay fines' tab => FAIL: Credit is displayed - Try to pay all fines => FAIL: You are told to enter a value less than or equal to -4.00 (Observe you cannot do that) - Apply this patch - Reload => SUCCESS: Credit is not displayed => SUCCESS: You are able to pay all fines - Sign off :-D Signed-off-by: Josef Moravec Signed-off-by: Kyle M Hall Signed-off-by: Nick Clemens --- members/pay.pl | 3 +-- members/paycollect.pl | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/members/pay.pl b/members/pay.pl index 53a8f37794..8245f38b2e 100755 --- a/members/pay.pl +++ b/members/pay.pl @@ -139,8 +139,7 @@ output_html_with_http_headers $input, $cookie, $template->output; sub add_accounts_to_template { my $patron = Koha::Patrons->find( $borrowernumber ); - my $total = $patron->account->balance; - my $account_lines = Koha::Account::Lines->search({ borrowernumber => $borrowernumber, amountoutstanding => { '!=' => 0 } }, { order_by => ['accounttype'] }); + my ( $total, $account_lines ) = Koha::Account->new( { patron_id => $borrowernumber } )->outstanding_debits; my @accounts; while ( my $account_line = $account_lines->next ) { $account_line = $account_line->unblessed; diff --git a/members/paycollect.pl b/members/paycollect.pl index 0f98a9d3f1..167617778f 100755 --- a/members/paycollect.pl +++ b/members/paycollect.pl @@ -59,8 +59,7 @@ my $category = $patron->category; my $user = $input->remote_user; my $branch = C4::Context->userenv->{'branch'}; - -my $total_due = $patron->account->balance; +my ( $total_due ) = Koha::Account->new( { patron_id => $borrowernumber } )->outstanding_debits; my $total_paid = $input->param('paid'); my $individual = $input->param('pay_individual'); -- 2.39.5