From 334c31db0697a54988c5f186084b211bdc17194e 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 --- Koha/Biblios.pm | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/Koha/Biblios.pm b/Koha/Biblios.pm index 845298897b5..9491fb3112f 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.31.1