diff --git a/htdocs/core/lib/company.lib.php b/htdocs/core/lib/company.lib.php index da7b2918ec7..22a0705e590 100644 --- a/htdocs/core/lib/company.lib.php +++ b/htdocs/core/lib/company.lib.php @@ -868,7 +868,37 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $search_status = GETPOST("search_status", 'int'); if ($search_status=='') $search_status=1; // always display active customer first $search_name = GETPOST("search_name", 'alpha'); - $search_addressphone = GETPOST("search_addressphone", 'alpha'); + $searchAddressPhone = GETPOST("search_address", 'alpha'); + $searchJobFunction=GETPOST("search_poste", 'alpha'); + + $searchAddressPhoneDBFields = array( + //Address + 't.address', + 't.zip', + 't.town', + + //Phone + 't.phone', + 't.phone_perso', + 't.phone_mobile', + + //Fax + 't.fax', + + //E-mail + 't.email', + + //Social media + "t.skype", + "t.jabberid", + "t.twitter", + "t.facebook", + "t.linkedin", + "t.whatsapp", + "t.youtube", + "t.snapchat", + "t.instagram" + ); if (! $sortorder) $sortorder="ASC"; if (! $sortfield) $sortfield="t.lastname"; @@ -915,9 +945,12 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') // Initialize array of search criterias $search=array(); - foreach($contactstatic->fields as $key => $val) + foreach($arrayfields as $key => $val) { - if (GETPOST('search_'.$key, 'alpha')) $search[$key]=GETPOST('search_'.$key, 'alpha'); + $queryName = sprintf('search_%s',substr($key, 2)); + if (GETPOST($queryName, 'alpha')){ + $search[$key]=GETPOST($queryName, 'alpha'); + } } $search_array_options=$extrafields->getOptionalsFromPost($contactstatic->table_element, '', 'search_'); @@ -926,14 +959,15 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') { $search_status = ''; $search_name = ''; - $search_addressphone = ''; + $searchAddressPhone = ''; + $searchJobFunction = ''; + $search= []; $search_array_options=array(); foreach($contactstatic->fields as $key => $val) { $search[$key]=''; } - $toselect=''; } $contactstatic->fields = dol_sort_array($contactstatic->fields, 'position'); @@ -968,7 +1002,10 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $param="socid=".urlencode($object->id); if ($search_status != '') $param.='&search_status='.urlencode($search_status); if ($search_name != '') $param.='&search_name='.urlencode($search_name); + if ($searchJobFunction != '') $param.='&search_poste='.urlencode($searchJobFunction); + if ($searchAddressPhone != '') $param.='&search_address='.urlencode($optioncss); if ($optioncss != '') $param.='&optioncss='.urlencode($optioncss); + // Add $param from extra fields $extrafieldsobjectkey=$contactstatic->table_element; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_param.tpl.php'; @@ -980,6 +1017,8 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') $sql .= " WHERE t.fk_soc = ".$object->id; if ($search_status!='' && $search_status != '-1') $sql .= " AND t.statut = ".$db->escape($search_status); if ($search_name) $sql .= natural_search(array('t.lastname', 't.firstname'), $search_name); + if ($searchJobFunction) $sql.= natural_search('t.poste', $searchJobFunction); + if ($searchAddressPhone) $sql .= natural_search($searchAddressPhoneDBFields, $searchAddressPhone); // Add where from extra fields $extrafieldsobjectkey=$contactstatic->table_element; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_list_search_sql.tpl.php'; @@ -995,17 +1034,21 @@ function show_contacts($conf, $langs, $db, $object, $backtopage = '') // Fields title search // -------------------------------------------------------------------- print '