Namenssuche mit Sonderzeichen CIS und FAS

This commit is contained in:
Manfred
2022-03-31 16:41:43 +02:00
parent bc4f352229
commit 31335b4ee4
2 changed files with 12 additions and 4 deletions
+6 -2
View File
@@ -309,6 +309,10 @@ class benutzer extends person
*/
public function search($searchItems, $limit=null, $aktiv=true, $positivePersonalnr=false)
{
// SearchItems imploden und trimmen, um preg_split(Zeichenweise trennung) durchfuehren zu koennen
$searchItems_string_orig = implode(' ', $searchItems);
$searchItems_string = generateSpecialCharacterString($searchItems_string_orig);
$qry = "SELECT * FROM (
SELECT
distinct on (uid) vorname, nachname, uid, mitarbeiter_uid, personalnummer, titelpre, titelpost, lektor, fixangestellt, alias, tbl_benutzer.aktiv, anrede,
@@ -350,8 +354,8 @@ class benutzer extends person
if($positivePersonalnr === true)
$qry.=" (personalnummer >= 0 OR personalnummer IS NULL) AND";
$qry.=" (lower(vorname || ' ' || nachname) like lower('%".$this->db_escape(implode(' ',$searchItems))."%')";
$qry.=" OR lower(nachname || ' ' || vorname) like lower('%".$this->db_escape(implode(' ',$searchItems))."%')";
$qry.=" (lower(vorname || ' ' || nachname) ~* lower(".$this->db_add_param($searchItems_string).")";
$qry.=" OR lower(nachname || ' ' || vorname) ~* lower(".$this->db_add_param($searchItems_string).")";
$qry.=" OR lower(uid) like lower('%".$this->db_escape(implode(' ',$searchItems))."%')";
$qry.=" OR lower(telefonklappe) like lower('%".$this->db_escape(implode(' ',$searchItems))."%')";
+6 -2
View File
@@ -918,6 +918,10 @@ class mitarbeiter extends benutzer
*/
public function searchPersonal($filter)
{
// Filter imploden und trimmen, um preg_split(Zeichenweise trennung) durchfuehren zu koennen
//$searchItems_string_orig = implode(' ', $filter);
$searchItems_string = generateSpecialCharacterString($filter);
$qry = "SELECT
distinct on(mitarbeiter_uid) *, tbl_benutzer.aktiv as aktiv, tbl_mitarbeiter.insertamum,
tbl_mitarbeiter.insertvon, tbl_mitarbeiter.updateamum, tbl_mitarbeiter.updatevon, tbl_person.svnr
@@ -925,8 +929,8 @@ class mitarbeiter extends benutzer
public.tbl_mitarbeiter
JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)
JOIN public.tbl_person USING(person_id)
WHERE lower(COALESCE(nachname,'') ||' '|| COALESCE(vorname,'')) ~* lower(".$this->db_add_param($filter).") OR
lower(COALESCE(vorname,'') ||' '|| COALESCE(nachname,'')) ~* lower(".$this->db_add_param($filter).") OR
WHERE lower(COALESCE(nachname,'') ||' '|| COALESCE(vorname,'')) ~* lower(".$this->db_add_param($searchItems_string).") OR
lower(COALESCE(vorname,'') ||' '|| COALESCE(nachname,'')) ~* lower(".$this->db_add_param($searchItems_string).") OR
uid ~* ".$this->db_add_param($filter)." ";
if(is_numeric($filter))
$qry.="OR personalnummer = ".$this->db_add_param($filter)." OR svnr = ".$this->db_add_param($filter).";";