@usrv = map { "^" . _clean_regex_chars($$search{$_}{value}) } grep { ''.$$search{$_}{group} eq '0' } keys %$search;
}
- $dob = join ' AND ', map { ("CAST (DATE_PART('" . ( s/year//g ? 'year' : ( s/month//g ? 'month' : 'day' ) ) . "', dob) AS text) ~ ?") } grep { ''.$$search{$_}{group} eq '4' } keys %$search;
+ while (($key, $value) = each (%$search)) {
+ if($$search{$key}{group} eq '4') {
+ my $tval = $key;
+ $tval =~ s/dob_//g;
+ my $right = "RIGHT('0'|| ";
+ my $end = ", 2)";
+ $log->info("BOOYA - tval = $tval");
+ $end = $right = '' if lc $tval eq 'year';
+ $dob .= $right."CAST(DATE_PART('$tval', dob) AS text)$end ~ ? AND ";
+ }
+ }
+ # Trim the last " AND "
+ $dob = substr($dob,0,-4);
+
@dobv = map { _clean_regex_chars($$search{$_}{value}) } grep { ''.$$search{$_}{group} eq '4' } keys %$search;
$usr .= ' AND ' if ( $usr && $dob );
- $usr .= $dob if $dob;
+ $usr .= $dob if $dob; # $dob not in-line above in case $usr doesn't have any search vals (only searched for dob)
push(@usrv, @dobv) if @dobv;
my $addr = join ' AND ', map { "evergreen.lowercase(CAST($_ AS text)) ~ ?" } grep { ''.$$search{$_}{group} eq '1' } keys %$search;
--- /dev/null
+Patron Search by Birth Date
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+* Now you can include the patron birth year and/or birth month and/or
+ birth day when searching for patrons using the web based staff client.
\ No newline at end of file