Advertisement
Guest User

test

a guest
Jul 17th, 2018
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 39.71 KB | None | 0 0
  1. 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