# 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 Carp;
+
use C4::Output;
use C4::Auth;
use C4::Koha;
use C4::Biblio;
use C4::Accounts;
use C4::Circulation;
+use C4::Items;
use C4::Members;
use C4::Stats;
-use C4::UploadedFile;
use C4::BackgroundJob;
+use Koha::Upload;
+use Koha::Account;
use Date::Calc qw( Add_Delta_Days Date_to_Days );
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,
$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) {
my $job_size = scalar(@input_lines);
- $job = C4::BackgroundJob->new($sessionID, $filename, $ENV{'SCRIPT_NAME'}, $job_size);
+ $job = C4::BackgroundJob->new($sessionID, $filename, '/cgi-bin/koha/offline_circ/process_koc.pl', $job_size);
my $jobID = $job->id();
# fork off
my $reply = CGI->new("");
print $reply->header(-type => 'text/html');
- print "{ jobID: '$jobID' }";
+ print '{"jobID":"' . $jobID . '"}';
exit 0;
} elsif (defined $pid) {
# child
} else {
# fork failed, so exit immediately
# fork failed, so exit immediately
- warn "fork failed while attempting to run $ENV{'SCRIPT_NAME'} as a background job";
+ warn "fork failed while attempting to run offline_circ/process_koc.pl as a background job";
exit 0;
}
#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' },
}
sub kocMakePayment {
- my ( $circ ) = @_;
- my $borrower = GetMember( 'cardnumber'=>$circ->{ 'cardnumber' } );
- recordpayment( $borrower->{'borrowernumber'}, $circ->{'amount'} );
- push @output, {
- payment => 1,
- amount => $circ->{'amount'},
- firstname => $borrower->{'firstname'},
- surname => $borrower->{'surname'},
- cardnumber => $circ->{'cardnumber'},
- borrower => $borrower->{'borrowernumber'}
- };
+ my ($circ) = @_;
+
+ my $cardnumber = $circ->{cardnumber};
+ my $amount = $circ->{amount};
+
+ my $patron = Koha::Borrowers->find( { cardnumber => $cardnumber } );
+
+ Koha::Account->new( { patron_id => $patron->id } )
+ ->pay( { amount => $amount } );
+
+ push @output,
+ {
+ payment => 1,
+ amount => $circ->{'amount'},
+ firstname => $patron->firstname,
+ surname => $patron->surname,
+ cardnumber => $patron->cardnumber,
+ borrower => $patron->id,
+ };
}
=head2 _get_borrowernumber_from_barcode