Bug 36277: Do not fetch the whole library list
[koha.git] / Koha / Patron / Restriction.pm
1 package Koha::Patron::Restriction;
2
3 # This file is part of Koha.
4 #
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.
9 #
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.
14 #
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>.
17
18 use Modern::Perl;
19
20 use Koha::Database;
21 use Koha::DateUtils qw( dt_from_string );
22 use Koha::Patron::Restriction::Type;
23
24 use base qw(Koha::Object);
25
26 =head1 NAME
27
28 Koha::Patron::Restriction - Koha Patron::Restriction Object class
29
30 =head1 API
31
32 =head2 Class methods
33
34 =head3 type
35
36   my $restriction_type = $restriction->type;
37
38 Returns the restriction type
39
40 =cut
41
42 sub type {
43     my ($self) = @_;
44     my $type_rs = $self->_result->type;
45     return Koha::Patron::Restriction::Type->_new_from_dbic($type_rs);
46 }
47
48 =head3 is_expired
49
50 my $is_expired = $restriction->is_expired;
51
52 Returns 1 if the restriction is expired or 0;
53
54 =cut
55
56 sub is_expired {
57     my ($self) = @_;
58     return 0 unless $self->expiration;
59     # This condition must be consistent with Koha::Patron->is_debarred
60     my $makes_patron_debarred = dt_from_string( $self->expiration ) > dt_from_string;
61     return 1 unless $makes_patron_debarred;
62     return 0;
63 }
64
65 =head2 Internal methods
66
67 =head3 _type
68
69 Corresponding DBIC resultset class name
70
71 =cut
72
73 sub _type {
74     return 'BorrowerDebarment';
75 }
76
77 =head1 AUTHORS
78
79 Martin Renvoize <martin.renvoize@ptfs-europe.com>
80
81 =cut
82
83 1;