From 80f784d352c5f2425291bd13cd2c289bbfd83894 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 29 Jul 2022 13:06:07 +0200 Subject: [PATCH] Bug 31306: Allow to pass params and attributes to search_ordered Signed-off-by: Owen Leonard Signed-off-by: Tomas Cohen Arazi --- Koha/Items.pm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/Koha/Items.pm b/Koha/Items.pm index 04db9654aa..3e4eece94e 100644 --- a/Koha/Items.pm +++ b/Koha/Items.pm @@ -407,10 +407,22 @@ Search and sort items in a specific order, depending if serials are present or n =cut sub search_ordered { - my ($self) = @_; + my ($self, $params, $attributes) = @_; + + $self = $self->search($params, $attributes); - if ( $self->search({ select => ["enumchron IS NOT NULL"] }) ) { - return $self->search( {}, { order_by => 'enumchron' } ); + my @biblionumbers = uniq $self->get_column('biblionumber'); + + if ( scalar ( @biblionumbers ) == 1 + && Koha::Biblios->find( $biblionumbers[0] )->serial ) + { + return $self->search( + {}, + { + order_by => [ 'serialid.publisheddate', 'me.enumchron' ], + join => { serialitem => 'serialid' } + } + ); } else { return $self->search( {}, -- 2.39.5