From 7a8e3f7e4ec3b2b44590230c06c5b555b321bb81 Mon Sep 17 00:00:00 2001
From: Tomas Cohen Arazi <tomascohen@theke.io>
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
---
 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.18.0