function get_list_all_users_du_resp($resp_login) { $list_users = ""; $sql1 = "SELECT DISTINCT(u_login) FROM conges_users WHERE u_login!='conges' AND u_login!='admin' AND u_login!='{$resp_login}'"; $sql1 = $sql1 . " AND ( u_resp_login='******' "; if ($_SESSION['config']['gestion_groupes']) { $list_users_group = get_list_users_des_groupes_du_resp_sauf_resp($resp_login); if ($list_users_group != "") { $sql1 = $sql1 . " OR u_login IN ({$list_users_group}) "; } } $sql1 = $sql1 . " ) "; $sql1 = $sql1 . " ORDER BY u_nom "; $ReqLog1 = \includes\SQL::query($sql1); while ($resultat1 = $ReqLog1->fetch_array()) { $current_login = $resultat1["u_login"]; if ($list_users == "") { $list_users = "'{$current_login}'"; } else { $list_users = $list_users . ", '{$current_login}'"; } } /************************************/ // gestion des absence des responsables : // on recup la liste des users des resp absents, dont $resp_login est responsable if ($_SESSION['config']['gestion_cas_absence_responsable']) { // recup liste des resp absents, dont $resp_login est responsable $sql_2 = 'SELECT DISTINCT(u_login) FROM conges_users WHERE u_is_resp=\'Y\' AND u_login!="' . \includes\SQL::quote($resp_login) . '" AND u_login!=\'conges\' AND u_login!=\'admin\''; $sql_2 = $sql_2 . " AND ( u_resp_login='******' "; if ($_SESSION['config']['gestion_groupes']) { $list_users_group = get_list_users_des_groupes_du_resp_sauf_resp($resp_login); if ($list_users_group != "") { $sql_2 = $sql_2 . " OR u_login IN ({$list_users_group}) "; } } $sql_2 = $sql_2 . " ) "; $sql_2 = $sql_2 . " ORDER BY u_nom "; $ReqLog_2 = \includes\SQL::query($sql_2); // on va verifier si les resp récupérés sont absents (si oui, c'est $resp_login qui traite leurs users while ($resultat_2 = $ReqLog_2->fetch_array()) { $current_resp = $resultat_2["u_login"]; // verif dans la base si le current_resp est absent : $req = 'SELECT p_num FROM conges_periode WHERE p_login = "******" AND p_etat = \'ok\' AND TO_DAYS(conges_periode.p_date_deb) <= TO_DAYS(NOW()) AND TO_DAYS(conges_periode.p_date_fin) >= TO_DAYS(NOW())'; $ReqLog_3 = \includes\SQL::query($req); // si le current resp est absent : on recup la liste de ses users pour les traiter ..... if ($ReqLog_3->num_rows != 0) { if ($list_users == "") { $list_users = get_list_all_users_du_resp($current_resp); } else { $list_users = $list_users . ", " . get_list_all_users_du_resp($current_resp); } } } } // FIN gestion des absence des responsables : /************************************/ return $list_users; }
function get_list_all_users_du_resp($resp_login, $DEBUG = FALSE) { $list_users = ""; // Modification ML : Remonte toutes les demandes de conges pour un responsable SAUF celles du responsable lui même et des autres responsables du groupe // $sql="SELECT DISTINCT(u_login) FROM conges_users WHERE u_login!='conges' AND u_login!='admin'"; $sql1 = "SELECT DISTINCT(u_login) FROM conges_users WHERE u_login!='conges' AND u_login!='admin' AND u_login!='{$resp_login}'"; // si resp virtuel, on renvoie tout le monde, sinon, seulement ceux dont on est responsable if ($_SESSION['config']['responsable_virtuel'] == FALSE) { $sql1 = $sql1 . " AND ( u_resp_login='******' "; if ($_SESSION['config']['gestion_groupes']) { $list_users_group = get_list_users_des_groupes_du_resp_sauf_resp($resp_login, $DEBUG); if ($list_users_group != "") { $sql1 = $sql1 . " OR u_login IN ({$list_users_group}) "; } } $sql1 = $sql1 . " ) "; } $sql1 = $sql1 . " ORDER BY u_nom "; $ReqLog1 = SQL::query($sql1); while ($resultat1 = $ReqLog1->fetch_array()) { $current_login = $resultat1["u_login"]; if ($list_users == "") { $list_users = "'{$current_login}'"; } else { $list_users = $list_users . ", '{$current_login}'"; } } /************************************/ // gestion des absence des responsables : // on recup la liste des users des resp absents, dont $resp_login est responsable if ($_SESSION['config']['gestion_cas_absence_responsable']) { // recup liste des resp absents, dont $resp_login est responsable $sql_2 = 'SELECT DISTINCT(u_login) FROM conges_users WHERE u_is_resp=\'Y\' AND u_login!=\'' . SQL::quote($resp_login) . '\' AND u_login!=\'conges\' AND u_login!=\'admin\''; // si resp virtuel, on renvoie tout le monde, sinon, seulement ceux dont on est responsable if ($_SESSION['config']['responsable_virtuel'] == FALSE) { $sql_2 = $sql_2 . " AND ( u_resp_login='******' "; if ($_SESSION['config']['gestion_groupes']) { $list_users_group = get_list_users_des_groupes_du_resp_sauf_resp($resp_login, $DEBUG); if ($list_users_group != "") { $sql_2 = $sql_2 . " OR u_login IN ({$list_users_group}) "; } } $sql_2 = $sql_2 . " ) "; } $sql_2 = $sql_2 . " ORDER BY u_nom "; $ReqLog_2 = SQL::query($sql_2); // on va verifier si les resp récupérés sont absents (si oui, c'est $resp_login qui traite leurs users while ($resultat_2 = $ReqLog_2->fetch_array()) { $current_resp = $resultat_2["u_login"]; // verif dans la base si le current_resp est absent : $req = 'SELECT p_num FROM conges_periode WHERE p_login = \'' . SQL::quote($current_resp) . '\' AND p_etat = \'ok\' AND TO_DAYS(conges_periode.p_date_deb) <= TO_DAYS(NOW()) AND TO_DAYS(conges_periode.p_date_fin) >= TO_DAYS(NOW())'; $ReqLog_3 = SQL::query($req); // si le current resp est absent : on recup la liste de ses users pour les traiter ..... if ($ReqLog_3->num_rows != 0) { if ($list_users == "") { $list_users = get_list_all_users_du_resp($current_resp, $DEBUG); } else { $list_users = $list_users . ", " . get_list_all_users_du_resp($current_resp, $DEBUG); } } } } // FIN gestion des absence des responsables : /************************************/ if ($DEBUG) { echo "list_users = {$list_users}<br>\n"; } return $list_users; }