514b1d328843fb95db03c09d3eb2e93f207f6b54
[koha-equinox.git] / Koha / Patron / Attributes.pm
1 package Koha::Patron::Attributes;
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::Patron::Attribute;
21
22 use base qw(Koha::Objects);
23
24 =head1 NAME
25
26 Koha::Patron::Attributes - Koha Patron Attributes Object set class
27
28 =head1 API
29
30 =head2 Class Methods
31
32 =cut
33
34 =head3 search
35
36 my $attributes-> Koha::Patron::Attributes->search( $params );
37
38 =cut
39
40 sub search {
41     my ( $self, $params, $attributes ) = @_;
42
43     my $branchcode = $params->{branchcode};
44     delete( $params->{branchcode} );
45
46     my $or =
47         $branchcode
48         ? {
49             '-or' => [
50                 'borrower_attribute_types_branches.b_branchcode' => undef,
51                 'borrower_attribute_types_branches.b_branchcode' => $branchcode,
52             ]
53         } : {};
54
55     my $join =
56         $branchcode
57         ? {
58             join => {
59                 'code' => 'borrower_attribute_types_branches'
60             },
61         } : {};
62     $attributes //= {};
63     return $self->SUPER::search( { %$params, %$or }, { %$attributes, %$join } );
64 }
65
66 =head3 _type
67
68 =cut
69
70 sub _type {
71     return 'BorrowerAttribute';
72 }
73
74 sub object_class {
75     return 'Koha::Patron::Attribute';
76 }
77
78 1;