From 1abbd3773263abed44672ee187c0cc275df60b6b Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Fri, 12 Dec 2025 20:18:26 +0000 Subject: [PATCH] Bug 41444: Search for transfers directly This patch removes a fetch of the item object followed but get_transfer to simply search the transfers by itemnumber and status To test: 1 - Add many items to your records https://github.com/kidclamp/handy-koha-script/blob/main/randitems.pl NOTE: this script makes a lot of items withdrawn or damaged, undo that for more dramatic difference UPDATE items SET withdrawn=0,damaged=0 perl misc/search_tools/rebuild_elasticsearch -v 2 - Set Koha system preferences to display more results and check more items: maxItemsInSearchResults 60 numSearchResults 50 3 - Do a search, several times, note the time it takes 4 - Apply patch, restart all 5 - Repeat search several times, note the time it takes 6 - Confirm it is better after the patch --- C4/Search.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/C4/Search.pm b/C4/Search.pm index 1ec3f34b022..7b1bdb5fa1e 100644 --- a/C4/Search.pm +++ b/C4/Search.pm @@ -1954,8 +1954,10 @@ sub searchResults { # the in transit status count as unavailable for search limiting, # should map transit status to record indexed in Zebra. - my $item_object = Koha::Items->find( $item->{itemnumber} ); - my $transfer = defined($item_object) ? $item_object->get_transfer : undef; + my $transfer = Koha::Item::Transfers->search( + { itemnumber => $item->{itemnumber}, datearrived => undef, datecancelled => undef }, + { order_by => [ { '-desc' => 'datesent' }, { '-asc' => 'daterequested' } ] } + )->next; ( $transfertwhen, $transfertfrom, $transfertto ) = defined($transfer) ? ( $transfer->datesent, $transfer->frombranch, -- 2.39.5