From 64c105a555b2ad720cf748076a2e06aeaadda665 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 22 Apr 2015 16:05:41 +0200 Subject: [PATCH] Bug 14046: Make the CheckIfIssuedToPatron using the biblionumber C4::Circ::CheckIfIssuedToPatron called $items = GetItemsByBiblioitemnumber($biblionumber); But if biblionumber != biblioitemnumber, the items retrieved were not the good ones! Test plan: Make your Auto increment values for biblio and biblioitems differs Launch the tests: prove t/db_dependent/Circulation/CheckIfIssuedToPatron.t Before this patch, they did not pass. --- C4/Circulation.pm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index bd192cf..dd23734 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -3808,12 +3808,15 @@ sub TransferSlip { sub CheckIfIssuedToPatron { my ($borrowernumber, $biblionumber) = @_; - my $items = GetItemsByBiblioitemnumber($biblionumber); - - foreach my $item (@{$items}) { - return 1 if ($item->{borrowernumber} && $item->{borrowernumber} eq $borrowernumber); - } - + my $dbh = C4::Context->dbh; + my $query = q| + SELECT COUNT(*) FROM issues + LEFT JOIN items ON items.itemnumber = issues.itemnumber + WHERE items.biblionumber = ? + AND issues.borrowernumber = ? + |; + my $is_issued = $dbh->selectrow_array($query, {}, $biblionumber, $borrowernumber ); + return 1 if $is_issued; return; } -- 2.1.0