use C4::Context;
use C4::Log;
+use Koha::Checkouts;
use Koha::Database;
use Koha::DateUtils;
use Koha::Holds;
-use Koha::Issues;
-use Koha::OldIssues;
+use Koha::Old::Checkouts;
use Koha::Patron::Categories;
use Koha::Patron::HouseboundProfile;
use Koha::Patron::HouseboundRole;
$self->_result->result_source->schema->txn_do(
sub {
# Delete Patron's holds
- # FIXME Should be $patron->get_holds
- $_->delete for Koha::Holds->search( { borrowernumber => $self->borrowernumber } );
+ $self->holds->delete;
# Delete all lists and all shares of this borrower
# Consistent with the approach Koha uses on deleting individual lists
sub image {
my ( $self ) = @_;
- return Koha::Patron::Images->find( $self->borrowernumber )
+ return Koha::Patron::Images->find( $self->borrowernumber );
}
sub library {
my ( $self ) = @_;
- return Koha::Library->_new_from_dbic($self->_result->branchcode)
+ return Koha::Library->_new_from_dbic($self->_result->branchcode);
}
=head3 guarantees
};
# Check current issues table
- my $issues = Koha::Issues->search($criteria);
+ my $issues = Koha::Checkouts->search($criteria);
return 1 if $issues->count; # 0 || N
# Check old issues table
- my $old_issues = Koha::OldIssues->search($criteria);
+ my $old_issues = Koha::Old::Checkouts->search($criteria);
return $old_issues->count; # 0 || N
}
-=head2 is_debarred
+=head3 is_debarred
my $debarment_expiration = $patron->is_debarred;
return;
}
-=head2 is_expired
+=head3 is_expired
my $is_expired = $patron->is_expired;
return 0;
}
-=head2 is_going_to_expire
+=head3 is_going_to_expire
my $is_going_to_expire = $patron->is_going_to_expire;
return 0;
}
-=head2 update_password
+=head3 update_password
my $updated = $patron->update_password( $userid, $password );
return dt_from_string( $expiry_date )->truncate( to => 'day' );
}
-=head2 has_overdues
+=head3 has_overdues
my $has_overdues = $patron->has_overdues;
return $self->_result->issues->search({ date_due => { '<' => $dtf->format_datetime( dt_from_string() ) } })->count;
}
-=head2 track_login
+=head3 track_login
$patron->track_login;
$patron->track_login({ force => 1 });
$self->lastseen( dt_from_string() )->store;
}
-=head2 move_to_deleted
+=head3 move_to_deleted
my $is_moved = $patron->move_to_deleted;
sub move_to_deleted {
my ($self) = @_;
my $patron_infos = $self->unblessed;
+ delete $patron_infos->{updated_on}; #This ensures the updated_on date in deletedborrowers will be set to the current timestamp
return Koha::Database->new->schema->resultset('Deletedborrower')->create($patron_infos);
}
return $enrolment_fee || 0;
}
+=head3 checkouts
+
+my $issues = $patron->checkouts
+
+=cut
+
+sub checkouts {
+ my ($self) = @_;
+ my $issues = $self->_result->issues;
+ return Koha::Checkouts->_new_from_dbic( $issues );
+}
+
=head3 get_overdues
my $overdue_items = $patron->get_overdues
sub get_overdues {
my ($self) = @_;
my $dtf = Koha::Database->new->schema->storage->datetime_parser;
- my $issues = Koha::Issues->search(
+ return $self->checkouts->search(
{
- 'me.borrowernumber' => $self->borrowernumber,
'me.date_due' => { '<' => $dtf->format_datetime(dt_from_string) },
},
{
prefetch => { item => { biblio => 'biblioitems' } },
}
);
- return $issues;
}
=head3 get_age
sub get_age {
my ($self) = @_;
my $today_str = dt_from_string->strftime("%Y-%m-%d");
- my $dob_str = dt_from_string( $self->dateofbirth )->strftime("%Y-%m-%d");
+ my $dob_str = dt_from_string( $self->dateofbirth ) || return;
+ $dob_str = $dob_str->strftime("%Y-%m-%d");
my ( $dob_y, $dob_m, $dob_d ) = split /-/, $dob_str;
my ( $today_y, $today_m, $today_d ) = split /-/, $today_str;
return Koha::Account->new( { patron_id => $self->borrowernumber } );
}
+=head3 holds
+
+my $holds = $patron->holds
+
+Return all the holds placed by this patron
+
+=cut
+
+sub holds {
+ my ($self) = @_;
+ my $holds_rs = $self->_result->reserves->search( {}, { order_by => 'reservedate' } );
+ return Koha::Holds->_new_from_dbic($holds_rs);
+}
+
=head3 type
=cut