@@ -, +, @@ 584 # only consider real columns (for functions the user got to do an explicit group_by) 585 my $chunk_ci; 586 if ( 587 @{$order_by[$o_idx]} != 1 588 or 589 # only declare an unknown *plain* identifier as "leftover" if we are called with 590 # aliastypes to examine. If there are none - we are still in _resolve_attrs, and 591 # can just assume the user knows what they want 592 ( ! ( $chunk_ci = $colinfos->{$order_by[$o_idx][0]} ) and $attrs->{_aliastypes} ) 593 ) { 594 push @$leftovers, $order_by[$o_idx][0]; 595 } --- Koha/Items.pm | 5 ++++- Koha/REST/V1/Biblios.pm | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) --- a/Koha/Items.pm +++ a/Koha/Items.pm @@ -466,10 +466,13 @@ sub search_ordered { return $self->search( {}, { + '+select' => [{ + lpad => ['copynumber', \8, \"'0'"], '-as' => 'lpad_copynumber', + }], order_by => [ 'homebranch.branchname', 'me.enumchron', - \"LPAD( me.copynumber, 8, '0' )", + 'lpad_copynumber', {-desc => 'me.dateaccessioned'} ], join => ['homebranch'] --- a/Koha/REST/V1/Biblios.pm +++ a/Koha/REST/V1/Biblios.pm @@ -307,6 +307,7 @@ sub get_items { $items_rs = $items_rs->filter_by_bookable if $bookable_only; # FIXME We need to order_by serial.publisheddate if we have _order_by=+me.serial_issue_number my $items = $c->objects->search($items_rs); + delete $_->{lpad_copynumber} for @$items; return $c->render( status => 200, --