Bug 14577 - Allow restriction of checkouts based on fines of guarantor's guarantees
[koha.git] / Koha / Patron.pm
blobac62594fce6d4c275bb24f0cb1ee4abf55a9b03e
1 package Koha::Patron;
3 # Copyright ByWater Solutions 2014
5 # This file is part of Koha.
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.
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.
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.
20 use Modern::Perl;
22 use Carp;
24 use Koha::Database;
25 use Koha::Patrons;
26 use Koha::Patron::Images;
28 use base qw(Koha::Object);
30 =head1 NAME
32 Koha::Patron - Koha Patron Object class
34 =head1 API
36 =head2 Class Methods
38 =cut
40 =head3 guarantor
42 Returns a Koha::Patron object for this patron's guarantor
44 =cut
46 sub guarantor {
47 my ( $self ) = @_;
49 return unless $self->guarantorid();
51 return Koha::Patrons->find( $self->guarantorid() );
54 sub image {
55 my ( $self ) = @_;
57 return Koha::Patron::Images->find( $self->borrowernumber )
60 =head3 guarantees
62 Returns the guarantees (list of Koha::Patron) of this patron
64 =cut
66 sub guarantees {
67 my ( $self ) = @_;
69 return Koha::Patrons->search( { guarantorid => $self->borrowernumber } );
72 =head3 siblings
74 Returns the siblings of this patron.
76 =cut
78 sub siblings {
79 my ( $self ) = @_;
81 my $guarantor = $self->guarantor;
83 return unless $guarantor;
85 return Koha::Patrons->search(
87 guarantorid => {
88 '!=' => undef,
89 '=' => $guarantor->id,
91 borrowernumber => {
92 '!=' => $self->borrowernumber,
98 =head3 type
100 =cut
102 sub _type {
103 return 'Borrower';
106 =head1 AUTHOR
108 Kyle M Hall <kyle@bywatersolutions.com>
110 =cut