Bug 13011

Summary: Parsing a date on sending a letter generates a warning
Product: Koha Reporter: Jonathan Druart <jonathan.druart>
Component: Architecture, internals, and plumbingAssignee: Jonathan Druart <jonathan.druart>
Status: CLOSED FIXED QA Contact: Testopia <testopia>
Severity: normal    
Priority: P5 - low CC: tomascohen
Version: Main   
Hardware: All   
OS: All   
GIT URL: Change sponsored?: ---
Patch complexity: Trivial patch Documentation contact:
Documentation submission: Text to go in the release notes:
Version(s) released in:
Circulation function:
Bug Depends on: 11244    
Bug Blocks:    
Attachments: Bug 13011: 0000-00-00 should not be considered as a valid date
Bug 13011: 0000-00-00 should not be considered as a valid date
[PASSED QA] Bug 13011: 0000-00-00 should not be considered as a valid date

Description Jonathan Druart 2014-09-30 09:36:11 UTC
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
 at /usr/lib/i386-linux-gnu/perl5/5.20/DateTime.pm line 195.
        DateTime::new(undef, "month", 0, "day", 01, "year", 1900, "time_zone", "Europe/Paris", ...) called at /usr/share/perl5/DateTime/Format/DateParse.pm line 60
        DateTime::Format::DateParse::parse_datetime("DateTime::Format::DateParse", "0000/01/00", "Europe/Paris") called at Koha/DateUtils.pm line 87
        Koha::DateUtils::dt_from_string("0000-00-00") called at C4/Letters.pm line 639
        eval {...} called at C4/Letters.pm line 638
        C4::Letters::_parseletter(HASH(0xbf97e78), "suggestions", HASH(0xbf8e39c)) called at C4/Letters.pm line 550
        C4::Letters::_substitute_tables(HASH(0xbf97e78), HASH(0xbf8c0b4)) called at C4/Letters.pm line 497
        C4::Letters::GetPreparedLetter("module", "suggestions", "letter_code", "CHECKED", "branchcode", undef, "tables", HASH(0xbf8c0b4)) called at C4/Suggestions.pm line 454
        C4::Suggestions::ModSuggestion(HASH(0xbf9ac58)) called at t/db_dependent/Suggestions.t line 119
Comment 1 Jonathan Druart 2014-09-30 09:36:31 UTC
Introduced by bug 11244.
Comment 2 Jonathan Druart 2014-09-30 09:38:44 UTC Comment hidden (obsolete)
Comment 3 Chris Cormack 2014-10-14 14:33:19 UTC Comment hidden (obsolete)
Comment 4 Katrin Fischer 2014-10-15 13:18:20 UTC
Created attachment 32328 [details] [review]
[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 <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.
Comment 5 Tomás Cohen Arazi (tcohen) 2014-11-01 13:47:44 UTC
Patch pushed to master.

Thanks Jonathan!