From edb6195cc256f5bb0012c801bd77201fab1f73f5 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 9 Oct 2012 20:08:54 +0200 Subject: [PATCH] Fix: add similitude test --- htdocs/societe/class/societe.class.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 7599ef5f18f..8b915e48138 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -845,7 +845,7 @@ class Societe extends CommonObject * @param string $clause Clause for filters * @return array Array of thirdparties object */ - function searchByName($name, $type='0', $filters = array(), $exact = false, $case = false, $clause = 'AND') + function searchByName($name, $type='0', $filters = array(), $exact = false, $case = false, $similar = false, $clause = 'AND') { $thirdparties = array(); @@ -875,10 +875,18 @@ class Societe extends CommonObject $sql.= " AND "; if (is_array($filters) && ! empty($filters)) $sql.= "("; - if (! $case) - $sql.= "nom LIKE '".$this->db->escape($name)."'"; + if ($similar) + { + // For test similitude + $sql.= "(LOCATE('".$name."', nom) > 0 OR LOCATE(nom, '".$name."') > 0)"; + } else - $sql.= "nom LIKE BINARY '".$this->db->escape($name)."'"; + { + if (! $case) + $sql.= "nom LIKE '".$this->db->escape($name)."'"; + else + $sql.= "nom LIKE BINARY '".$this->db->escape($name)."'"; + } } if (is_array($filters) && ! empty($filters)) {