@@ -, +, @@ DateTime->new( year => 9999, month => 12, day => 31, time_zone => C4::Context->tz ); DateTime->compare($today, $expiry_dt) --- C4/Circulation.pm | 21 ++++++--------------- 1 files changed, 6 insertions(+), 15 deletions(-) --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -767,24 +767,15 @@ sub CanBookBeIssued { if ( !defined $borrower->{dateexpiry} || $borrower->{'dateexpiry'} eq '0000-00-00') { $issuingimpossible{EXPIRED} = 1; } else { - my ($y, $m, $d) = split /-/,$borrower->{'dateexpiry'}; - if ($y && $m && $d) { # are we really writing oinvalid dates to borrs - my $expiry_dt = DateTime->new( - year => $y, - month => $m, - day => $d, - time_zone => C4::Context->tz, - ); - $expiry_dt->truncate( to => 'day'); - my $today = $now->clone()->truncate(to => 'day'); - if (DateTime->compare($today, $expiry_dt) == 1) { - $issuingimpossible{EXPIRED} = 1; - } - } else { - carp("Invalid expity date in borr"); + my $expiry_dt = dt_from_string( $borrower->{dateexpiry}, 'sql' ); + $expiry_dt->truncate( to => 'day'); + my $today = $now->clone()->truncate(to => 'day'); + + if ($expiry_dt->year < 9999 && DateTime->compare($today, $expiry_dt) == 1) { $issuingimpossible{EXPIRED} = 1; } } + # # BORROWER STATUS # --