Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- NewCronSyncProfile', '0 2,14 * * *', '', '', 'set_time_limit(0);\r\nini_set("error_log", 1);\r\nerror_reporting(E_ALL);\r\n$start = microtime(TRUE);\r\n//require_once(\'inc/header.inc.php\');\r\nrequire_once(BX_DIRECTORY_PATH_INC . \'phpmailer.inc.php\');\r\nbx_import(\'BxDolDb\');\r\n$db = new BxDolDb();\r\necho "Comienza el cron <br>";\r\n$inserts = $updates = 0;\r\n$thecore_users = file_get_contents("http://172.17.255.251/thecore/webservices/tlife_sync.php");\r\n\r\n$mail_body = "";\r\n$new_profiles= $update_profiles = $no_new = $no_updates = array();\r\n$vhurs = $netlogins = array();\r\n\r\nif ($thecore_users === FALSE) {\r\n echo "No se pudo leer el web service<br>";\r\n} else {\r\n $thecore_users = json_decode($thecore_users, TRUE);\r\n if ($thecore_users === FALSE) {\r\n echo "No se pudo convertir la data leida del web service a array: $thecore_users<br>";\r\n } else {\r\n echo "Se leyeron " . count($thecore_users) . " desde The Core<br>";\r\n foreach ($thecore_users as $user) {\r\n $processed = NULL;\r\n $vhur = $user["VHUR"];\r\n $network_login = addslashes($user["network_login"]);\r\n\r\n\r\n\r\n\r\n if ((!is_null($vhur) || strlen($vhur) > 0) && $vhur !== "0") {// Actualizar por VHUR\r\n $query_select = "SELECT ID_VHUR,Position_id,SuperUnit_id,Position_id FROM Profiles WHERE ID_VHUR = $vhur";\r\n $profile = $db->getAll($query_select);\r\n\r\n if (count($profile) >= 1) {\r\n $profile = $profile[0];\r\n if (validate_user($user)) {\r\n $query_update = prepared_update($user, $db, 1);\r\n\r\n if ($db->query($query_update)) {\r\n $updates++;\r\n }\r\n $processed = TRUE;\r\n\r\n $last_user = $db->getAll("SELECT * FROM Profiles WHERE ID_VHUR = $vhur");\r\n $last_user = $last_user[0];\r\n if ($last_user["SuperUnit_id"] !== $profile["SuperUnit_id"]) {\r\n $net = $last_user[\'network_login\'];\r\n $oldsu = $last_user[\'SuperUnit_id\'];\r\n $newsu = $profile[\'SuperUnit_id\'];\r\n privacy_group($last_user, $user, $db);\r\n }\r\n array_push($vhurs, $vhur);\r\n } else {\r\n $temp_array = array("network_login" => $user["NickName"], "email" => $user["email"], "vhur" => $user["VHUR"], "position" => $user["position"], "position_id" => $user["position_id"], "unit" => $user["unit"], "unit_id" => $user["unit_id"], "superunit" => $user["superunit"], "superunit_id" => $user["superunit_id"], "domain_id" => $user["domain_id"], "domain" => $user["domain"]);\r\n array_push($no_updates, $temp_array);\r\n $processed = TRUE;\r\n }\r\n }\r\n }\r\n\r\n if (!empty($network_login) && is_null($processed)) {//Actualizar por network login\r\n $query_select = "SELECT ID_VHUR,Position_id,SuperUnit_id,Position_id FROM Profiles WHERE network_login = \'$network_login\'";\r\n $profile2 = $db->getAll($query_select);\r\n if (count($profile2) >= 1) {\r\n //Actualizar toda la informacion menos el network_login\r\n $profile2 = $profile2[0];\r\n if (validate_user($user)) {//is_numeric\r\n $query_update = prepared_update($user, $db, 2);\r\n if ($db->query($query_update)) {\r\n $updates++;\r\n }\r\n\r\n $processed = TRUE;\r\n $last_user = $db->getAll("SELECT * FROM Profiles WHERE network_login = \'$network_login\'");\r\n $last_user = $last_user[0];\r\n\r\n if ($last_user["SuperUnit_id"] !== $profile2["SuperUnit_id"]) {\r\n $net = $last_user[\'network_login\'];\r\n $oldsu = $last_user[\'SuperUnit_id\'];\r\n $newsu = $profile2[\'SuperUnit_id\'];\r\n privacy_group($last_user, $user, $db);\r\n }\r\n\r\n $vhur = $user["VHUR"];\r\n array_push($vhurs, $vhur);\r\n } else {\r\n $temp_array = array("network_login" => $user["NickName"], "email" => $user["email"], "vhur" => $user["VHUR"], "position" => $user["position"], "position_id" => $user["position_id"], "unit" => $user["unit"], "unit_id" => $user["unit_id"], "superunit" => $user["superunit"], "superunit_id" => $user["superunit_id"], "domain_id" => $user["domain_id"], "domain" => $user["domain"]);\r\n array_push($no_updates, $temp_array);\r\n $processed = TRUE;\r\n }\r\n }\r\n }\r\n\r\n if (!$processed || is_null($processed)) {\r\n if (validate_user($user)) {//is_numeric\r\n $vhur = $user["VHUR"];\r\n $network_login = addslashes($user["NickName"]);\r\n $query_insert = prepared_insert($user, $db);\r\n\r\n if ($db->query($query_insert)) {\r\n $inserts++;\r\n }\r\n\r\n $processed = TRUE;\r\n $temp = $db->lastId();\r\n $last_user = $db->getAll("SELECT * FROM Profiles WHERE ID = $temp");\r\n $last_user = $last_user[0];\r\n /* Hacer al usuario amigo de los perfiles administrativos */\r\n $query = "SELECT ID\r\n FROM Profiles AS p\r\n WHERE p.NickName LIKE \'TLifeSupport\'";\r\n\r\n $admin_profiles = $db->getAll($query);\r\n\r\n foreach ($admin_profiles as $profile) {\r\n $id = $profile["ID"];\r\n $pro = $last_user["ID"];\r\n $query_insert = "INSERT INTO `sys_friend_list` (`ID`, `Profile`, `Check`) VALUES ($pro,$id, 1);"; //"INSERT INTO sys_friend_list (ID, Profile,Check) VALUES ($id,$pro,1);";\r\n\r\n $db->query($query_insert);\r\n }\r\n $query_insert = "";\r\n\r\n $date_time = date("Y-m-d H:i:s");\r\n $db->query("INSERT INTO `sys_acl_levels_members` SET `IDMember` = \'{$last_user[\'ID\']}\', `IDLevel` = 5, `DateStarts` = \'$date_time\', `TransactionID` = 0; ");\r\n privacy_group($last_user, $user, $db);\r\n $temp_array = array("network_login" => $user["NickName"], "email" => $user["email"], "vhur" => $user["VHUR"], "position" => $user["position"], "position_id" => $user["position_id"], "unit" => $user["unit"], "unit_id" => $user["unit_id"], "superunit" => $user["superunit"], "superunit_id" => $user["superunit_id"], "domain_id" => $user["domain_id"], "domain" => $user["domain"]);\r\n array_push($new_profiles, $temp_array);\r\n array_push($vhurs, $vhur);\r\n } else {\r\n $temp_array = array("network_login" => $user["NickName"], "email" => $user["email"], "vhur" => $user["VHUR"], "position" => $user["position"], "position_id" => $user["position_id"], "unit" => $user["unit"], "unit_id" => $user["unit_id"], "superunit" => $user["superunit"], "superunit_id" => $user["superunit_id"], "domain_id" => $user["domain_id"], "domain" => $user["domain"]);\r\n array_push($no_new, $temp_array);\r\n $processed = TRUE;\r\n }//else no se pudo insertar el usuario\r\n }\r\n\r\n\r\n if (is_null($user["VHUR"]) || strlen($user["VHUR"]) === 0) {\r\n $vhur = 0;\r\n } else {\r\n $vhur = $user["VHUR"];\r\n }\r\n array_push($vhurs, $vhur);\r\n }//foreach para recorrer los usuarios\r\n $new_disabled = disable_profiles($db, $vhurs, $netlogins);\r\n }//else se pudo convertir el contenido del WS a array\r\n}//else se pudo leer el WS\r\n\r\n$end = microtime(TRUE);\r\n$time = $end - $start;\r\n$hours = (int) ($time / 60 / 60);\r\n$minutes = (int) ($time / 60) - $hours * 60;\r\n$seconds = (int) $time - $hours * 60 * 60 - $minutes * 60;\r\n$no_new_count = count($no_new);\r\n$no_updates_count = count($no_updates);\r\n$time = "$hours horas - $minutes minutos - $seconds segundos.<br>";\r\n$resultados = "Se realizaron $inserts inserciones y $updates actualizaciones.<br> No se pudieron realizar $no_new_count nuevas inserciones y $no_updates_count actulizaciones <br>";\r\n$mail_body .= "La ejecucion tardo: $time $resultados $insert_table";\r\n$body = "<html><body>";\r\n\r\nif ($inserts > 0) {\r\n $insert_table = "<b>New profiles: $inserts</b><br><br>\r\n <table style=\'border: 1px solid #ccc;width: 100%;margin: 0;padding: 0;border-collapse: collapse;border-spacing: 0;\'>\r\n <tr style=\'border: 1px solid #ddd;padding: 5px;\'>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Network login</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Email</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >VHUR</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Position</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Position ID</th> \r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Unit</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Unit ID</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Superunit</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Superunit ID</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Domain</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Domain ID</th>\r\n </tr>";\r\n foreach ($new_profiles as $temp) {\r\n $insert_table .= "<tr style=\'border: 1px solid #ddd;padding: 5px;\'>";\r\n $insert_table .= validate_data($temp[\'network_login\']);\r\n $insert_table .= validate_data($temp[\'email\']);\r\n $insert_table .= validate_data($temp[\'vhur\']);\r\n $insert_table .= validate_data($temp[\'position\']);\r\n $insert_table .= validate_data($temp[\'position_id\']);\r\n $insert_table .= validate_data($temp[\'unit\']);\r\n $insert_table .= validate_data($temp[\'unit_id\']);\r\n $insert_table .= validate_data($temp[\'superunit\']);\r\n $insert_table .= validate_data($temp[\'superunit_id\']);\r\n $insert_table .= validate_data($temp[\'domain\']);\r\n $insert_table .= validate_data($temp[\'domain_id\']);\r\n /* $insert_table .= "<tr>\r\n <td>{$temp[\'network_login\']}</td>\r\n <td>{$temp[\'email\']}</td>\r\n <td>{$temp[\'position\']}</td>\r\n <td>{$temp[\'position_id\']}</td>\r\n <td>{$temp[\'unit\']}</td>\r\n <td>{$temp[\'unit_id\']}</td>\r\n <td>{$temp[\'superunit\']}</td>\r\n <td>{$temp[\'superunit_id\']}</td>\r\n </tr>"; */\r\n }\r\n $insert_table .= "</table><br><br>";\r\n $body .= "$insert_table";\r\n //$mail_body .= "$insert_table";\r\n}\r\n\r\n$new_disabled_count = count($new_disabled);\r\nif ($new_disabled_count > 0) {\r\n\r\n $disabled_table = "<b>Disbale users: {$new_disabled_count}</b><br><br>\r\n <table style=\'border: 1px solid #ccc;width: 100%;margin: 0;padding: 0;border-collapse: collapse;border-spacing: 0;\'>\r\n <tr style=\'border: 1px solid #ddd;padding: 5px;\'>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Network login</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Email</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >VHUR</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Position</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Position Id</th> \r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Unit</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Unit Id</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Superunit</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Superunit Id</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Domain</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Domain ID</th>\r\n </tr>";\r\n foreach ($new_disabled as $temp) {\r\n $disabled_table .= "<tr style=\'border: 1px solid #ddd;padding: 5px;\'>";\r\n $disabled_table .= validate_data($temp[\'network_login\']);\r\n $disabled_table .= validate_data($temp[\'email\']);\r\n $disabled_table .= validate_data($temp[\'vhur\']);\r\n $disabled_table .= validate_data($temp[\'position\']);\r\n $disabled_table .= validate_data($temp[\'position_id\']);\r\n $disabled_table .= validate_data($temp[\'unit\']);\r\n $disabled_table .= validate_data($temp[\'unit_id\']);\r\n $disabled_table .= validate_data($temp[\'superunit\']);\r\n $disabled_table .= validate_data($temp[\'superunit_id\']);\r\n $disabled_table .= validate_data($temp[\'domain\']);\r\n $disabled_table .= validate_data($temp[\'domain_id\']);\r\n }\r\n $disabled_table .= "</table><br><br>";\r\n $body .= "$disabled_table";\r\n //$mail_body .= "$disabled_table";\r\n}\r\n\r\nif ($no_new_count > 0) {\r\n $no_insert_table = "<b>Profiles that cannot be inserted: $no_new_count</b><br><br>\r\n <table style=\'border: 1px solid #ccc;width: 100%;margin: 0;padding: 0;border-collapse: collapse;border-spacing: 0;\'>\r\n <tr style=\'border: 1px solid #ddd;padding: 5px;\'>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Network login</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Email</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >VHUR</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Position</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Position Id</th> \r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Unit</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Unit Id</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Superunit</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Superunit Id</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Domain</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Domain ID</th>\r\n </tr>";\r\n foreach ($no_new as $temp) {\r\n $no_insert_table .= "<tr style=\'border: 1px solid #ddd;padding: 5px;\'>";\r\n $no_insert_table .= validate_data($temp[\'network_login\']);\r\n $no_insert_table .= validate_data($temp[\'email\']);\r\n $no_insert_table .= validate_data($temp[\'vhur\']);\r\n $no_insert_table .= validate_data($temp[\'position\']);\r\n $no_insert_table .= validate_data($temp[\'position_id\']);\r\n $no_insert_table .= validate_data($temp[\'unit\']);\r\n $no_insert_table .= validate_data($temp[\'unit_id\']);\r\n $no_insert_table .= validate_data($temp[\'superunit\']);\r\n $no_insert_table .= validate_data($temp[\'superunit_id\']);\r\n $no_insert_table .= validate_data($temp[\'domain\']);\r\n $no_insert_table .= validate_data($temp[\'domain_id\']);\r\n }\r\n $no_insert_table .= "</table><br><br>";\r\n $body .= "$no_insert_table";\r\n //$mail_body .= "$no_insert_table";\r\n}\r\n\r\nif ($no_updates_count > 0) {\r\n $no_update_table = "<br><br><b>Profiles that cannot be updated: $no_updates_count</b><br><br>\r\n <table style=\'border: 1px solid #ccc;width: 100%;margin: 0;padding: 0;border-collapse: collapse;border-spacing: 0;\'>\r\n <tr style=\'border: 1px solid #ddd;padding: 5px;\'>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Network login</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Email</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >VHUR</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Position</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Position Id</th> \r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Unit</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Unit Id</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Superunit</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\'>Superunit Id</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Domain</th>\r\n <th style = \'padding: 10px;text-align: left;font-size: 14px;letter-spacing: 1px;background-color:#49166D;color:white;\' >Domain ID</th>\r\n </tr>";\r\n foreach ($no_updates as $temp) {\r\n $no_update_table .= "<tr style=\'border: 1px solid #ddd;padding: 5px;\'>";\r\n $no_update_table .= validate_data($temp[\'network_login\']);\r\n $no_update_table .= validate_data($temp[\'email\']);\r\n $no_update_table .= validate_data($temp[\'vhur\']);\r\n $no_update_table .= validate_data($temp[\'position\']);\r\n $no_update_table .= validate_data($temp[\'position_id\']);\r\n $no_update_table .= validate_data($temp[\'unit\']);\r\n $no_update_table .= validate_data($temp[\'unit_id\']);\r\n $no_update_table .= validate_data($temp[\'superunit\']);\r\n $no_update_table .= validate_data($temp[\'superunit_id\']);\r\n $no_update_table .= validate_data($temp[\'domain\']);\r\n $no_update_table .= validate_data($temp[\'domain_id\']);\r\n /* $no_update_table .= "<tr style=\'border: 1px solid #ddd;padding: 5px;\'>\r\n <td style = \'padding:10px;text-align:left;\' >{$temp[\'network_login\']}</td>\r\n <td style = \'padding:10px;text-align:left;\' >{$temp[\'email\']}</td>\r\n <td style = \'padding:10px;text-align:left;\' >{$temp[\'position\']}</td>\r\n <td style = \'padding:10px;text-align:left;\' >{$temp[\'position_id\']}</td>\r\n <td style = \'padding:10px;text-align:left;\' >{$temp[\'unit\']}</td>\r\n <td style = \'padding:10px;text-align:left;\' >{$temp[\'unit_id\']}</td>\r\n <td style = \'padding:10px;text-align:left;\' >{$temp[\'superunit\']}</td>\r\n <td style = \'padding:10px;text-align:left;\' >{$temp[\'superunit_id\']}</td>\r\n </tr>"; */\r\n }\r\n $no_update_table .= "</table><br><br>";\r\n $body .= "$no_update_table";\r\n $mail_body .= "$no_update_table";\r\n}\r\n\r\n$body .= "</body></html>";\r\necho "<br>" . $mail_body;\r\necho "<br>" . $body;\r\n\r\nsend_report_synch($body, "Tlife SV - Profiles synchronization", $db);\r\n\r\nfunction validate_user($user) {\r\n if (!is_null($user["VHUR"]) && strlen($user["VHUR"]) > 0 && !empty($user["NickName"]) && !is_null($user["first"]) && strlen($user["first"]) > 0 && !is_null($user["last"]) && strlen($user["last"]) > 0 && !is_null($user["email"]) && strlen($user["email"]) > 0 && !is_null($user["unit_id"]) && strlen($user["unit_id"]) > 0 && !is_null($user["superunit_id"]) && strlen($user["superunit_id"]) > 0 && !is_null($user["position_id"]) && strlen($user["position_id"]) > 0 && !is_null($user["domain_id"]) && strlen($user["domain_id"]) > 0 && !is_null($user["domain"]) && strlen($user["domain"]) > 0) {\r\n return TRUE;\r\n } else {\r\n return FALSE;\r\n }\r\n}\r\n\r\nfunction prepared_update($user, $db, $type) {\r\n //echo "entra a la funcion <br>";\r\n $data = prepared_data($user, $db);\r\n //echo "Va a entrar al la funcion <br>";\r\n if ($type === 1) {\r\n $query_update = "UPDATE Profiles SET `Email` = \'{$data[\'email\']}\',`Password` = \'{$data[\'password\']}\',`Salt` = \'{$data[\'salt\']}\',`Status` = \'{$data[\'status\']}\',\r\n `Role` = {$data[\'role\']},`Sex` = \'{$data[\'sex\']}\',`Country` = \'{$data[\'country\']}\',`PrivacyDefaultGroup` = {$data[\'privacy_default_group\']},\r\n `FirstName` = \'{$data[\'first_name\']}\', `LastName` = \'{$data[\'last_name\']}\', `Position` = \'{$data[\'position\']}\', `Unit`= \'{$data[\'unit\']}\',\r\n `SuperUnit` = \'{$data[\'superunit\']}\', `Position_id` = {$data[\'position_id\']},`Unit_id` = {$data[\'unit_id\']}, `SuperUnit_id` = {$data[\'superunit_id\']},\r\n `Supervisor` = \'{$data[\'supervisor\']}\', `Active` = {$data[\'active\']},`Full_name`= \'{$data[\'full_name\']}\',`PersonalEmail` = \'{$data[\'personal_email\']}\',\r\n `FullName` = \'{$data[\'full_name\']}\', `network_login` = \'{$data[\'network_login\']}\',`Is_sup` = {$data[\'is_sup\']},`adl_domain` = \'{$data[\'adl_domain\']}\',\r\n `adl_domain_id` = {$data[\'adl_domain_id\']},`hire_date` = \'{$data[\'hire_date\']}\', `DateLastEdit` = NOW(),`NickName` = \'{$data[\'Nickname\']}\',`DateOfBirth` = \'{$data[\'birthday\']}\' WHERE ID_VHUR = {$data[\'vhur\']} AND `NickName`NOT LIKE \'%disabled%\' AND CHAR_LENGTH(`NickName`) > 3 LIMIT 1;";\r\n } elseif ($type === 2) {\r\n $query_update = "UPDATE Profiles SET `Email` = \'{$data[\'email\']}\',`Password` = \'{$data[\'password\']}\',`Salt` = \'{$data[\'salt\']}\',`Status` = \'{$data[\'status\']}\',\r\n `Role` = {$data[\'role\']},`Sex` = \'{$data[\'sex\']}\',`Country` = \'{$data[\'country\']}\',`PrivacyDefaultGroup` = {$data[\'privacy_default_group\']},\r\n `FirstName` = \'{$data[\'first_name\']}\', `LastName` = \'{$data[\'last_name\']}\', `Position` = \'{$data[\'position\']}\', `Unit`= \'{$data[\'unit\']}\',\r\n `SuperUnit` = \'{$data[\'superunit\']}\', `Position_id` = {$data[\'position_id\']},`Unit_id` = {$data[\'unit_id\']}, `SuperUnit_id` = {$data[\'superunit_id\']},\r\n `Supervisor` = \'{$data[\'supervisor\']}\', `Active` = {$data[\'active\']},`Full_name`= \'{$data[\'full_name\']}\',`PersonalEmail` = \'{$data[\'personal_email\']}\',\r\n `FullName` = \'{$data[\'full_name\']}\', ID_VHUR = {$data[\'vhur\']},`Is_sup` = {$data[\'is_sup\']},`adl_domain` = \'{$data[\'adl_domain\']}\',\r\n `adl_domain_id` = {$data[\'adl_domain_id\']},`hire_date` = \'{$data[\'hire_date\']}\',`DateLastEdit` = NOW(),`NickName` = \'{$data[\'Nickname\']}\',`DateOfBirth` = \'{$data[\'birthday\']}\' WHERE `network_login` = \'{$data[\'network_login\']}\' AND `NickName`NOT LIKE \'%disabled%\' AND CHAR_LENGTH(`NickName`) > 3 LIMIT 1;";\r\n }\r\n\r\n return $query_update;\r\n}\r\n\r\nfunction prepared_insert($user, $db) {\r\n $data = prepared_data($user, $db);\r\n $query_insert = "INSERT INTO `Profiles` (`NickName`, `Email`,`Password`, `Salt`, `Status`, `Role`, `Sex`, `Country`, `DateReg`, `EmailNotify`, `LangID`, `PrivacyDefaultGroup`, `FirstName`, `LastName`, `Position`, `Unit`, `SuperUnit`, `ID_VHUR`, `Position_id`, `Unit_id`, `SuperUnit_id`, `Supervisor`, `Active`, `Full_name`, `PersonalEmail`, `FullName`, `network_login`, `Is_sup`, `hire_date`, `adl_domain`, `adl_domain_id`) \r\n VALUES (\'{$data[\'Nickname\']}\',\'{$data[\'email\']}\',\'{$data[\'password\']}\',\'{$data[\'salt\']}\',\'{$data[\'status\']}\',{$data[\'role\']},\'{$data[\'sex\']}\',\'{$data[\'country\']}\',NOW(),\'{$data[\'email_notify\']}\',{$data[\'lang_id\']},{$data[\'privacy_default_group\']},\'{$data[\'first_name\']}\',\'{$data[\'last_name\']}\',\'{$data[\'position\']}\',\'{$data[\'unit\']}\',\'{$data[\'superunit\']}\',{$data[\'vhur\']},{$data[\'position_id\']},{$data[\'unit_id\']},{$data[\'superunit_id\']},\'{$data[\'supervisor\']}\',{$data[\'active\']},\'{$data[\'full_name\']}\',\'{$data[\'personal_email\']}\',\'{$data[\'full_name\']}\',\'{$data[\'network_login\']}\',{$data[\'is_sup\']},\'{$data[\'hire_date\']}\',\'{$data[\'adl_domain\']}\',{$data[\'adl_domain_id\']})";\r\n return $query_insert;\r\n}\r\n\r\nfunction prepared_data($user, $db) {\r\n $user_data = array();\r\n $email = strtolower(addslashes($user["email"]));\r\n $user_data["email"] = $email;\r\n $first_new = ucfirst(strtolower($user["first"]));\r\n $last_new = ucfirst(strtolower($user["last"]));\r\n $first_new = str_replace(\'"\', \'\', $first_new);\r\n $last_new = str_replace(\'"\', \'\', $last_new);\r\n $first_new = str_replace("\'", "", $first_new);\r\n $user_data["first_name"] = $first_new;\r\n $last_new = str_replace("\'", "", $last_new);\r\n $user_data["last_name"] = $last_new;\r\n $password = "eb74a10e0eff3b74f1e10408db817f59c0b8e744";\r\n $user_data["password"] = $password;\r\n $salt = "AWwHT9Pt";\r\n $user_data["salt"] = $salt;\r\n $status = "Active";\r\n $user_data["status"] = $status;\r\n $role = 1;\r\n $user_data["role"] = $role;\r\n $sex = ucfirst(strtolower($user["gender"]));\r\n $user_data["sex"] = $sex;\r\n $country = $db->getParam(\'default_country\');\r\n $user_data["country"] = $country;\r\n $email_notify = 1;\r\n $user_data["email_notify"] = $email_notify;\r\n $lang_id = 1;\r\n $user_data["lang_id"] = $lang_id;\r\n $privacy_default_group = 3;\r\n $user_data["privacy_default_group"] = $privacy_default_group;\r\n $first_name = addslashes(ucfirst(strtolower($first_new)));\r\n $user_data["first_name"] = $first_name;\r\n $last_name = addslashes(ucfirst(strtolower($last_new)));\r\n $user_data["last_name"] = $last_name;\r\n $unit = addslashes($user["unit"]);\r\n $user_data["unit"] = $unit;\r\n $superunit = addslashes($user["superunit"]);\r\n $user_data["superunit"] = $superunit;\r\n $vhur = $user["VHUR"];\r\n $user_data["vhur"] = $vhur;\r\n $position_id = $user["position_id"];\r\n $user_data["position_id"] = $position_id;\r\n $unit_id = $user["unit_id"];\r\n $user_data["unit_id"] = $unit_id;\r\n $superunit_id = $user["superunit_id"];\r\n $user_data["superunit_id"] = $superunit_id;\r\n $active = 1;\r\n $user_data["active"] = $active;\r\n $full_name = $first_name . " " . $last_name;\r\n $user_data["full_name"] = $full_name;\r\n $personal_email = strtolower(addslashes($user["personal_email"]));\r\n $user_data["personal_email"] = $personal_email;\r\n $network_login = addslashes($user["NickName"]);\r\n $user_data["network_login"] = $network_login;\r\n $is_sup = $user["Is_sup"];\r\n $user_data["is_sup"] = $is_sup;\r\n $user_data["birthday"] = $user["birthday"];\r\n\r\n if (strtolower($user["position"]) !== "null") {\r\n $position = $user["position"];\r\n } else {\r\n $position = "";\r\n }\r\n $user_data["position"] = $position;\r\n\r\n if (strtolower($user["hire_date"]) !== "null") {\r\n $hire_date = $user["hire_date"];\r\n } else {\r\n $hire_date = "";\r\n }\r\n $user_data["hire_date"] = $hire_date;\r\n\r\n if (is_numeric($user["position_id"])) {\r\n $position_id = $user["position_id"];\r\n } else {\r\n $position_id = 0;\r\n }\r\n $user_data["position_id"] = $position_id;\r\n\r\n if (!is_null($user["supervisor"]) && strlen($user["supervisor"]) > 0) {\r\n $supervisor = $user["supervisor"];\r\n } else {\r\n $supervisor = 0;\r\n }\r\n\r\n $user_data["supervisor"] = $supervisor;\r\n\r\n $adl_domain = strtoupper($user["domain"]);\r\n switch ($adl_domain) {\r\n case \'SV\':\r\n $adl_domain_id = 3; //$user["ad_domain_id"];\r\n break;\r\n case \'TRTEL\':\r\n $adl_domain_id = 2; //$user["ad_domain_id"];\r\n break;\r\n case \'TI\':\r\n $adl_domain_id = 1; //$user["ad_domain_id"];\r\n break;\r\n default:\r\n break;\r\n }\r\n $user_data["adl_domain"] = $adl_domain;\r\n $user_data["adl_domain_id"] = $adl_domain_id;\r\n\r\n $user_data["Nickname"] = create_nickname2($first_name, $last_name, $email, $vhur, $db);\r\n\r\n return $user_data;\r\n}\r\n\r\nfunction create_nickname2($first, $last, $email, $vhur, $db) {\r\n if (empty($first) || empty($last)) {\r\n $parts = explode("@", $email);\r\n $temp = explode(".", $parts[0]);\r\n preg_replace(\'/[0-9]+/\', \'\', $words);\r\n $new_nickname = ucfirst($temp[0]) . ucfirst($temp[1]);\r\n $nick_name = $new_nickname . "_" . $vhur;\r\n } else {\r\n $first = trim($first);\r\n $last = trim($last);\r\n $first_parts = explode(" ", $first);\r\n $last_parts = explode(" ", $last);\r\n $first_new = $last_new = "";\r\n\r\n foreach ($first_parts as $key) {\r\n $key = ucfirst($key);\r\n $first_new .= $key;\r\n }\r\n\r\n foreach ($last_parts as $key) {\r\n $key = ucfirst($key);\r\n $last_new .= $key;\r\n }\r\n\r\n $nick_name = $first_new . $last_new . "_" . $vhur;\r\n }\r\n\r\n //echo "$nick_name ---- $vhur<br>";\r\n return $nick_name;\r\n}\r\n\r\nfunction create_nickname($first, $last, $email, $db) {\r\n $first_temp = str_replace(" ", "-", $first);\r\n\r\n $first_temp2 = explode("-", $first_temp);\r\n if (is_array($first_temp2)) {\r\n for ($i = 0; $i < count($first_temp2); $i++) {\r\n $first_temp2[$i] = ucfirst(strtolower($first_temp2[$i]));\r\n }\r\n $first_new = "";\r\n $first_new = implode("", $first_temp2);\r\n } else {\r\n $first_new = ucfirst(strtolower($first_temp2));\r\n }\r\n\r\n $last_temp = str_replace(" ", "-", $last);\r\n $last_temp2 = explode("-", $last_temp);\r\n if (is_array($first_temp2)) {\r\n for ($i = 0; $i < count($last_temp2); $i++) {\r\n $last_temp2[$i] = ucfirst(strtolower($last_temp2[$i]));\r\n }\r\n $last_new = "";\r\n $last_new = implode("", $last_temp2);\r\n } else {\r\n $first_new = ucfirst(strtolower($first_temp2));\r\n }\r\n\r\n //echo "$first_new $last_new<br>";\r\n\r\n $nick_name = $first_new . $last_new;\r\n\r\n $exit = TRUE;\r\n $new_nickname = "";\r\n $query = "SELECT ID_VHUR FROM Profiles WHERE NickName LIKE \'$nick_name\'";\r\n $exits = $db->getAll($query);\r\n if (count($exits) === 1) {\r\n $temp_nickname = explode("@", $email);\r\n $temp_nickname2 = explode(".", $temp_nickname[0]);\r\n //echo count($temp_nickname2)."<br>";\r\n for ($i = 0; $i < count($temp_nickname2); $i++) {\r\n $temp_nickname2[$i] = ucfirst(strtolower($temp_nickname2[$i]));\r\n }\r\n $new_nickname = "";\r\n $new_nickname = implode("", $temp_nickname2);\r\n\r\n /* foreach ($temp_nickname2 as $temp_n) {\r\n echo "Nickname: $new_nickname<br>";\r\n $new_nickname .= $new_nickname.ucfirst(strtolower($temp_n));\r\n } */\r\n $prefix = 1;\r\n while ($exit) {\r\n $query = "SELECT ID_VHUR FROM Profiles WHERE NickName LIKE \'$new_nickname\'";\r\n //echo "$query <br>";\r\n $exits = $db->getAll($query);\r\n if (count($exits) >= 1) {\r\n $new_nickname = $new_nickname . $prefix;\r\n $prefix++;\r\n } else {\r\n $exit = FALSE;\r\n }\r\n }\r\n } else {\r\n $new_nickname = $nick_name;\r\n }\r\n return $new_nickname;\r\n}\r\n\r\nfunction privacy_group($last_user, $user, $db) {\r\n $privacy_groups = array();\r\n $query = "SELECT `id` FROM `sys_privacy_groups` WHERE `unit_id_relac` = \'{$last_user[\'SuperUnit_id\']}\'; ";\r\n\r\n $superunit_pg = (int) $db->getOne($query);\r\n\r\n if (!$superunit_pg) {\r\n $last_user[\'SuperUnit\'] = addslashes($last_user[\'SuperUnit\']);\r\n $query = "INSERT INTO `sys_privacy_groups` SET `title` = \'{$last_user[\'SuperUnit\']}\', `owner_id` = 1, `unit_id_relac` = \'{$last_user[\'SuperUnit_id\']}\';";\r\n\r\n $db->query($query);\r\n $superunit_pg = $db->lastId();\r\n }\r\n\r\n $privacy_groups[] = $superunit_pg;\r\n if ($last_user["SuperUnit_id"] !== $last_user["Unit_id"]) {\r\n $superunit_pg = (int) $db->getOne("SELECT `id` FROM `sys_privacy_groups` WHERE `unit_id_relac` = \'{$user[\'unit_id\']}\'; ");\r\n if (!$superunit_pg) {\r\n $last_user[\'SuperUnit\'] = addslashes($last_user[\'Unit\']);\r\n $db->query("INSERT INTO `sys_privacy_groups` SET `title` = \'{$last_user[\'Unit\']}\', `owner_id` = 1, `unit_id_relac` = \'{$last_user[\'Unit_id\']}\'; ");\r\n $superunit_pg = $db->lastId();\r\n }\r\n $privacy_groups[] = $superunit_pg;\r\n }\r\n\r\n $query_delete = "DELETE FROM sys_privacy_members WHERE member_id = \'{$last_user[\'ID\']}\'";\r\n if ($db->query($query_delete)) {\r\n //\r\n }\r\n\r\n foreach ($privacy_groups as $privacy_group) {\r\n $db->query("INSERT IGNORE INTO `sys_privacy_members` SET `group_id` = \'$privacy_group\', `member_id` = \'{$last_user[\'ID\']}\';");\r\n }\r\n}\r\n\r\nfunction validate_data($var) {\r\n $temp = set_null($var);\r\n if ($temp === "N/A") {\r\n $row = "<td style = \'padding:10px;text-align:left;color:red;font-weight: bold;\'>$temp</td>";\r\n } else {\r\n $row = "<td style = \'padding:10px;text-align:left;\'>$temp</td>";\r\n }\r\n return $row;\r\n}\r\n\r\nfunction set_null($var) {\r\n if (is_null($var) || strlen($var) === 0) {\r\n return "N/A";\r\n } else {\r\n return $var;\r\n }\r\n}\r\n\r\nfunction disable_profiles($db, $vhurs, $netlogins) {\r\n $sql_vhurs = "(";\r\n $sql_vhurs .= implode(",", $vhurs);\r\n $sql_vhurs .= ")";\r\n\r\n $sql_netlogins = "(";\r\n $sql_netlogins .= implode(",", $netlogins);\r\n $sql_netlogins .= ")";\r\n\r\n $query = "SELECT pro.network_login AS \'network_login\',pro.Email AS \'email\',pro.ID_VHUR AS \'vhur\',pro.Position AS \'position\',pro.Position_id AS \'position_id\',pro.Unit AS \'unit\',pro.Unit_id AS \'unit_id\',pro.SuperUnit AS \'superunit\',pro.SuperUnit_id AS \'superunit_id\',pro.adl_domain AS \'domain\',pro.adl_domain_id AS \'domain_id\'\r\n FROM Profiles AS pro\r\n WHERE pro.ID_VHUR NOT IN $sql_vhurs AND\r\n pro.Role <> 3 AND pro.Active = 1\r\n ORDER BY pro.ID_VHUR";\r\n\r\n $oldVhrus = array();\r\n $result = $db->getAll($query);\r\n\r\n if (count($result) > 0) {\r\n foreach ($result as $vhur) {\r\n array_push($oldVhrus, $vhur["vhur"]);\r\n }\r\n\r\n $sql_vhurs = "(";\r\n $sql_vhurs .= implode(",", $oldVhrus);\r\n $sql_vhurs .= ")";\r\n\r\n $query_disable = "UPDATE Profiles SET Active = 2, Status = \'Suspended\' WHERE ID_VHUR IN $sql_vhurs";\r\n echo "$query_disable <br><br><br><br>";\r\n $result2 = $db->query($query_disable);\r\n }\r\n return $result; //echo $query;\r\n}\r\n\r\nfunction send_report_synch($body, $email_subject, $db) {\r\n /* Get email params */\r\n $host = $db->getParam("email_setting_host");\r\n $from = $db->getParam("bx_mailread_mail");\r\n $email_password = $db->getParam("email_setting_password");\r\n $email_port = $db->getParam("email_setting_port");\r\n $recipients = $db->getParam("synch_profile_recipients");\r\n /* Send mail */\r\n $mail = new PHPMailer(); // the true param means it will throw exceptions on errors, which we need to catch\r\n $mail->CharSet = \'UTF-8\';\r\n $mail->Host = $host; //"imap.gmail.com"; // SMTP server\r\n //$mail->IsSMTP();\r\n $mail->Username = $from; //"notifications@telusinternational.com"; // SMTP server\r\n $mail->Password = $email_password; //"Tr@nsact3l2013"; // SMTP server\r\n $mail->From = $from; //"notifications@telusinternational.com"; // SMTP server\r\n $mail->Port = $email_port; //25;\r\n //$mail->addAddress("carlos.recinos@telusinternational.com");\r\n $emails = explode(";", $recipients);\r\n foreach ($emails as $temp) {\r\n $mail->addAddress($temp);\r\n }\r\n $mail->SetFrom($from, \'Tlife SV - Profiles synchronization\');\r\n $mail->Subject = $email_subject;\r\n $mail->MsgHTML($body);\r\n\r\n if (!$mail->Send()) {\r\n //echo "Message was not sent";\r\n echo "<div>$email_subject\\n</div> \\n\r\n \\n host: $host from: $from Password: $email_password port: $email_port recipients: $recipients\\n" . $mail->ErrorInfo;\r\n //echo "Mailer Error: " . $mail->ErrorInfo;\r\n //exit;\r\n } else {\r\n echo "<div>$email_subject\\n \r\n </div>\\n host: $host from: $from Password: $email_password port: $email_port recipients: $recipients";\r\n }\r\n}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement