X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=Koha%2FBiblios.pm;h=416aa2bbe5f49559b620eaa500f7437105c87693;hb=96804dfb5fb20a61f7734094354d2a1fca85f6bd;hp=845298897b539474c7d26db253b64cbbab3002b3;hpb=7d8b96803f664d86762a6afb966051f7d565c40e;p=koha-ffzg.git diff --git a/Koha/Biblios.pm b/Koha/Biblios.pm index 845298897b..416aa2bbe5 100644 --- a/Koha/Biblios.pm +++ b/Koha/Biblios.pm @@ -19,11 +19,11 @@ package Koha::Biblios; use Modern::Perl; -use Carp; use Koha::Database; use Koha::Biblio; +use Koha::Libraries; use base qw(Koha::Objects); @@ -33,10 +33,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