Fix: best method

This commit is contained in:
Regis Houssin 2012-10-09 18:33:02 +02:00
parent 6791d23032
commit 3abb1b88ff

View File

@ -862,7 +862,16 @@ class Societe extends CommonObject
if (! empty($name)) if (! empty($name))
{ {
if (! $exact) if (! $exact)
$name = '%'.str_replace('*', '%', $name).'%'; {
if (preg_match('/^([\*]+)[^*]+([\*]+)$/', $name))
{
$name = str_replace('*', '%', $name);
}
else
{
$name = '%'.$name.'%';
}
}
$sql.= " AND "; $sql.= " AND ";
if (is_array($filters) && ! empty($filters)) if (is_array($filters) && ! empty($filters))
$sql.= "("; $sql.= "(";
@ -876,7 +885,16 @@ class Societe extends CommonObject
foreach($filters as $field => $value) foreach($filters as $field => $value)
{ {
if (! $exact) if (! $exact)
$value = str_replace('*', '%', $value); {
if (preg_match('/^([\*]+)[^*]+([\*]+)$/', $value))
{
$value = str_replace('*', '%', $value);
}
else
{
$value = '%'.$value.'%';
}
}
if (! $case) if (! $case)
$sql.= " ".$clause." ".$field." LIKE '".$this->db->escape($value)."'"; $sql.= " ".$clause." ".$field." LIKE '".$this->db->escape($value)."'";
else else