#
# 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;
-use Carp;
use C4::Context;
=head1 API
-=head2 Class Methods
-
-=cut
-
-=head3 pickup_locations
-
-Returns available pickup locations (Koha::Library objects) for
- A. a specific item
- B. a biblio
- C. none of the above, simply all libraries with pickup_location => 1
-
-This method determines the pickup location by two factors:
- 1. is the library configured as pickup location
- 2. can a specific item / at least one of the items of a biblio be transferred
- into the library
-
-OPTIONAL PARAMETERS:
- item # Koha::Item object / itemnumber, find pickup locations for item
- biblio # Koha::Biblio object / biblionumber, find pickup locations for biblio
-
-If no parameters are given, all libraries with pickup_location => 1 are returned.
-
-=cut
-
-sub pickup_locations {
- my ($self, $params) = @_;
-
- 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({
- pickup_location => 1
- }, {
- order_by => ['branchname']
- });
-
- return $libraries unless $item or $biblio;
- if($item) {
- unless (ref($item) eq 'Koha::Item') {
- $item = Koha::Items->find($item);
- return $libraries 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 $biblio->pickup_locations( {patron => $patron} );
- }
-}
+=head2 Class methods
=head3 search_filtered