Bug 24545: Fix license statements
[srvgit] / Koha / Libraries.pm
index c3464ee..27e4a23 100644 (file)
@@ -4,18 +4,18 @@ package Koha::Libraries;
 #
 # This file is part of Koha.
 #
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 3 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 #
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along
-# with Koha; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
 
 use Modern::Perl;
 
@@ -67,17 +67,12 @@ sub pickup_locations {
 
     my $item = $params->{'item'};
     my $biblio = $params->{'biblio'};
-    my $patron = $params->{'patron'};
-
     if ($biblio && $item) {
         Koha::Exceptions::BadParameter->throw(
             error => "Koha::Libraries->pickup_locations takes either 'biblio' or "
             ." 'item' as parameter, but not both."
         );
     }
-    unless (! defined $patron || ref($patron) eq 'Koha::Patron') {
-        $patron = Koha::Patrons->find($patron);
-    }
 
     # Select libraries that are configured as pickup locations
     my $libraries = $self->search({
@@ -86,20 +81,33 @@ sub pickup_locations {
         order_by => ['branchname']
     });
 
-    return $libraries unless $item or $biblio;
-    if($item) {
+    return $libraries->unblessed unless $item or $biblio;
+    return $libraries->unblessed
+        unless C4::Context->preference('UseBranchTransferLimits');
+    my $limittype = C4::Context->preference('BranchTransferLimitsType');
+
+    if ($item) {
         unless (ref($item) eq 'Koha::Item') {
             $item = Koha::Items->find($item);
-            return $libraries unless $item;
+            return $libraries->unblessed unless $item;
         }
-        return $item->pickup_locations( {patron => $patron} );
     } else {
         unless (ref($biblio) eq 'Koha::Biblio') {
             $biblio = Koha::Biblios->find($biblio);
-            return $libraries unless $biblio;
+            return $libraries->unblessed unless $biblio;
         }
-        return $biblio->pickup_locations( {patron => $patron} );
     }
+
+    my @pickup_locations;
+    foreach my $library ($libraries->as_list) {
+        if ($item && $item->can_be_transferred({ to => $library })) {
+            push @pickup_locations, $library->unblessed;
+        } elsif ($biblio && $biblio->can_be_transferred({ to => $library })) {
+            push @pickup_locations, $library->unblessed;
+        }
+    }
+
+    return wantarray ? @pickup_locations : \@pickup_locations;
 }
 
 =head3 search_filtered