Bug 4461: Remove hard requirement on OpacKohaUrl
[koha.git] / Koha / Account / Offsets.pm
blob0083f0d3ab8dac52c75eda5e95a0d92d1d85cde0
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
6 # under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
10 # Koha is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with Koha; if not, see <http://www.gnu.org/licenses>.
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';