Bug 40861: Remove warning from serials/acqui-search-result.pl

Odd number of elements in anonymous hash at /kohadevbox/koha/serials/acqui-search-result.pl line 84.

it's coming from closedate that is empty, and output_pref that will
reach this return:
278     if ($str) {
279         local $@;
280         $dt = eval { dt_from_string($str) };
281         Koha::Exceptions::WrongParameter->throw("Invalid date '$str' passed to output_pref") if $@;
282     }
283
284     return if !defined $dt;    # NULL date

if str is undef, we don't enter if l.278 and return l.284
which will shift the elements of the hash (because of the list context)

We force the scalar and we are good.

There was no side-effect because closedate was the last of the list.

Note that total (and the 'count(*)' key) is not used in the template.

Test plan:
Create an order for a basket of the first vendor "My vendor" and hit
http://localhost:8081/cgi-bin/koha/serials/acqui-search-result.pl?supplier=d
Without this patch you get the warning
Odd number of elements in anonymous hash at /kohadevbox/koha/serials/acqui-search-result.pl line 84.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
(cherry picked from commit 71619f90e5)
Signed-off-by: Paul Derscheid <paul.derscheid@lmscloud.de>
This commit is contained in:
Jonathan Druart 2025-09-23 16:19:16 +02:00 committed by Paul Derscheid
parent cd6c198b5c
commit 6ebf2b7e45
No known key found for this signature in database
GPG Key ID: C25F9FD44CED595B
1 changed files with 2 additions and 3 deletions

View File

@ -77,10 +77,9 @@ for my $s (@suppliers) {
for my $ord ( @{$orders} ) {
push @{$loop_basket}, {
basketno => $ord->{'basketno'},
total => $ord->{'count(*)'},
authorisedby => $ord->{'authorisedby'},
creationdate => output_pref( { str => $ord->{'creationdate'} } ),
closedate => output_pref( { str => $ord->{'closedate'} } ),
creationdate => scalar output_pref( { str => $ord->{'creationdate'} } ),
closedate => scalar output_pref( { str => $ord->{'closedate'} } ),
};
}
push @{$loop_suppliers}, {