Bug 14673: Work around change to AddIssue return

Return from AddIssue used to be due date or undef.
Now it is less straightforward returning am issue object
if an issue row is created or undef. If the issue is a renewal
undef is returned. As that case was not handled properly it
caused the server site to crash the listener causing a
communications error on the client.

Signed-off-by: Frederic Demians <f.demians@tamil.fr>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit b4967bf0ed)
Signed-off-by: Frédéric Demians <f.demians@tamil.fr>
(cherry picked from commit 374f5f4a38)
Signed-off-by: Liz Rea <wizzyrea@gmail.com>
This commit is contained in:
Colin Campbell 2015-08-11 16:51:53 +01:00 committed by Liz Rea
parent 744da17372
commit c61e33e6f0
3 changed files with 22 additions and 12 deletions

View File

@ -8,6 +8,8 @@ use Carp;
use strict;
use warnings;
use C4::Context;
use C4::Circulation qw( GetItemIssue );
use Koha::DateUtils;
my %fields = (
ok => 0,
@ -35,6 +37,24 @@ sub new {
return bless $self, $class;
}
sub duedatefromissue {
my ($self, $iss, $itemnum) = @_;
my $due_dt;
if (defined $iss ) {
$due_dt = dt_from_string( $iss->date_due() );
} # renew from AddIssue ??
else {
# need to reread the issue to get due date
$iss = GetItemIssue($itemnum);
if ($iss && $iss->{date_due} ) {
$due_dt = dt_from_string( $iss->{date_due} );
}
}
return $due_dt;
}
sub DESTROY {
# be cool
}

View File

@ -140,14 +140,8 @@ sub do_checkout {
# . "w/ \$borrower: " . Dumper($borrower)
. "w/ C4::Context->userenv: " . Dumper(C4::Context->userenv);
my $issue = AddIssue( $borrower, $barcode, $overridden_duedate, 0 );
my $due_dt = dt_from_string( $issue->date_due() );
if ($due_dt) {
$self->{due} = $due_dt->clone();
} else {
$self->{due} = undef;
}
$self->{due} = $self->duedatefromissue($issue, $itemnumber);
#$self->{item}->due_date($due);
$self->ok(1);
return $self;
}

View File

@ -45,12 +45,8 @@ sub do_renew_for {
}
if ($renewokay){
$self->{due} = undef;
my $issue = AddIssue( $borrower, $self->{item}->id, undef, 0 );
my $due_date = dt_from_string( $issue->date_due() );
if ($due_date) {
$self->{due} = $due_date;
}
$self->{due} = $self->duedatefromissue($issue, $self->{item}->{itemnumber});
$self->renewal_ok(1);
} else {
$renewerror=~s/on_reserve/Item unavailable due to outstanding holds/;