@@ -, +, @@ --- .../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

+ + + +
+ + + + + + + + + + + + + + "> + + + + + + + + +
DateActionBarcodeCardnumber
" /> + + " title=""> + + + + + + + " title=""> + + + + +
+ +

For the selected operations: + +

+ +
+ + + +

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; + --