From bc2aea0df493a350aa9824bbceb0521610c13364 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Mon, 3 May 2021 09:45:41 -0300 Subject: [PATCH] Bug 28273: Add Koha::Biblios->pickup_locations https://bugs.koha-community.org/show_bug.cgi?id=26273 Signed-off-by: Andrew Fuerste-Henry Signed-off-by: Kyle M Hall Signed-off-by: Jonathan Druart --- Koha/Biblios.pm | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/Koha/Biblios.pm b/Koha/Biblios.pm index 845298897b..9491fb3112 100644 --- a/Koha/Biblios.pm +++ b/Koha/Biblios.pm @@ -24,6 +24,7 @@ use Carp; use Koha::Database; use Koha::Biblio; +use Koha::Libraries; use base qw(Koha::Objects); @@ -33,10 +34,39 @@ Koha::Biblios - Koha Biblio object set class =head1 API -=head2 Class Methods +=head2 Class methods + +=head3 pickup_locations + + my $biblios = Koha::Biblios->search(...); + my $pickup_locations = $biblios->pickup_locations({ patron => $patron }); + +For a given resultset, it returns all the pickup locations =cut +sub pickup_locations { + my ( $self, $params ) = @_; + + my $patron = $params->{patron}; + + my @pickup_locations; + foreach my $biblio ( $self->as_list ) { + push @pickup_locations, + $biblio->pickup_locations( { patron => $patron } ) + ->_resultset->get_column('branchcode')->all; + } + + return Koha::Libraries->search( + { + branchcode => \@pickup_locations + }, + { order_by => ['branchname'] } + ); +} + +=head2 Internal methods + =head3 type =cut -- 2.39.5