From 243009bc9a07f89adbe14a4c8f35df85030f3dab Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 18 Oct 2017 13:59:56 -0300 Subject: [PATCH] Bug 19487: Do not return an item if not checked out To recreate: 1 - Manually add a lost fine to a ptron and include a barcode 2 - Attempt to write off the fine 3 - Internal server error 4 - Checkout an item and mark lost to checkin and fine 5 - Attempt to write off line 6 - Internal server error Signed-off-by: Nick Clemens Signed-off-by: Marcel de Rooy Signed-off-by: Jonathan Druart (cherry picked from commit 7b5c1fce5880f8592c5a9dbd40614a760bb2607e) Signed-off-by: Fridolin Somers --- C4/Circulation.pm | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index dbe5bbf951..fb8d365484 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -2133,6 +2133,11 @@ routine in C. sub MarkIssueReturned { my ( $borrowernumber, $itemnumber, $dropbox_branch, $returndate, $privacy ) = @_; + + # Retrieve the issue + my $issue = Koha::Checkouts->find( { itemnumber => $itemnumber } ) or return; + my $issue_id = $issue->issue_id; + my $anonymouspatron; if ( $privacy == 2 ) { # The default of 0 will not work due to foreign key constraints @@ -2147,11 +2152,6 @@ sub MarkIssueReturned { my $schema = $database->schema; my $dbh = C4::Context->dbh; - my $issue_id = $dbh->selectrow_array( - q|SELECT issue_id FROM issues WHERE itemnumber = ?|, - undef, $itemnumber - ); - my $query = 'UPDATE issues SET returndate='; my @bind; if ($dropbox_branch) { @@ -2174,9 +2174,6 @@ sub MarkIssueReturned { # Update the returndate $dbh->do( $query, undef, @bind ); - # Retrieve the issue - my $issue = Koha::Checkouts->find( $issue_id ); # FIXME should be fetched earlier - # Create the old_issues entry my $old_checkout = Koha::Old::Checkout->new($issue->unblessed)->store; -- 2.39.5