. */ /** * @brief manage contacts duplicates * * * @file * @author Laurent Giovannoni * @date $date$ * @version $Revision$ * @ingroup admin */ require_once 'apps' . DIRECTORY_SEPARATOR . $_SESSION['config']['app_id'] . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR . 'class_business_app_tools.php'; $admin = new core_tools(); $admin->test_admin('admin_contacts', 'apps'); $func = new functions(); $db = new dbquery(); $db->connect(); $db2 = new dbquery(); $db2->connect(); $business = new business_app_tools(); $_SESSION['m_admin'] = array(); /****************Management of the location bar ************/ $init = false; if (isset($_REQUEST['reinit']) && $_REQUEST['reinit'] == "true") { $init = true; } $level = ""; if ( isset($_REQUEST['level']) && ( $_REQUEST['level'] == 2 || $_REQUEST['level'] == 3 || $_REQUEST['level'] == 4 || $_REQUEST['level'] == 1 ) ) { $level = $_REQUEST['level']; } $page_path = $_SESSION['config']['businessappurl'] . 'index.php?page=manage_duplicates&admin=contacts'; $page_label = _MANAGE_DUPLICATES; $page_id = "manage_duplicates"; $admin->manage_location_bar($page_path, $page_label, $page_id, $init, $level); /***********************************************************/ $color = array('#DFE3E0','#EAF2F1','#CDDCDA','#A8BCB9'); function randomColor($lastColor) { if ($lastColor <> 0) { $val = rand(0, $lastColor - 1); } else { $val = 3; } return $val; } echo '

' . _MANAGE_DUPLICATES . '

'; echo '
'; //TODO: ENABLE THIS FUNCTION FOR ALL COLLECTION USING CONTACTS //update NULL to '' $db->query("UPDATE contacts_v2 SET user_id='' WHERE user_id IS NULL"); //duplicates by society $selectDuplicatesBySociety = "SELECT contact_id, user_id, society, lower(society) as lowsoc, society_short," . "is_corporate_person, lastname, firstname " // . "address_num, address_street, address_town " . "from contacts_v2 " . "WHERE lower(society) in (" . "SELECT lower(society) FROM contacts_v2 GROUP BY lower(society), user_id " . " HAVING Count(lower(society)) > 1 and lower(society) <> '' ) " . "order by lower(society)"; $htmlTabSoc = ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $tabSoc = array(); $socCompare = ''; $colorToUse = ''; $colorNumber = '2'; $db->query($selectDuplicatesBySociety); $cptSoc = 0; while($lineDoublSoc = $db->fetch_object()) { $db2->query("SELECT id FROM contact_addresses WHERE contact_id = " . $lineDoublSoc->contact_id); // $db2->show(); $result_address = $db2->fetch_object(); if ($lineDoublSoc->contact_id <> '' && $result_address->id <> '') { $cptSoc++; if ($socCompare == $lineDoublSoc->lowsoc) { //echo 'doublon
'; } else { //echo 'new doublon
'; $colorNumber = randomColor($colorNumber); $colorToUse = $color[$colorNumber]; } $corporatePeople = ($lineDoublSoc->is_corporate_person == "Y")? _YES : _NO; $socCompare = $lineDoublSoc->lowsoc; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; $htmlTabSoc .= ''; } } //$func->show_array($tabSoc); $htmlTabSoc .= '
' . _DUPLICATES_BY_SOCIETY . '
 ' . _ID . '' . _SOCIETY . '' . _SOCIETY_SHORT . '' . _IS_CORPORATE_PERSON . '' . _LASTNAME . '' . _FIRSTNAME . ' 
' . $lineDoublSoc->contact_id . '' . $lineDoublSoc->society . '' . $lineDoublSoc->society_short . '' . $corporatePeople . '' . $lineDoublSoc->lastname . '' . $lineDoublSoc->firstname . '
'; if ($cptSoc == 0) { echo _NO_SOCIETY_DUPLICATES . '
'; } else { echo $htmlTabSoc; } ?>
1 and lower(lastname||' '||firstname) <> ' ') " . "order by lower(lastname||' '||firstname)"; $htmlTabName = ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $tabName = array(); $nameCompare = ''; $colorToUse = ''; $colorNumber = '2'; $db->query($selectDuplicatesByName); $cptName = 0; while($lineDoublName = $db->fetch_object()) { $db2->query("SELECT id FROM contact_addresses WHERE contact_id = " . $lineDoublName->contact_id); // $db2->show(); $result_address = $db2->fetch_object(); if ($lineDoublName->contact_id <> '' && $result_address->id <> '') { $cptName++; if ($nameCompare == $lineDoublName->lastname_firstname) { //echo 'doublon
'; } else { //echo 'new doublon
'; $colorNumber = randomColor($colorNumber); $colorToUse = $color[$colorNumber]; } $corporatePeople = ($lineDoublName->is_corporate_person == "Y")? _YES : _NO; $nameCompare = $lineDoublName->lastname_firstname; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; $htmlTabName .= ''; } } //$func->show_array($tabName); $htmlTabName .= '
' . _DUPLICATES_BY_NAME . '
 ' . _ID . '' . _TITLE2 . '' . _LASTNAME . '' . _FIRSTNAME . '' . _SOCIETY . '' . _SOCIETY_SHORT . '' . _IS_CORPORATE_PERSON . '' . _ADDRESS . ' 
' . $lineDoublName->contact_id . '' . $business->get_label_title($lineDoublName->title) . '' . $lineDoublName->lastname . '' . $lineDoublName->firstname . '' . $lineDoublName->society . '' . $lineDoublName->society_short . '' . $corporatePeople . '' . $lineDoublName->address_num; $htmlTabName .= ' ' . $lineDoublName->address_street; $htmlTabName .= ' ' . $lineDoublName->address_town . '
'; if ($cptName == 0) { echo _NO_NAME_DUPLICATES . '
'; } else { echo $htmlTabName; } echo '
';