Koha/acqui
Jonathan Druart d0040dff9f
Bug 23079: Handle invalid timezones when adding/subtracting durations
On Nov 3rd 2019, Brazil will skip from 00:00 to 1:00 (http://www.currenttimeonline.com/dst/dst.do?tz=America/Sao_Paulo), DateTime consider it as an invalid date.
It is a problem when we are playing with dates without the time part (always 00:00).
When we instantiate a DateTime (from dt_from_string) we are already handling this issue, and use the floating timezone (since bug 12669).

The problem remains when we generate a DateTime then add or subtract a duration, which will result in an invalid date:

DateTime->new(year => 2019, month => 12, day => 3, time_zone => 'America/Sao_Paulo')->subtract(days => 30);

=> Nov 3rd 2019, kaboom.

We should replace all the problematic occurrences of dt_from_string->subtract (or ->add)
with dt_from_string(undef, undef, 'floating'), to use the floating timezone and avoid the error.

Actually there are not many of them, I have found only 3 that could
produce real problems.

The other occurrences are:
- in tests => Not a big deal (for now)
- called on a datetime, so it will explode if called at midnight
00:00:00 (and nobody should work at that time).

Test plan:
0/ Define the timezone to 'America/Sao_Paulo' (in your koha-conf.xml file), restart_all
1/ Set a patron's expiry date to Dec 3rd 2019, and
NotifyBorrowerDeparture to 30 (default value)
2/ See the checkouts page for this user
=> Without this patch you get "Invalid local time for date in time zone:
America/Sao_Paulo"
=> With this patch apply the page displays correctly

QA will review the 2 other occurrences.

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
2019-09-06 13:17:47 +01:00
..
acqui-home.pl
add_user_search.pl
addorder.pl
addorderiso2709.pl Bug 23338: Allow specifying order level replacement price when adding to basket from file 2019-08-19 08:26:39 +01:00
ajax-getauthvaluedropbox.pl
basket.pl
basketgroup.pl
basketheader.pl
booksellers.pl
cancelorder.pl
check_budget_total.pl
check_uniqueness.pl
duplicate_orders.pl Bug 23079: Handle invalid timezones when adding/subtracting durations 2019-09-06 13:17:47 +01:00
edi_ean.pl
edifactmsgs.pl
edimsg.pl
finishreceive.pl Bug 22721: Remove frameworkcode parameter in GetMarcFromKohaField calls 2019-07-15 11:28:08 +01:00
histsearch.pl Bug 23079: Handle invalid timezones when adding/subtracting durations 2019-09-06 13:17:47 +01:00
invoice-files.pl
invoice.pl
invoices.pl
lateorders-export.pl
lateorders.pl
modordernotes.pl
neworderbiblio.pl Bug 23319: Implement blocking errors for neworderbiblio and basket.pl 2019-08-13 11:27:03 +01:00
neworderempty.pl Bug 23294: Show actual price when ordering 2019-08-20 15:01:13 +01:00
newordersubscription.pl
newordersuggestion.pl Bug 4833: (QA follow-up) Add budgetname to SearchSuggestion 2019-05-15 16:46:47 +00:00
ordered.pl Bug 23397: (follow-up) Split and display itemtypes 2019-09-06 13:17:46 +01:00
orderreceive.pl
parcel.pl
parcels.pl
showorder.pl
spent.pl Bug 23397: (follow-up) Split and display itemtypes 2019-09-06 13:17:46 +01:00
supplier.pl
transferorder.pl
uncertainprice.pl
updatesupplier.pl
z3950_search.pl