Bug 20434: Update UNIMARC framework - auth (TU)
[koha.git] / Koha / Club / Enrollment.pm
blob5b42a0a686b7b1320eeb1dbd17886ec0ca6bc1db
1 package Koha::Club::Enrollment;
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::Clubs;
26 use Koha::Patrons;
27 use Koha::DateUtils qw(dt_from_string);
28 use DateTime;
30 use base qw(Koha::Object);
32 =head1 NAME
34 Koha::Club::Enrollment
36 Represents a "pattern" on which many clubs can be created.
37 In this way we can directly compare different clubs of the same 'template'
38 for statistical purposes.
40 =head1 API
42 =head2 Class Methods
44 =cut
46 =head3 cancel
48 =cut
50 sub cancel {
51 my ( $self ) = @_;
53 $self->_result()->update( { date_canceled => \'NOW()' } );
55 return $self;
58 =head3 club
60 =cut
62 sub club {
63 my ( $self ) = @_;
64 return scalar Koha::Clubs->find( $self->club_id() );
67 =head3 patron
69 =cut
71 sub patron {
72 my ( $self ) = @_;
73 return scalar Koha::Patrons->find( $self->borrowernumber() );
76 =head3 is_canceled
78 Determines if enrollment is canceled
80 =cut
82 sub is_canceled {
83 my ( $self ) = @_;
85 return 0 unless $self->date_canceled;
86 my $today = dt_from_string;
87 my $date_canceled = dt_from_string( $self->date_canceled );
89 return DateTime->compare($date_canceled, $today) < 1;
92 =head3 type
94 =cut
96 sub _type {
97 return 'ClubEnrollment';
100 =head1 AUTHOR
102 Kyle M Hall <kyle@bywatersolutions.com>
104 =cut