X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=offline_circ%2Fservice.pl;h=a23e2b819997cfa95fc2fee0e059c76794c20ac5;hb=ba9b55d5ca56231c887cc3d818071f72e390a8a7;hp=ce0ab4a6ccc881a3c6fd4fe058a54126768e865c;hpb=0ef6b0d5c618c2bd4d0ec942e870a6f989632ca0;p=koha.git diff --git a/offline_circ/service.pl b/offline_circ/service.pl index ce0ab4a6cc..a23e2b8199 100755 --- a/offline_circ/service.pl +++ b/offline_circ/service.pl @@ -4,53 +4,76 @@ # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . # use strict; use warnings; -use CGI; +use CGI qw ( -utf8 ); use C4::Auth; use C4::Circulation; +use Koha::DateUtils; +use DateTime::TimeZone; my $cgi = CGI->new; # get the status of the user, this will check his credentials and rights my ($status, $cookie, $sessionId) = C4::Auth::check_api_auth($cgi, undef); +($status, $sessionId) = C4::Auth::check_cookie_auth($cgi, undef) if ($status ne 'ok'); my $result; if ($status eq 'ok') { # if authentication is ok + + my $userid = $cgi->param('userid') || ''; + my $branchcode = $cgi->param('branchcode') || ''; + my $timestamp = $cgi->param('timestamp') || ''; + my $action = $cgi->param('action') || ''; + my $barcode = $cgi->param('barcode') || ''; + my $amount = $cgi->param('amount') || 0; + $barcode =~ s/^\s+//; + $barcode =~ s/\s+$//; + my $cardnumber = $cgi->param('cardnumber') || ''; + $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( - $cgi->param('userid') || '', - $cgi->param('branchcode') || '', - $cgi->param('timestamp') || '', - $cgi->param('action') || '', - $cgi->param('barcode') || '', - $cgi->param('cardnumber') || '', + $userid, + $branchcode, + $timestamp, + $action, + $barcode, + $cardnumber, + $amount ); } else { $result = ProcessOfflineOperation( { - 'userid' => $cgi->param('userid'), - 'branchcode' => $cgi->param('branchcode'), - 'timestamp' => $cgi->param('timestamp'), - 'action' => $cgi->param('action'), - 'barcode' => $cgi->param('barcode'), - 'cardnumber' => $cgi->param('cardnumber'), + 'userid' => $userid, + 'branchcode' => $branchcode, + 'timestamp' => $timestamp, + 'action' => $action, + 'barcode' => $barcode, + 'cardnumber' => $cardnumber, + 'amount' => $amount } ); }