use warnings;
use CGI qw ( -utf8 );
+use Carp;
+
use C4::Output;
use C4::Auth;
use C4::Koha;
use C4::Items;
use C4::Members;
use C4::Stats;
-use Koha::Upload;
use C4::BackgroundJob;
+use Koha::UploadedFiles;
+use Koha::Account;
+use Koha::Checkouts;
+use Koha::Patrons;
use Date::Calc qw( Add_Delta_Days Date_to_Days );
$template->param(transactions_loaded => 1);
$template->param(messages => $results->{results});
} elsif ($fileID) {
- my $upload = Koha::Upload->new->get({ id => $fileID, filehandle => 1 });
- my $fh = $upload->{fh};
- my $filename = $upload->{name};
- my @input_lines = <$fh>;
+ my $upload = Koha::UploadedFiles->find( $fileID );
+ my $fh = $upload? $upload->file_handle: undef;
+ my $filename = $upload? $upload->filename: undef;
+ my @input_lines = $fh? <$fh>: ();
+ $fh->close if $fh;
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
} 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;
}
my $branchcode = C4::Context->userenv->{branch};
my $borrower = GetMember( 'cardnumber'=>$circ->{ 'cardnumber' } );
my $item = GetBiblioFromItemNumber( undef, $circ->{ 'barcode' } );
- my $issue = GetItemIssue( $item->{'itemnumber'} );
+ my $issue = Koha::Checkouts->find( { itemnumber => $item->{itemnumber} } );
- if ( $issue->{ 'date_due' } ) { ## Item is currently checked out to another person.
+ if ( $issue ) { ## Item is currently checked out to another person.
#warn "Item Currently Issued.";
- my $issue = GetOpenIssue( $item->{'itemnumber'} );
+ my $issue = GetOpenIssue( $item->{'itemnumber'} ); # FIXME Hum? That does not make sense, if it's in the issue table, the issue is open (i.e. returndate is null)
if ( $issue->{'borrowernumber'} eq $borrower->{'borrowernumber'} ) { ## Issued to this person already, renew it.
#warn "Item issued to this member already, renewing.";
}
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::Patrons->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
my $item = GetBiblioFromItemNumber( undef, $barcode );
return unless $item->{'itemnumber'};
- my $issue = C4::Circulation::GetItemIssue( $item->{'itemnumber'} );
- return unless $issue->{'borrowernumber'};
- return $issue->{'borrowernumber'};
+ my $issue = Koha::Checkouts->find( { itemnumber => $item->{itemnumber} } );
+ return unless $issue;
+ return $issue->borrowernumber;
}