From 74dd4ce2187b8aacd58646a3af69fe1b611953dc Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 9 Oct 2012 18:06:59 +0200 Subject: [PATCH] Fix: possibility to force the clause --- htdocs/societe/class/societe.class.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 14e2e8d1a3f..86754296c8b 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -842,9 +842,10 @@ class Societe extends CommonObject * @param array $filters Array of couple field name/value to filter the companies with the same name * @param boolean $exact Exact string search (true/false) * @param boolean $case Case sensitive (true/false) + * @param string $clause Clause for filters * @return array Array of thirdparties object */ - function searchByName($name, $type='0', $filters = array(), $exact = false, $case = false) + function searchByName($name, $type='0', $filters = array(), $exact = false, $case = false, $clause = 'AND') { $thirdparties = array(); @@ -858,6 +859,7 @@ class Societe extends CommonObject elseif ($type == 3) $sql.= " AND fournisseur = 1"; } + $sql.= "("; if (! empty($name)) { if (! $exact) @@ -874,11 +876,12 @@ class Societe extends CommonObject if (! $exact) $value = '%'.str_replace('*', '%', $value).'%'; if (! $case) - $sql.= " AND ".$field." LIKE '".$this->db->escape($value)."'"; + $sql.= " ".$clause." ".$field." LIKE '".$this->db->escape($value)."'"; else - $sql.= " AND ".$field." LIKE BINARY '".$this->db->escape($value)."'"; + $sql.= " ".$clause." ".$field." LIKE BINARY '".$this->db->escape($value)."'"; } } + $sql.= ")"; $res = $this->db->query($sql); if ($res)