bcc5a6486b640cd31ea51c9d7e86ecb1f04ab9e9
[srvgit] / 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 =head3 total
39
40 =cut
41
42 sub total {
43     my ($self) = @_;
44
45     my $offsets = $self->search(
46         {},
47         {
48             select => [ { sum => 'amount' } ],
49             as     => ['total_amount'],
50         }
51     );
52
53     return $offsets->count
54       ? $offsets->next->get_column('total_amount') + 0
55       : 0;
56 }
57
58 =head2 Internal methods
59
60 =head3 _type
61
62 =cut
63
64 sub _type {
65     return 'AccountOffset';
66 }
67
68 =head3 object_class
69
70 =cut
71
72 sub object_class {
73     return 'Koha::Account::Offset';
74 }
75
76 1;