Bug 19489: (QA follow-up) Cache checkout object in variable
[koha.git] / Koha / Account / Offsets.pm
1 package Koha::Account::Offsets;
2
3 # This file is part of Koha.
4 #
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.
9 #
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.
13 #
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.
17
18 use Modern::Perl;
19
20 use Carp;
21
22 use Koha::Database;
23
24 use Koha::Account::Offset;
25
26 use base qw(Koha::Objects);
27
28 =head1 NAME
29
30 Koha::Account::Offsets - Koha Account Offset Object set class
31
32 Account offsets track the changes made to the balance of account lines
33
34 =head1 API
35
36 =head2 Class methods
37
38     my $offsets = Koha::Account::Offsets->search({ ...  });
39     my $total   = $offsets->total;
40
41 Returns the sum of the amounts of the account offsets resultset. If the resultset is
42 empty it returns 0.
43
44 =head3 total
45
46 =cut
47
48 sub total {
49     my ($self) = @_;
50
51     my $offsets = $self->search(
52         {},
53         {
54             select => [ { sum => 'amount' } ],
55             as     => ['total_amount'],
56         }
57     );
58
59     return $offsets->count
60       ? $offsets->next->get_column('total_amount') + 0
61       : 0;
62 }
63
64 =head2 Internal methods
65
66 =head3 _type
67
68 =cut
69
70 sub _type {
71     return 'AccountOffset';
72 }
73
74 =head3 object_class
75
76 =cut
77
78 sub object_class {
79     return 'Koha::Account::Offset';
80 }
81
82 1;