@@ -, +, @@
---
.../prog/en/modules/offline_circ/list.tmpl | 97 ++++++++++++++++++++
offline_circ/list.pl | 57 ++++++++++++
offline_circ/process.pl | 48 ++++++++++
offline_circ/service.pl | 60 ++++++++++++
4 files changed, 262 insertions(+), 0 deletions(-)
create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/list.tmpl
create mode 100755 offline_circ/list.pl
create mode 100755 offline_circ/process.pl
create mode 100755 offline_circ/service.pl
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/list.tmpl
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/list.tmpl
@@ -0,0 +1,97 @@
+
+
Koha › Circulation › Offline Circulation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Offline Circulation
+
+
+
+
+
+
+
+
There is no pending offline operations.
+
+
+
+
+
+
--- a/offline_circ/list.pl
+++ a/offline_circ/list.pl
@@ -0,0 +1,57 @@
+#!/usr/bin/perl
+
+# 2009 BibLibre
+
+# 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 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., 59 Temple Place,
+# Suite 330, Boston, MA 02111-1307 USA
+#
+
+use CGI;
+use C4::Output;
+use C4::Auth;
+use C4::Koha;
+use C4::Context;
+use C4::Circulation;
+use C4::Branch;
+use C4::Members;
+use C4::Biblio;
+
+my $query = CGI->new;
+
+my ($template, $loggedinuser, $cookie) = get_template_and_user({
+ template_name => "offline_circ/list.tmpl",
+ query => $query,
+ type => "intranet",
+ authnotrequired => 0,
+ flagsrequired => { circulate => "circulate_remaining_permissions" },
+});
+
+my $operations = GetOfflineOperations;
+
+for (@$operations) {
+ my $biblio = GetBiblioFromItemNumber(undef, $_->{'barcode'});
+ $_->{'bibliotitle'} = $biblio->{'title'};
+ $_->{'biblionumber'} = $biblio->{'biblionumber'};
+ my $borrower = GetMemberDetails(undef,$_->{'cardnumber'});
+ $_->{'borrowernumber'} = $borrower->{'borrowernumber'};
+ $_->{'borrower'} = join(' ', $borrower->{'firstname'}, $borrower->{'surname'});
+ $_->{'actionissue'} = $_->{'action'} eq 'issue';
+ $_->{'actionreturn'} = $_->{'action'} eq 'return';
+}
+
+$template->param(operations => $operations);
+
+output_html_with_http_headers $query, $cookie, $template->output;
+
--- a/offline_circ/process.pl
+++ a/offline_circ/process.pl
@@ -0,0 +1,48 @@
+#!/usr/bin/perl
+
+# 2009 BibLibre
+
+# 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 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., 59 Temple Place,
+# Suite 330, Boston, MA 02111-1307 USA
+#
+
+use CGI;
+use C4::Auth;
+use C4::Circulation;
+
+my $query = CGI->new;
+
+my ($template, $loggedinuser, $cookie) = get_template_and_user({
+ template_name => "offline_circ/list.tmpl",
+ query => $query,
+ type => "intranet",
+ authnotrequired => 0,
+ flagsrequired => { circulate => "circulate_remaining_permissions" },
+});
+
+my $operationid = $query->param('operationid');
+my $action = $query->param('action');
+my $result;
+
+if ( $action eq 'process' ) {
+ my $operation = GetOfflineOperation( $operationid );
+ $result = ProcessOfflineOperation( $operation );
+} elsif ( $action eq 'delete' ) {
+ $result = DeleteOfflineOperation( $operationid );
+}
+
+print CGI::header('-type'=>'text/plain', '-charset'=>'utf-8');
+print $result;
+
--- a/offline_circ/service.pl
+++ a/offline_circ/service.pl
@@ -0,0 +1,60 @@
+#!/usr/bin/perl
+
+# 2009 BibLibre
+
+# 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 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., 59 Temple Place,
+# Suite 330, Boston, MA 02111-1307 USA
+#
+
+use CGI;
+use C4::Auth;
+use C4::Circulation;
+
+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);
+
+my $result;
+
+if ($status eq 'ok') { # if authentication is ok
+ 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') || '',
+ );
+ } 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'),
+ }
+ );
+ }
+} else {
+ $result = "Authentication failed."
+}
+
+print CGI::header('-type'=>'text/plain', '-charset'=>'utf-8');
+print $result;
+
--