From: jeff Date: Mon, 14 Apr 2008 13:42:25 +0000 (+0000) Subject: Improve record searching X-Git-Tag: root_of_webpay_support~706 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=356db8bf3c2d707f4987ca3e5f14b3b4662775ff Improve record searching --- diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm index db940034d..d010f860b 100644 --- a/FS/FS/Record.pm +++ b/FS/FS/Record.pm @@ -298,6 +298,14 @@ sub qsearch { && dbdef->table($table)->column($field)->type =~ /(int|(big)?serial)/i ) { $sth->bind_param($bind++, $record->{$field}, { TYPE => SQL_INTEGER } ); + }elsif ( $record->{$field} =~ /^[+-]?\d+(\.\d+)?$/ + && dbdef->table($table)->column($field)->type =~ /(numeric)/i + ) { + $sth->bind_param($bind++, $record->{$field}, { TYPE => SQL_FLOAT } ); + }elsif ( $record->{$field} =~ /[-+]?\d*\.?\d+([eE][-+]?\d+)?/ + && dbdef->table($table)->column($field)->type =~ /(float4)/i + ) { + $sth->bind_param($bind++, $record->{$field}, { TYPE => SQL_FLOAT } ); } else { $sth->bind_param($bind++, $record->{$field}, { TYPE => SQL_VARCHAR } ); }