@@ -, +, @@ --- Koha/AdditionalField.pm | 2 +- serials/serials-search.pl | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) --- a/Koha/AdditionalField.pm +++ a/Koha/AdditionalField.pm @@ -230,7 +230,7 @@ sub get_matching_record_ids { ) AS values$i |; $subquery .= ' USING (record_id)' if $i > 1; push @subqueries, $subquery; - push @args, $field->{name}, $tablename, ( $exact_match ? $field->{value} : "%$field->{value}%" ); + push @args, $field->{name}, $tablename, ( $exact_match or $field->{authorised_value_category} ? $field->{value} : "%$field->{value}%" ); } $query .= join( ' LEFT JOIN ', @subqueries ) . ' WHERE 1'; for my $j ( 1 .. $i ) { --- a/serials/serials-search.pl +++ a/serials/serials-search.pl @@ -82,8 +82,11 @@ my $additional_fields = Koha::AdditionalField->all( { tablename => 'subscription my $additional_field_filters; for my $field ( @$additional_fields ) { my $filter_value = $query->param('additional_field_' . $field->{id} . '_filter'); - if ( defined ( $filter_value ) ) { - $additional_field_filters->{ $field->{name} } = $filter_value; + if ( defined $filter_value and $filter_value ne q|| ) { + $additional_field_filters->{ $field->{name} } = { + value => $filter_value, + authorised_value_category => $field->{authorised_value_category}, + }; } if ( $field->{authorised_value_category} ) { $field->{authorised_value_choices} = GetAuthorisedValues( $field->{authorised_value_category} ); @@ -103,7 +106,7 @@ if ($searched){ publisher => $publisher, bookseller => $bookseller, branch => $branch, - additional_fields => [ map{ { name => $_, value => $additional_field_filters->{$_}} } keys %$additional_field_filters ], + additional_fields => [ map{ { name => $_, value => $additional_field_filters->{$_}{value}, authorised_value_category => $additional_field_filters->{$_}{authorised_value_category} } } keys %$additional_field_filters ], location => $location, expiration_date => $expiration_date_dt, } --