From: Julian Maurice Date: Tue, 9 Feb 2016 10:16:55 +0000 (+0100) Subject: Bug 15764: Fix timestamp sent by KOCT X-Git-Url: http://git.equinoxoli.org/?p=koha-equinox.git;a=commitdiff_plain;h=0987165d6aab0951259b2101c2133ae4c221357b Bug 15764: Fix timestamp sent by KOCT KOCT plugin send UTC timestamp, it should be converted to local timezone Test plan: 1. Install latest version of KOCT and configure it https://addons.mozilla.org/fr/firefox/addon/koct/ https://wiki.koha-community.org/wiki/Offline_circulation_firefox_plugin 2. Use it to do a checkout and a checkin. See that timestamps are UTC. 3. Click on "Commit to Koha" under "Log" tab 4. Wait for all operations to be processed 5. In Koha, go to Circulation > Offline circulation and check the timestamps were correctly converted to the Koha server's timezone 6. Process the pending operations and see that timestamps are still correct 7. Repeat step 2 8. Now click on "Apply directly" 9. Check the timestamps are correct in Koha NOTE: I could not get "Commit to Koha" to work for me, but I did confirm this corrected behaviour with "Apply directly". Signed-off-by: Mark Tompsett Signed-off-by: Owen Leonard Using the "commit to Koha" option works fine for me. Signed-off-by: Kyle M Hall This patch only affects service.pl, which is not used in any way by the uploader for desktop client files. No changes to the desktop offline circ will be needed. Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com --- diff --git a/offline_circ/service.pl b/offline_circ/service.pl index e8acb90..a23e2b8 100755 --- a/offline_circ/service.pl +++ b/offline_circ/service.pl @@ -24,6 +24,8 @@ use warnings; use CGI qw ( -utf8 ); use C4::Auth; use C4::Circulation; +use Koha::DateUtils; +use DateTime::TimeZone; my $cgi = CGI->new; @@ -47,6 +49,11 @@ if ($status eq 'ok') { # if authentication is ok $cardnumber =~ s/^\s+//; $cardnumber =~ s/\s+$//; + # KOCT send UTC timestamp, it should be converted to local timezone + my $dt = dt_from_string($timestamp, 'iso', DateTime::TimeZone->new(name => 'UTC')); + $dt->set_time_zone(C4::Context->tz); + $timestamp = $dt->ymd('-') . ' ' . $dt->hms(':'); + if ( $cgi->param('pending') eq 'true' ) { # if the 'pending' flag is true, we store the operation in the db instead of directly processing them $result = AddOfflineOperation( $userid,