Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}