$issuingimpossible{DEBARRED} = 1;
}
}
- if ( !defined $patron->dateexpiry || $patron->dateexpiry eq '0000-00-00') {
+
+ if ( $patron->is_expired ) {
$issuingimpossible{EXPIRED} = 1;
- } else {
- my $expiry_dt = dt_from_string( $patron->dateexpiry, 'sql', 'floating' );
- $expiry_dt->truncate( to => 'day');
- my $today = $now->clone()->truncate(to => 'day');
- $today->set_time_zone( 'floating' );
- if ( DateTime->compare($today, $expiry_dt) == 1 ) {
- $issuingimpossible{EXPIRED} = 1;
- }
}
#
# FIXME Should be formatted from the template
$patron->{fines} = sprintf("%.2f", $balance);
- if($patron->{dateexpiry} and $patron->{dateexpiry} ne '0000-00-00') {
+ if( $patron->{dateexpiry} ) {
+ # FIXME We should not format the date here, do it in template-side instead
$patron->{dateexpiry} = output_pref( { dt => dt_from_string( $patron->{dateexpiry}, 'iso'), dateonly => 1} );
} else {
$patron->{dateexpiry} = '';
sub is_expired {
my ($self) = @_;
return 0 unless $self->dateexpiry;
- return 0 if $self->dateexpiry eq '0000-00-00';
+ return 0 if $self->dateexpiry =~ '^9999';
return 1 if dt_from_string( $self->dateexpiry ) < dt_from_string->truncate( to => 'day' );
return 0;
}
return 0 unless $delay;
return 0 unless $self->dateexpiry;
- return 0 if $self->dateexpiry eq '0000-00-00';
+ return 0 if $self->dateexpiry =~ '^9999';
return 1 if dt_from_string( $self->dateexpiry )->subtract( days => $delay ) < dt_from_string->truncate( to => 'day' );
return 0;
}
$patron = $builder->build_object(
{ class => 'Koha::Patrons',
value => {
- dateexpiry => '0000-00-00',
+ dateexpiry => undef,
categorycode => $patron_category->{categorycode},
}
}
);
( $issuingimpossible, $needsconfirmation ) = C4::Circulation::CanBookBeIssued( $patron, $item->{barcode} );
- is( $issuingimpossible->{EXPIRED}, 1, 'The patron should be considered as expired if dateexpiry is 0000-00-00' );
+ is( not( exists $issuingimpossible->{EXPIRED} ), 1, 'The patron should not be considered as expired if dateexpiry is not set' );
my $tomorrow = dt_from_string->add_duration( DateTime::Duration->new( days => 1 ) );
$item = $builder->build( { source => 'Item' } );
};
subtest 'is_expired' => sub {
- plan tests => 5;
+ plan tests => 4;
my $patron = $builder->build({ source => 'Borrower' });
$patron = Koha::Patrons->find( $patron->{borrowernumber} );
$patron->dateexpiry( undef )->store->discard_changes;
is( $patron->is_expired, 0, 'Patron should not be considered expired if dateexpiry is not set');
- $patron->dateexpiry( '0000-00-00' );
- is( $patron->is_expired, 0, 'Patron should not be considered expired if dateexpiry is 0000-00-00');
$patron->dateexpiry( dt_from_string )->store->discard_changes;
is( $patron->is_expired, 0, 'Patron should not be considered expired if dateexpiry is today');
$patron->dateexpiry( dt_from_string->add( days => 1 ) )->store->discard_changes;
};
subtest 'is_going_to_expire' => sub {
- plan tests => 9;
+ plan tests => 8;
my $patron = $builder->build({ source => 'Borrower' });
$patron = Koha::Patrons->find( $patron->{borrowernumber} );
$patron->dateexpiry( undef )->store->discard_changes;
is( $patron->is_going_to_expire, 0, 'Patron should not be considered going to expire if dateexpiry is not set');
- $patron->dateexpiry( '0000-00-00' );
- is( $patron->is_going_to_expire, 0, 'Patron should not be considered going to expire if dateexpiry is 0000-00-00');
t::lib::Mocks::mock_preference('NotifyBorrowerDeparture', 0);
$patron->dateexpiry( dt_from_string )->store->discard_changes;