Bug 15707: Fix conflict with bug 15446 (type vs _type)
[koha.git] / Koha / Library / Group.pm
1 package Koha::Library::Group;
2
3 # Copyright ByWater Solutions 2016
4 #
5 # This file is part of Koha.
6 #
7 # Koha is free software; you can redistribute it and/or modify it under the
8 # terms of the GNU General Public License as published by the Free Software
9 # Foundation; either version 3 of the License, or (at your option) any later
10 # version.
11 #
12 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
13 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
14 # A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License along
17 # with Koha; if not, write to the Free Software Foundation, Inc.,
18 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
20 use Modern::Perl;
21
22 use Carp;
23
24 use Koha::Database;
25 use Koha::DateUtils qw(dt_from_string);
26 use Koha::Libraries;
27
28 use base qw(Koha::Object);
29
30 =head1 NAME
31
32 Koha::Library::Group - Koha Library::Group object class
33
34 =head1 API
35
36 =head2 Class Methods
37
38 =cut
39
40 =head3 my @children = $self->get_children()
41
42 =cut
43
44 sub children {
45     my ($self) = @_;
46
47     my $children =
48       Koha::Library::Groups->search( { parent_id => $self->id }, { order_by => [ 'title', 'branchcode' ] } );
49
50     return $children;
51 }
52
53 =head3 library
54
55 my $library = $group->library();
56
57 Returns the library for this group if one exists
58
59 =cut
60
61 sub library {
62     my ($self) = @_;
63
64     return unless $self->branchcode;
65
66     return Koha::Libraries->find( $self->branchcode );
67 }
68
69 =head3 libraries_not_direct_children
70
71 my @libraries = $group->libraries_not_direct_children();
72
73 Returns the libraries *not* set as direct children of this group
74
75 =cut
76
77 sub libraries_not_direct_children {
78     my ($self) = @_;
79
80     my @children = Koha::Library::Groups->search(
81         {
82             parent_id  => $self->id,
83             branchcode => { '!=' => undef },
84         },
85         { order_by => 'branchcode' }
86     );
87
88     my @branchcodes = map { $_->branchcode } @children;
89
90     return Koha::Libraries->search( { branchcode => { -not_in => \@branchcodes } } );
91 }
92
93 =head3 store
94
95 =cut
96
97 sub store {
98     my ($self) = @_;
99
100     my $now = dt_from_string;
101     $self->updated_on($now);
102     $self->created_on($now) unless $self->in_storage();
103
104     return $self->SUPER::store(@_);
105 }
106
107 =head3 type
108
109 =cut
110
111 sub _type {
112     return 'LibraryGroup';
113 }
114
115 =head1 AUTHOR
116
117 Kyle M Hall <kyle@bywatersolutions.com>
118
119 =cut
120
121 1;