@@ -, +, @@ searching patron with invalid birth date - Go to Home > Patron - Expand patron search (click on + at the left of the search button) - In drop down 'Search fields', select 'Date of birth' - Enter a valid date (e.g. 11.02.1995 if syspref 'dateformat' is set to dmydot) - Enter an invalid date, e.g. 11.02 or abcd... - Do a patron search with many results - Use filter on results screen, select 'Date of birth' as search field and enter an invalid date to search (e.g. 'a') - Apply patch - Repeat steps above - In both cases, you should get "No results" --- members/member.pl | 2 +- svc/members/search | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) --- a/members/member.pl +++ a/members/member.pl @@ -65,7 +65,7 @@ if ( $quicksearch and $searchmember ) { my $searchfieldstype = $input->param('searchfieldstype') || 'standard'; if ( $searchfieldstype eq "dateofbirth" ) { - $searchmember = output_pref({dt => dt_from_string($searchmember), dateformat => 'iso', dateonly => 1}); + $searchmember = eval { output_pref({dt => dt_from_string($searchmember), dateformat => 'iso', dateonly => 1}); }; } $template->param( 'alphabet' => C4::Context->preference('alphabet') || join ' ', 'A' .. 'Z' ); --- a/svc/members/search +++ a/svc/members/search @@ -48,7 +48,11 @@ my $has_permission = $input->param('has_permission'); my $selection_type = $input->param('selection_type'); if ( $searchfieldstype eq "dateofbirth" ) { - $searchmember = output_pref({dt => dt_from_string($searchmember), dateformat => 'iso', dateonly => 1}); + $searchmember = eval { output_pref({dt => dt_from_string($searchmember), dateformat => 'iso', dateonly => 1}); }; + # Prevent display of all dates if date was not valid + unless ($searchmember ) { + $searchmember = "1000-01-01"; + } } # variable information for DataTables (id) --