From df53dc9cb63326d997eeebdf4f8fafee8f0b892d Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@biblibre.com>
Date: Thu, 28 Nov 2013 15:01:55 +0100
Subject: [PATCH] Bug 11244: notices ignoring the dateformat preference

Overdue notices are using the MySQL date format and not the dateformat
in the system preferences.

Test Plan:
1) Enable checkout notices for a patron, make sure the date due is in
   the notice.
2) Check out an item to that patron, note the date is in the mysql
   datetime format
3) Apply this patch
4) Check out another item to the patron, not the date is now in the
   preferred date format.
---
 C4/Letters.pm |    8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/C4/Letters.pm b/C4/Letters.pm
index c78d01e..8a7868a 100644
--- a/C4/Letters.pm
+++ b/C4/Letters.pm
@@ -634,6 +634,14 @@ sub _parseletter {
             #but excludes items. Removed unneeded global and lookahead.
 
         my $replacedby   = defined ($val) ? $val : '';
+        if ( $replacedby and $replacedby =~ m|^\d{4}-\d{2}-\d{2}( \d{2}:\d{2}:\d{2})?$| ) {
+            # If the value is XXXX-YY-ZZ[ AA:BB:CC] we assume it is a date
+            my $dateonly = defined $1 ? 1 : 0;
+            eval {
+                $replacedby = output_pref({ dt => dt_from_string( $replacedby ), dateonly => $dateonly });
+            };
+            warn "$replacedby seems to be a date but an error occurs on generating it ($@)" if $@;
+        }
         ($letter->{title}  ) and do {
             $letter->{title}   =~ s/$replacetablefield/$replacedby/g;
             $letter->{title}   =~ s/$replacefield/$replacedby/g;
-- 
1.7.10.4