From dec1338a03b7e1b82a68b39539a32b40f67066b7 Mon Sep 17 00:00:00 2001
From: Tomas Cohen Arazi <tomascohen@theke.io>
Date: Mon, 22 Feb 2021 09:27:12 -0300
Subject: [PATCH] Bug 27071: (follow-up) Get rid of loop

This patch gets rid of a loop on the librarary's groups siblings, and
acknowledges ->get_hold_libraries returns a proper Koha::Libraries
iterator that can be chained with a new query on the passed branchcode.
This way we only fetch  a count from the DB and no loop needs to take
place on the code.

To test:
1. Apply this patch
2. Run:
   $ kshell
  k$ prove t/db_dependent/Koha/Libraries.t
=> SUCCESS: Tests pass!
3. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
---
 Koha/Library.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Koha/Library.pm b/Koha/Library.pm
index 8dcb2bb48b..c1ebd2f3ca 100644
--- a/Koha/Library.pm
+++ b/Koha/Library.pm
@@ -244,8 +244,8 @@ sub validate_hold_sibling {
     return 1 if $params->{branchcode} eq $self->id;
 
     my $branchcode = $params->{branchcode};
-    my @hold_libraries = $self->get_hold_libraries;
-    return grep {$_->branchcode eq $branchcode} @hold_libraries;
+    return $self->get_hold_libraries->search( { branchcode => $branchcode } )
+      ->count > 0;
 }
 
 =head2 Internal methods
-- 
2.20.1