From 3dc7b530c43ccad1163b2c1267e6fcf2f2e298ad Mon Sep 17 00:00:00 2001 From: Robin Sheat Date: Fri, 27 Jul 2012 11:34:17 +0200 Subject: [PATCH] Bug 8391: prevent error when viewing circ history with bad dates Sometime the circ history will contain "0000-00-00" as a returndate when an item was lost rather than returned. This currently causes an error when attempting to parse the dates, this patch causes an empty string to be returned instead. Note: a future enhancement should distinguish between "no date provided" and "invalid date provided" to allow distinctions to be made. Signed-off-by: Kyle M Hall Signed-off-by: Paul Poulain --- Koha/DateUtils.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Koha/DateUtils.pm b/Koha/DateUtils.pm index d7892dd4b1..b2c1df8c8a 100644 --- a/Koha/DateUtils.pm +++ b/Koha/DateUtils.pm @@ -80,6 +80,7 @@ sub dt_from_string { } elsif ( $date_format eq 'sql' ) { $date_string =~ s/(\d{4})(\d{2})(\d{2})\s+(\d{2})(\d{2})(\d{2})/$1-$2-$3T$4:$5:$6/; + return if ($date_string =~ /^0000-00-00/); $date_string =~ s/00T/01T/; } } @@ -162,6 +163,7 @@ sub format_sqldatetime { my $force_pref = shift; # if testing we want to override Context if ( defined $str && $str =~ m/^\d{4}-\d{2}-\d{2}/ ) { my $dt = dt_from_string( $str, 'sql' ); + return q{} unless $dt; $dt->truncate( to => 'minute' ); return output_pref( $dt, $force_pref ); } -- 2.39.5