Bug 14321: Integrate Upload.pm into Koha
[koha.git] / offline_circ / process_koc.pl
index b22ae24..21462ef 100755 (executable)
@@ -4,24 +4,24 @@
 
 # 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., 59 Temple Place,
-# Suite 330, Boston, MA  02111-1307 USA
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
 #
 
 use strict;
 use warnings;
 
-use CGI;
+use CGI qw ( -utf8 );
 use C4::Output;
 use C4::Auth;
 use C4::Koha;
@@ -29,9 +29,10 @@ use C4::Context;
 use C4::Biblio;
 use C4::Accounts;
 use C4::Circulation;
+use C4::Items;
 use C4::Members;
 use C4::Stats;
-use C4::UploadedFile;
+use Koha::Upload;
 use C4::BackgroundJob;
 
 use Date::Calc qw( Add_Delta_Days Date_to_Days );
@@ -44,7 +45,7 @@ my $FILE_VERSION = '1.0';
 our $query = CGI->new;
 
 my ($template, $loggedinuser, $cookie) = get_template_and_user({
-    template_name => "offline_circ/process_koc.tmpl",
+    template_name => "offline_circ/process_koc.tt",
     query => $query,
     type => "intranet",
     authnotrequired => 0,
@@ -68,11 +69,11 @@ if ($completedJobID) {
     $template->param(transactions_loaded => 1);
     $template->param(messages => $results->{results});
 } elsif ($fileID) {
-    my $uploaded_file = C4::UploadedFile->fetch($sessionID, $fileID);
-    my $fh = $uploaded_file->fh();
+    my $upload = Koha::Upload->new->get({ id => $fileID, filehandle => 1 });
+    my $fh = $upload->{fh};
+    my $filename = $upload->{name};
     my @input_lines = <$fh>;
 
-    my $filename = $uploaded_file->name();
     my $job = undef;
 
     if ($runinbackground) {
@@ -92,7 +93,7 @@ if ($completedJobID) {
 
             my $reply = CGI->new("");
             print $reply->header(-type => 'text/html');
-            print "{ jobID: '$jobID' }";
+            print '{"jobID":"' . $jobID . '"}';
             exit 0;
         } elsif (defined $pid) {
             # child
@@ -323,14 +324,18 @@ sub kocReturnItem {
     #warn( Data::Dumper->Dump( [ $circ, $item ], [ qw( circ item ) ] ) );
     my $borrowernumber = _get_borrowernumber_from_barcode( $circ->{'barcode'} );
     if ( $borrowernumber ) {
-        my $borrower = GetMember( 'borrowernumber' =>$borrowernumber );
+        my $borrower = GetMember( 'borrowernumber' => $borrowernumber );
         C4::Circulation::MarkIssueReturned(
             $borrowernumber,
             $item->{'itemnumber'},
             undef,
-            $circ->{'date'}
+            $circ->{'date'},
+            $borrower->{'privacy'}
         );
 
+        ModItem({ onloan => undef }, $item->{'biblionumber'}, $item->{'itemnumber'});
+        ModDateLastSeen( $item->{'itemnumber'} );
+
         push @output, {
             return => 1,
             title => $item->{ 'title' },