Bug 31333: (QA follow-up) Simplify code
authorTomas Cohen Arazi <tomascohen@theke.io>
Wed, 5 Oct 2022 18:14:22 +0000 (15:14 -0300)
committerTomas Cohen Arazi <tomascohen@theke.io>
Wed, 5 Oct 2022 19:01:06 +0000 (16:01 -0300)
The new syspref is a deny-list. So not being part of the list means you
are allowed. This was not that clear reading the code, so this patch
tries to simplify the logic. Better handling on undef syspref value is
added as well to avoid useless warnings.

This patch does the following changes:
- Uses `any` instead of `grep`. This has the effect of just returning a
  boolean on the first match, instead of keep looping until de array

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Koha/Patron/Category.pm

index 39c56be..b700cb2 100644 (file)
@@ -220,14 +220,13 @@ sub can_make_suggestions {
     my ( $self ) = @_;
 
     if ( C4::Context->preference('suggestion') ) {
-        my @patron_categories = split ',', C4::Context->preference('suggestionPatronCategoryExceptions');
-        if ( @patron_categories ) {
-            my $categorycode = $self->categorycode;
-            return if grep {$_ eq $categorycode } @patron_categories;
-        }
-        return 1;
+
+        my @patron_categories = split ',', C4::Context->preference('suggestionPatronCategoryExceptions') // q{};
+
+        return !any {$_ eq $self->categorycode } @patron_categories;
     }
-    return;
+
+    return 0;
 }
 
 =head2 Internal methods