Bug 13601: Add a fallback check for compability with existing code
authorJonathan Druart <jonathan.druart@biblibre.com>
Tue, 20 Jan 2015 14:49:39 +0000 (15:49 +0100)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Mon, 30 Mar 2015 16:40:02 +0000 (13:40 -0300)
There are a lot of places where the date comes from the DB but the
dateformat parameter is not set to 'sql'.
dt_from_string needs to fallback with this format if the pref format
does not match.

Signed-off-by: Marc VĂ©ron <veron@veron.ch>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Koha/DateUtils.pm

index 0a5e15a..3f44f83 100644 (file)
@@ -66,6 +66,16 @@ sub dt_from_string {
     }
 
     my $regex;
+
+    # The fallback format is sql/iso
+    my $fallback_re = qr|
+        (?<year>\d{4})
+        -
+        (?<month>\d{2})
+        -
+        (?<day>\d{2})
+    |xms;
+
     if ( $date_format eq 'metric' ) {
         # metric format is "dd/mm/yyyy[ hh:mm:ss]"
         $regex = qr|
@@ -87,14 +97,8 @@ sub dt_from_string {
         |xms;
     }
     elsif ( $date_format eq 'iso' or $date_format eq 'sql' ) {
-        # iso format is yyyy-dd-mm[ hh:mm:ss]"
-        $regex = qr|
-            (?<year>\d{4})
-            -
-            (?<month>\d{2})
-            -
-            (?<day>\d{2})
-        |xms;
+        # iso or sql format are yyyy-dd-mm[ hh:mm:ss]"
+        $regex = $fallback_re;
     }
     else {
         die "Invalid dateformat parameter ($date_format)";
@@ -124,6 +128,15 @@ sub dt_from_string {
             minute => $+{minute},
             second => $+{second},
         );
+    } elsif ( $date_string =~ $fallback_re ) {
+        %dt_params = (
+            year   => $+{year},
+            month  => $+{month},
+            day    => $+{day},
+            hour   => $+{hour},
+            minute => $+{minute},
+            second => $+{second},
+        );
     }
     else {
         die "The given date ($date_string) does not match the date format ($date_format)";