@@ -, +, @@ --- C4/Circulation.pm | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) --- a/C4/Circulation.pm +++ a/C4/Circulation.pm @@ -1355,17 +1355,33 @@ sub AddIssue { } $datedue->truncate( to => 'minute' ); - $issue = Koha::Database->new()->schema()->resultset('Issue')->update_or_create( - { - borrowernumber => $borrower->{'borrowernumber'}, - itemnumber => $item->{'itemnumber'}, - issuedate => $issuedate->strftime('%Y-%m-%d %H:%M:%S'), - date_due => $datedue->strftime('%Y-%m-%d %H:%M:%S'), - branchcode => C4::Context->userenv->{'branch'}, - onsite_checkout => $onsite_checkout, - auto_renew => $auto_renew ? 1 : 0 - } - ); + $issue = + Koha::Checkouts->find( { itemnumber => $item->{'itemnumber'} } ); + if ($issue) { + $issue->set( + { + borrowernumber => $borrower->{'borrowernumber'}, + issuedate => $issuedate->strftime('%Y-%m-%d %H:%M:%S'), + date_due => $datedue->strftime('%Y-%m-%d %H:%M:%S'), + branchcode => C4::Context->userenv->{'branch'}, + onsite_checkout => $onsite_checkout, + auto_renew => $auto_renew ? 1 : 0 + } + )->store; + } + else { + $issue = Koha::Checkout->new( + { + borrowernumber => $borrower->{'borrowernumber'}, + itemnumber => $item->{'itemnumber'}, + issuedate => $issuedate->strftime('%Y-%m-%d %H:%M:%S'), + date_due => $datedue->strftime('%Y-%m-%d %H:%M:%S'), + branchcode => C4::Context->userenv->{'branch'}, + onsite_checkout => $onsite_checkout, + auto_renew => $auto_renew ? 1 : 0 + } + )->store; + } if ( C4::Context->preference('ReturnToShelvingCart') ) { # ReturnToShelvingCart is on, anything issued should be taken off the cart. --