Bug 19618: Add tests
[koha.git] / Koha / Account / Lines.pm
blob75225fcfebb934ca7d85d7c47ad4dd77b04c9878
1 package Koha::Account::Lines;
3 # This file is part of Koha.
5 # Koha is free software; you can redistribute it and/or modify it under the
6 # terms of the GNU General Public License as published by the Free Software
7 # Foundation; either version 3 of the License, or (at your option) any later
8 # version.
10 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
11 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License along
15 # with Koha; if not, write to the Free Software Foundation, Inc.,
16 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 use Modern::Perl;
20 use Carp;
22 use Koha::Database;
23 use Koha::Account::Line;
25 use base qw(Koha::Objects);
27 =head1 NAME
29 Koha::Account::Lines - Koha Account Line Object set class
31 =head1 API
33 =head2 Class Methods
35 =head3 total_outstanding
37 my $lines = Koha::Account::Lines->search({ ... });
38 my $total = $lines->total_outstanding;
40 Returns the sum of the outstanding amounts of the resultset. If the resultset is
41 empty it returns 0.
43 =cut
45 sub total_outstanding {
46 my ( $self ) = @_;
48 my $lines = $self->search(
49 {},
51 select => [ { sum => 'amountoutstanding' } ],
52 as => ['total_amountoutstanding'],
56 return $lines->count
57 ? $lines->next->get_column('total_amountoutstanding') + 0
58 : 0;
61 =head2 Internal methods
63 =head3 _type
65 =cut
67 sub _type {
68 return 'Accountline';
71 sub object_class {
72 return 'Koha::Account::Line';