Browse Source

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 <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Adds another check for 0000-00-00.
Passes tests and QA script.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
3.18.x
Jonathan Druart 8 years ago
committed by Tomas Cohen Arazi
parent
commit
c5a6a4f18a
  1. 5
      C4/Letters.pm

5
C4/Letters.pm

@ -652,7 +652,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 {

Loading…
Cancel
Save