c135fa1c7ec456d2ee38d6e63774347582eea9d4
[srvgit] / Koha / Acquisition / Fund.pm
1 package Koha::Acquisition::Fund;
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 Koha::Database;
21
22 use base qw(Koha::Object);
23
24 =head1 NAME
25
26 Koha::Acquisition::Fund object class
27
28 =head1 API
29
30 =head2 Class methods
31
32 =head3 to_api
33
34     my $json = $fund->to_api;
35
36 Overloaded method that returns a JSON representation of the Koha::Acquisition::Fund object,
37 suitable for API output.
38
39 =cut
40
41 sub to_api {
42     my ( $self, $args ) = @_;
43
44     # Preserve conflicting attribute names
45     my $budget_id        = $self->budget_id;
46     my $budget_period_id = $self->budget_period_id;
47
48     my $json_fund = $self->SUPER::to_api($args);
49     $json_fund->{fund_id}   = $budget_id;
50     $json_fund->{budget_id} = $budget_period_id;
51
52     return $json_fund;
53 }
54
55 =head3 to_api_mapping
56
57 This method returns the mapping for representing a Koha::Acquisition::Fund object
58 on the API.
59
60 =cut
61
62 sub to_api_mapping {
63     return {
64         budget_id         => 'fund_id',
65         budget_code       => 'code',
66         budget_name       => 'name',
67         budget_branchcode => 'library_id',
68         budget_amount     => 'total_amount',
69         budget_encumb     => 'warn_at_percentage',
70         budget_expend     => 'warn_at_amount',
71         budget_notes      => 'notes',
72         budget_period_id  => 'budget_id',
73         timestamp         => 'timestamp',
74         budget_owner_id   => 'fund_owner_id',
75         budget_permission => 'fund_access',
76         sort1_authcat     => 'statistic1_auth_value_category',
77         sort2_authcat     => 'statistic2_auth_value_category',
78         budget_parent_id  => 'parent_fund_id',
79     };
80 }
81
82 =head2 Internal methods
83
84 =head3 _type
85
86 =cut
87
88 sub _type {
89     return 'Aqbudget';
90 }
91
92 1;