@@ -, +, @@ --- C4/SIP/ILS/Transaction.pm | 20 ++++++++++++++++++++ C4/SIP/ILS/Transaction/Checkout.pm | 8 +------- C4/SIP/ILS/Transaction/Renew.pm | 6 +----- 3 files changed, 22 insertions(+), 12 deletions(-) --- a/C4/SIP/ILS/Transaction.pm +++ a/C4/SIP/ILS/Transaction.pm @@ -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 } --- a/C4/SIP/ILS/Transaction/Checkout.pm +++ a/C4/SIP/ILS/Transaction/Checkout.pm @@ -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; } --- a/C4/SIP/ILS/Transaction/Renew.pm +++ a/C4/SIP/ILS/Transaction/Renew.pm @@ -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/; --