From 0e0d18e850b876e2e44bd2c49605a987f0457462 Mon Sep 17 00:00:00 2001 From: Martin Renvoize Date: Fri, 26 Oct 2018 18:34:35 +0100 Subject: [PATCH] Bug 21694: Add the Koha::Account->lines method Signed-off-by: Jonathan Druart --- Koha/Account.pm | 20 ++++++++++++++++++++ t/db_dependent/Koha/Account.t | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/Koha/Account.pm b/Koha/Account.pm index e6863979fd..ca7a8072d1 100644 --- a/Koha/Account.pm +++ b/Koha/Account.pm @@ -524,6 +524,26 @@ sub non_issues_charges { : 0; } +=head3 lines + +my $lines = $self->lines; + +Return all credits and debits for the user, outstanding or otherwise + +=cut + +sub lines { + my ($self) = @_; + + my $lines = Koha::Account::Lines->search( + { + borrowernumber => $self->{patron_id}, + } + ); + + return $lines; +} + 1; =head2 Name mappings diff --git a/t/db_dependent/Koha/Account.t b/t/db_dependent/Koha/Account.t index 21f0e62191..ae79acef6c 100755 --- a/t/db_dependent/Koha/Account.t +++ b/t/db_dependent/Koha/Account.t @@ -19,7 +19,7 @@ use Modern::Perl; -use Test::More tests => 3; +use Test::More tests => 4; use Koha::Account; use Koha::Account::Lines; @@ -192,3 +192,36 @@ subtest 'add_credit() tests' => sub { $schema->storage->txn_rollback; }; + +subtest 'lines() tests' => sub { + + plan tests => 1; + + $schema->storage->txn_begin; + + my $patron = $builder->build_object({ class => 'Koha::Patrons' }); + my $account = $patron->account; + + my @generated_lines; + + # Add Credits + push @generated_lines, $account->add_credit({ amount => 1 }); + push @generated_lines, $account->add_credit({ amount => 2 }); + push @generated_lines, $account->add_credit({ amount => 3 }); + push @generated_lines, $account->add_credit({ amount => 4 }); + + # Add Debits + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 1 })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 2 })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 3 })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 4 })->store; + + # Paid Off + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 0 })->store; + push @generated_lines, Koha::Account::Line->new({ borrowernumber => $patron->id, amountoutstanding => 0 })->store; + + my $lines = $account->lines; + is( $lines->_resultset->count, 10, "All accountlines (debits, credits and paid off) were fetched"); + + $schema->storage->txn_rollback; +}; -- 2.11.0