From 49b5934235b03f44be2240d9c72be59b2e8efe95 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. Signed-off-by: Tomas Cohen Arazi Signed-off-by: Kyle M Hall Signed-off-by: Tomas Cohen Arazi (cherry picked from commit 40e4722a957102a52ece9cd4f21ab6fd902f3c18) Signed-off-by: Chris Cormack --- C4/Circulation.pm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/C4/Circulation.pm b/C4/Circulation.pm index ff0461400e..69adc1a53e 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -3805,12 +3805,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.20.1