Bug 19618: Add tests
[koha.git] / Koha / Account / Offsets.pm
blob9b18a61eae1ddcbf8633ec50bcea0c63179c61bc
1 package Koha::Account::Offsets;
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;
24 use Koha::Account::Offset;
26 use base qw(Koha::Objects);
28 =head1 NAME
30 Koha::Account::Offsets - Koha Account Offset Object set class
32 Account offsets track the changes made to the balance of account lines
34 =head1 API
36 =head2 Class methods
38 my $offsets = Koha::Account::Offsets->search({ ... });
39 my $total = $offsets->total;
41 Returns the sum of the amounts of the account offsets resultset. If the resultset is
42 empty it returns 0.
44 =head3 total
46 =cut
48 sub total {
49 my ($self) = @_;
51 my $offsets = $self->search(
52 {},
54 select => [ { sum => 'amount' } ],
55 as => ['total_amount'],
59 return $offsets->count
60 ? $offsets->next->get_column('total_amount') + 0
61 : 0;
64 =head2 Internal methods
66 =head3 _type
68 =cut
70 sub _type {
71 return 'AccountOffset';
74 =head3 object_class
76 =cut
78 sub object_class {
79 return 'Koha::Account::Offset';