Bug 13011 - Parsing a date on sending a letter generates a warning
Summary: Parsing a date on sending a letter generates a warning
Status: CLOSED FIXED
Alias: None
Product: Koha
Classification: Unclassified
Component: Architecture, internals, and plumbing (show other bugs)
Version: Main
Hardware: All All
: P5 - low normal (vote)
Assignee: Jonathan Druart
QA Contact: Testopia
URL:
Keywords:
Depends on: 11244
Blocks:
  Show dependency treegraph
 
Reported: 2014-09-30 09:36 UTC by Jonathan Druart
Modified: 2015-06-04 23:33 UTC (History)
1 user (show)

See Also:
Change sponsored?: ---
Patch complexity: Trivial patch
Documentation contact:
Documentation submission:
Text to go in the release notes:
Version(s) released in:


Attachments
Bug 13011: 0000-00-00 should not be considered as a valid date (1.48 KB, patch)
2014-09-30 09:38 UTC, Jonathan Druart
Details | Diff | Splinter Review
Bug 13011: 0000-00-00 should not be considered as a valid date (1.54 KB, patch)
2014-10-14 14:33 UTC, Chris Cormack
Details | Diff | Splinter Review
[PASSED QA] Bug 13011: 0000-00-00 should not be considered as a valid date (1.67 KB, patch)
2014-10-15 13:18 UTC, Katrin Fischer
Details | Diff | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
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 2014-11-01 13:47:44 UTC
Patch pushed to master.

Thanks Jonathan!