From 545f878dcc82fbc88265f8759219ce928c43129e Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 30 Sep 2014 11:36:39 +0200 Subject: [PATCH] [PASSED QA] Bug 13011: 0000-00-00 should not be considered as a valid date When parsing the letter content, the 0000-00-00 should not be replaced, it's not a valid date. Test plan: prove t/db_dependent/Suggestions.t should not return the following error: 0000-00-00 seems to be a date but an error occurs on generating it (The 'month' parameter ("0") to DateTime::new did not pass the 'an integer between 1 and 12' callback Signed-off-by: Chris Cormack Signed-off-by: Katrin Fischer Adds another check for 0000-00-00. Passes tests and QA script. --- C4/Letters.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/C4/Letters.pm b/C4/Letters.pm index 912294e..cc84619 100644 --- a/C4/Letters.pm +++ b/C4/Letters.pm @@ -632,7 +632,10 @@ sub _parseletter { $val = GetAuthorisedValueByCode ('ROADTYPE', $val, 0) if $table=~/^borrowers$/ && $field=~/^streettype$/; my $replacedby = defined ($val) ? $val : ''; - if ( $replacedby and $replacedby =~ m|^\d{4}-\d{2}-\d{2}( \d{2}:\d{2}:\d{2})?$| ) { + if ( $replacedby + and not $replacedby =~ m|0000-00-00| + 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 ? 0 : 1; #$1 refers to the capture group wrapped in parentheses. In this case, that's the hours, minutes, seconds. eval { -- 1.9.1