type => 'SUSPENSION',
});
# if borrower was already debarred but does not get an extra debarment
- if ( $borrower->{debarred} eq Koha::Patron::Debarments::IsDebarred($borrower->{borrowernumber}) ) {
- return ($borrower->{debarred},1);
+ my $patron = Koha::Patrons->find( $borrower->{borrowernumber} );
+ if ( $borrower->{debarred} eq $patron->is_debarred ) {
+ return ($borrower->{debarred},1);
}
return $new_debar_dt->ymd();
}
my $overduesblockrenewing = C4::Context->preference('OverduesBlockRenewing');
my $restrictionblockrenewing = C4::Context->preference('RestrictionBlockRenewing');
- my $restricted = Koha::Patron::Debarments::IsDebarred($borrowernumber);
+ my $restricted = Koha::Patrons->find( $borrowernumber )->is_debarred;
my $hasoverdues = C4::Members::HasOverdues($borrowernumber);
if ( $restricted and $restrictionblockrenewing ) {
use DateTime;
use Koha::Database;
use Koha::DateUtils;
-use Koha::Patron::Debarments qw(IsDebarred);
use Text::Unaccent qw( unac_string );
use Koha::AuthUtils qw(hash_password);
use Koha::Database;
use Koha::Holds;
use Koha::List::Patron;
+use Koha::Patrons;
our (@ISA,@EXPORT,@EXPORT_OK,$debug);
my $borrowernumber = shift;
my $dbh = C4::Context->dbh;
- my $blockeddate = Koha::Patron::Debarments::IsDebarred($borrowernumber);
+ my $blockeddate = Koha::Patrons->find( $borrowernumber )->is_debarred;
return ( 1, $blockeddate ) if $blockeddate;
use C4::Context;
use Koha::Database;
+use Koha::DateUtils;
use Koha::Issues;
use Koha::OldIssues;
use Koha::Patron::Categories;
return $old_issues->count; # 0 || N
}
+=head2 is_debarred
+
+my $debarment_expiration = $patron->is_debarred;
+
+Returns the date a patron debarment will expire, or undef if the patron is not
+debarred
+
+=cut
+
+sub is_debarred {
+ my ($self) = @_;
+
+ return unless $self->debarred;
+ return $self->debarred
+ if $self->debarred =~ '^9999'
+ or dt_from_string( $self->debarred ) > dt_from_string;
+ return;
+}
+
=head3 type
=cut
AddUniqueDebarment
DelUniqueDebarment
- IsDebarred
);
=head1 Koha::Patron::Debarments
return $r;
}
-=head2 IsDebarred
-
-my $debarment_expiration = IsDebarred( $borrowernumber );
-
-Returns the date a borrowers debarment will expire, or
-undef if the patron is not debarred
-
-=cut
-
-sub IsDebarred {
- my ($borrowernumber) = @_;
-
- return unless ($borrowernumber);
-
- my $sql = "SELECT debarred FROM borrowers WHERE borrowernumber = ? AND debarred > CURRENT_DATE()";
- my $sth = C4::Context->dbh->prepare($sql);
- $sth->execute($borrowernumber);
- my ($debarred) = $sth->fetchrow_array();
-
- return $debarred;
-}
-
=head2 AddUniqueDebarment
my $success = AddUniqueDebarment({
use Koha::Database;
use Koha::DateUtils qw( dt_from_string output_pref );
+use Koha::Patrons;
my $rs = Koha::Database->new->schema->resultset('Discharge');
return unless $params->{borrowernumber};
my $borrowernumber = $params->{borrowernumber};
-
- my $restricted = Koha::Patron::Debarments::IsDebarred($borrowernumber);
+ my $restricted = Koha::Patrons->find( $borrowernumber )->is_debarred;
my $validated = get_validated({borrowernumber => $borrowernumber});
if ($restricted && $validated) {
use base qw( Template::Plugin );
use Koha::Patron::Debarments qw();
-use C4::Members qw();
+use Koha::Patrons;
=pod
return unless $borrower;
- return Koha::Patron::Debarments::IsDebarred($borrower->{borrowernumber});
+ return Koha::Patrons->find( $borrower->{borrowernumber} )->is_debarred;
}
sub HasOverdues {
use CGI::Session;
use C4::Members::Attributes qw(GetBorrowerAttributes);
use Koha::Patron;
-use Koha::Patron::Debarments qw(GetDebarments IsDebarred);
+use Koha::Patron::Debarments qw(GetDebarments);
use Koha::DateUtils;
use Koha::Database;
use Koha::Patron::Messages;
finetotal => $fines
);
- if ( IsDebarred($borrowernumber) ) {
+ if ( Koha::Patrons->find( $borrowernumber )->is_debarred ) {
$template->param(
'userdebarred' => $borrower->{debarred},
'debarredcomment' => $borrower->{debarredcomment},
use C4::Form::MessagingPreferences;
use List::MoreUtils qw/uniq/;
use C4::Members::Attributes qw(GetBorrowerAttributes);
-use Koha::Patron::Debarments qw(GetDebarments IsDebarred);
+use Koha::Patron::Debarments qw(GetDebarments);
use Koha::Patron::Images;
use Module::Load;
if ( C4::Context->preference('NorwegianPatronDBEnable') && C4::Context->preference('NorwegianPatronDBEnable') == 1 ) {
$data->{$_} and $template->param(flagged => 1) and last;
}
-if ( IsDebarred($borrowernumber) ) {
+if ( Koha::Patrons->find( $borrowernumber )->is_debarred ) {
$template->param( 'userdebarred' => 1, 'flagged' => 1 );
my $debar = $data->{'debarred'};
if ( $debar ne "9999-12-31" ) {
use C4::Debug;
use Koha::DateUtils;
use Koha::Libraries;
-use Koha::Patron::Debarments qw(IsDebarred);
+use Koha::Patrons;
use Date::Calc qw/Today Date_to_Days/;
use List::MoreUtils qw/uniq/;
);
}
-if ( IsDebarred($borrowernumber) ) {
+if ( Koha::Patrons->find( $borrowernumber )->is_debarred ) {
$noreserves = 1;
$template->param(
message => 1,
use C4::Letters;
use C4::Branch; # GetBranches
use Koha::DateUtils;
-use Koha::Patron::Debarments qw(IsDebarred);
use Koha::Holds;
use Koha::Database;
use Koha::Patron::Messages;
my ( $today_year, $today_month, $today_day) = Today();
my ($warning_year, $warning_month, $warning_day) = split /-/, $borr->{'dateexpiry'};
-my $debar = IsDebarred($borrowernumber);
+my $debar = Koha::Patrons->find( $borrowernumber )->is_debarred;
my $userdebarred;
if ($debar) {
use C4::Members;
use C4::Search; # enabled_staff_search_views
use Koha::DateUtils;
-use Koha::Patron::Debarments qw(IsDebarred);
use Koha::Holds;
use Koha::Libraries;
$diffbranch = 1;
}
+ my $is_debarred = Koha::Patrons->find( $borrowerinfo->{borrowernumber} )->is_debarred;
$template->param(
borrowernumber => $borrowerinfo->{'borrowernumber'},
borrowersurname => $borrowerinfo->{'surname'},
diffbranch => $diffbranch,
messages => $messages,
warnings => $warnings,
- restricted => IsDebarred($borrowerinfo->{'borrowernumber'}),
+ restricted => $is_debarred,
amount_outstanding => GetMemberAccountRecords($borrowerinfo->{borrowernumber}),
);
}
use C4::Context;
use C4::Members;
use Koha::Database;
+use Koha::Patrons;
use t::lib::TestBuilder;
is( @$debarments, 0, "DelDebarment functions correctly" );
$dbh->do(q|UPDATE borrowers SET debarred = '1970-01-01'|);
-is( IsDebarred( $borrowernumber ), undef, 'A patron with a debarred date in the past is not debarred' );
+is( Koha::Patrons->find( $borrowernumber )->is_debarred, undef, 'A patron with a debarred date in the past is not debarred' );
$dbh->do(q|UPDATE borrowers SET debarred = NULL|);
-is( IsDebarred( $borrowernumber ), undef, 'A patron without a debarred date is not debarred' );
+is( Koha::Patrons->find( $borrowernumber )->is_debarred, undef, 'A patron without a debarred date is not debarred' );
$dbh->do(q|UPDATE borrowers SET debarred = '9999-12-31'|); # Note: Change this test before the first of January 10000!
-is( IsDebarred( $borrowernumber ), '9999-12-31', 'A patron with a debarred date in the future is debarred' );
+is( Koha::Patrons->find( $borrowernumber )->is_debarred, '9999-12-31', 'A patron with a debarred date in the future is debarred' );
Koha::Patron::Discharge::discharge( { borrowernumber => $patron2->{borrowernumber} } );
Koha::Patron::Discharge::discharge( { borrowernumber => $patron3->{borrowernumber} } );
is( Koha::Patron::Discharge::is_discharged( { borrowernumber => $patron->{borrowernumber} } ), 1, 'The patron has been discharged' );
-is( Koha::Patron::Debarments::IsDebarred( $patron->{borrowernumber} ), '9999-12-31', 'The patron has been debarred after discharge' );
+is( Koha::Patrons->find( $patron->{borrowernumber} )->is_debarred, '9999-12-31', 'The patron has been debarred after discharge' );
is( scalar( @{ Koha::Patron::Discharge::get_validated() } ), 3, 'There are 3 validated discharges' );
is( scalar( @{ Koha::Patron::Discharge::get_validated( { borrowernumber => $patron->{borrowernumber} } ) } ), 1, 'There is 1 validated discharge for a given patron' );
is( scalar( @{ Koha::Patron::Discharge::get_validated( { branchcode => $library->{branchcode} } ) } ), 2, 'There is 2 validated discharges for a given branchcode' ); # This is not used in the code yet
Koha::Patron::Debarments::DelUniqueDebarment( { 'borrowernumber' => $patron->{borrowernumber}, 'type' => 'DISCHARGE' } );
-ok( !Koha::Patron::Debarments::IsDebarred( $patron->{borrowernumber} ), 'The debarment has been lifted' );
+ok( !Koha::Patrons->find( $patron->{borrowernumber} )->is_debarred, 'The debarment has been lifted' );
ok( !Koha::Patron::Discharge::is_discharged( { borrowernumber => $patron->{borrowernumber} } ), 'The patron is not discharged after the restriction has been lifted' );
# Verify that the discharge works multiple times