예제 #1
0
 public static function commit_modif_user_groups($choix_user, &$checkbox_user_groups)
 {
     $result_insert = FALSE;
     // on supprime tous les anciens groupes du user, puis on ajoute tous ceux qui sont dans la tableau checkbox (si il n'est pas vide)
     $sql_del = 'DELETE FROM conges_groupe_users WHERE gu_login=\'' . \includes\SQL::quote($choix_user) . '\'';
     $ReqLog_del = \includes\SQL::query($sql_del);
     if ($checkbox_user_groups != "" && count($checkbox_user_groups) != 0) {
         foreach ($checkbox_user_groups as $gid => $value) {
             $sql_insert = "INSERT INTO conges_groupe_users SET gu_gid={$gid}, gu_login='******' ";
             $result_insert = \includes\SQL::query($sql_insert);
         }
     } else {
         $result_insert = TRUE;
     }
     return $result_insert;
 }
예제 #2
0
function soustrait_solde_et_reliquat_user($user_login, $num_current_periode, $user_nb_jours_pris, $type_abs, $date_deb, $demi_jour_deb, $date_fin, $demi_jour_fin)
{
    $VerifDec = verif_saisie_decimal($user_nb_jours_pris);
    //si on autorise les reliquats
    if ($_SESSION['config']['autorise_reliquats_exercice']) {
        //recup du reliquat du user pour ce type d'absence
        $reliquat = get_reliquat_user_conges($user_login, $type_abs);
        //echo "reliquat = $reliquat<br>\n";
        // s'il y a une date limite d'utilisationdes reliquats (au format jj-mm)
        if ($_SESSION['config']['jour_mois_limite_reliquats'] != 0) {
            //si date_fin_conges < date_limite_reliquat => alors on décompte dans reliquats
            if ($date_fin < $_SESSION['config']['date_limite_reliquats']) {
                if ($reliquat > $user_nb_jours_pris) {
                    $new_reliquat = $reliquat - $user_nb_jours_pris;
                } else {
                    $new_reliquat = 0;
                }
            } elseif ($date_deb >= $_SESSION['config']['date_limite_reliquats']) {
                $new_reliquat = $reliquat;
            } else {
                include_once 'fonctions_calcul.php';
                $comment = "calcul reliquat -> date limite";
                $nb_reliquats_a_deduire = compter($user_login, $num_current_periode, $date_deb, $_SESSION['config']['date_limite_reliquats'], $demi_jour_deb, "pm", $comment);
                if ($reliquat > $nb_reliquats_a_deduire) {
                    $new_reliquat = $reliquat - $nb_reliquats_a_deduire;
                } else {
                    $new_reliquat = 0;
                }
            }
        } else {
            if ($reliquat > $user_nb_jours_pris) {
                $new_reliquat = $reliquat - $user_nb_jours_pris;
            } else {
                $new_reliquat = 0;
            }
        }
        $VerifDec = verif_saisie_decimal($user_nb_jours_pris);
        $VerifDec = verif_saisie_decimal($new_reliquat);
        $sql2 = 'UPDATE conges_solde_user SET su_solde=su_solde-' . \includes\SQL::quote($user_nb_jours_pris) . ', su_reliquat=' . \includes\SQL::quote($new_reliquat) . ' WHERE su_login="******"  AND su_abs_id=' . \includes\SQL::quote($type_abs) . ' ';
    } else {
        $VerifDec = verif_saisie_decimal($user_nb_jours_pris);
        $VerifDec = verif_saisie_decimal($new_reliquat);
        $sql2 = 'UPDATE conges_solde_user SET su_solde=su_solde-' . \includes\SQL::quote($user_nb_jours_pris) . ' WHERE su_login=\'' . \includes\SQL::quote($user_login) . '\'  AND su_abs_id=\'' . $type_abs . '\' ';
    }
    $ReqLog2 = \includes\SQL::query($sql2);
}
예제 #3
0
 public static function commit_saisie(&$tab_new_values, $session)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $return = '';
     if ($session == "") {
         $URL = "{$PHP_SELF}";
     } else {
         $URL = "{$PHP_SELF}?session={$session}";
     }
     $timeout = 2;
     // temps d'attente pour rafraichir l'écran après l'update !
     foreach ($tab_new_values as $key => $value) {
         // CONTROLE gestion_conges_exceptionnels
         // si désactivation les conges exceptionnels, on verif s'il y a des conges exceptionnels enregistres ! si oui : changement impossible !
         if ($key == "gestion_conges_exceptionnels" && $value == "FALSE") {
             $sql_abs = "SELECT ta_id, ta_libelle FROM conges_type_absence WHERE ta_type='conges_exceptionnels' ";
             $ReqLog_abs = \includes\SQL::query($sql_abs);
             if ($ReqLog_abs->num_rows != 0) {
                 $return .= '<b>' . _('config_abs_desactive_cong_excep_impossible') . '</b><br>';
                 $value = "TRUE";
                 $timeout = 5;
             }
         }
         // CONTROLE jour_mois_limite_reliquats
         // si modif de jour_mois_limite_reliquats, on verifie le format ( 0 ou jj-mm) , sinon : changement impossible !
         if ($key == "jour_mois_limite_reliquats" && $value != "0") {
             $t = explode("-", $value);
             if (checkdate($t[1], $t[0], date("Y")) == FALSE) {
                 $return .= '<b>' . _('config_jour_mois_limite_reliquats_modif_impossible') . '</b><br>';
                 $sql_date = "SELECT conf_valeur FROM conges_config WHERE conf_nom='jour_mois_limite_reliquats' ";
                 $ReqLog_date = \includes\SQL::query($sql_date);
                 $data = $ReqLog_date->fetch_row();
                 $value = $data[0];
                 $timeout = 5;
             }
         }
         if (preg_match("/_installed\$/", $key) && $value == "1") {
             $plugin = explode("_", $key);
             $plugin = $plugin[0];
             install_plugin($plugin);
         } elseif (preg_match("/_installed\$/", $key) && $value == "0") {
             $plugin = explode("_", $key);
             $plugin = $plugin[0];
             uninstall_plugin($plugin);
         }
         if (preg_match("/_activated\$/", $key) && $value == "1") {
             $plugin = explode("_", $key);
             $plugin = $plugin[0];
             activate_plugin($plugin);
         } elseif (preg_match("/_activated\$/", $key) && $value == "0") {
             $plugin = explode("_", $key);
             $plugin = $plugin[0];
             disable_plugin($plugin);
         }
         // Mise à jour
         $sql2 = 'UPDATE conges_config SET conf_valeur = \'' . addslashes($value) . '\' WHERE conf_nom ="' . \includes\SQL::quote($key) . '" ';
         $ReqLog2 = \includes\SQL::query($sql2);
     }
     $_SESSION['config'] = init_config_tab();
     // on re-initialise le tableau des variables de config
     // enregistrement dans les logs
     $comment_log = "nouvelle configuration de php_conges ";
     log_action(0, "", "", $comment_log);
     $return .= '<span class="messages">' . _('form_modif_ok') . '</span><br>';
     $return .= '<META HTTP-EQUIV=REFRESH CONTENT="' . $timeout . '; URL=' . $URL . '">';
     return $return;
 }
예제 #4
0
파일: index.php 프로젝트: TexGG/Libertempo
                    $session_password = "";
                    $erreur = "login_passwd_incorrect";
                    // appel du formulaire d'intentification (login/password)
                    session_saisie_user_password($erreur, $session_username, $session_password);
                    exit;
                } else {
                    // on initialise la nouvelle session
                    session_create($session_username);
                }
            }
        }
    }
}
/*****************************************************************/
if (isset($_SESSION['userlogin'])) {
    $request = "SELECT u_nom, u_passwd, u_prenom, u_is_resp FROM conges_users where u_login = '******'userlogin']) . "' ";
    $rs = \includes\SQL::query($request);
    if ($rs->num_rows != 1) {
        redirect(ROOT_PATH . 'index.php');
    } else {
        $session = session_id();
        $row = $rs->fetch_array();
        $NOM = $row["u_nom"];
        $PRENOM = $row["u_prenom"];
        $is_resp = $row["u_is_resp"];
        // si le login est celui d'un responsable ET on est pas en mode "responsable virtuel"
        // OU on est en mode "responsable virtuel" avec login= celui du resp virtuel
        $return_url = getpost_variable('return_url');
        if (!empty($return_url)) {
            if (strpos($return_url, '?')) {
                redirect(ROOT_PATH . $return_url . '&session=' . $session);
예제 #5
0
 public static function traite_all_demande_en_cours($tab_bt_radio, $tab_text_refus)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $session = session_id();
     $return = '';
     while ($elem_tableau = each($tab_bt_radio)) {
         $champs = explode("--", $elem_tableau['value']);
         $user_login = $champs[0];
         $user_nb_jours_pris = $champs[1];
         $type_abs = $champs[2];
         // id du type de conges demandé
         $date_deb = $champs[3];
         $demi_jour_deb = $champs[4];
         $date_fin = $champs[5];
         $demi_jour_fin = $champs[6];
         $reponse = $champs[7];
         $numero = $elem_tableau['key'];
         $numero_int = (int) $numero;
         $return .= $numero . '---' . $user_login . '---' . $user_nb_jours_pris . '---' . $reponse . '<br>';
         /* Modification de la table conges_periode */
         if (strcmp($reponse, "VALID") == 0) {
             /* UPDATE table "conges_periode" */
             $sql1 = 'UPDATE conges_periode SET p_etat=\'valid\', p_date_traitement=NOW() WHERE p_num="' . \includes\SQL::quote($numero_int) . '" AND p_etat=\'demande\';';
             /* On valide l'UPDATE dans la table "conges_periode" ! */
             $ReqLog1 = \includes\SQL::query($sql1);
             if ($ReqLog1 && \includes\SQL::getVar('affected_rows')) {
                 // Log de l'action
                 log_action($numero_int, "valid", $user_login, "traite demande {$numero} ({$user_login}) ({$user_nb_jours_pris} jours) : {$reponse}");
                 //envoi d'un mail d'alerte au user et au responsable du resp (pour double validation) (si demandé dans config de libertempo)
                 if ($_SESSION['config']['mail_prem_valid_conges_alerte_user']) {
                     alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "valid_conges");
                 }
             }
         }
         if (strcmp($reponse, "OK") == 0) {
             /* UPDATE table "conges_periode" */
             $sql1 = 'UPDATE conges_periode SET p_etat="ok", p_date_traitement=NOW() WHERE p_num="' . \includes\SQL::quote($numero_int) . '" AND ( p_etat=\'valid\' OR p_etat=\'demande\' );';
             /* On valide l'UPDATE dans la table "conges_periode" ! */
             $ReqLog1 = \includes\SQL::query($sql1);
             if ($ReqLog1 && \includes\SQL::getVar('affected_rows')) {
                 // Log de l'action
                 log_action($numero_int, "ok", $user_login, "traite demande {$numero} ({$user_login}) ({$user_nb_jours_pris} jours) : {$reponse}");
                 /* UPDATE table "conges_solde_user" (jours restants) */
                 soustrait_solde_et_reliquat_user($user_login, $numero_int, $user_nb_jours_pris, $type_abs, $date_deb, $demi_jour_deb, $date_fin, $demi_jour_fin);
                 //envoi d'un mail d'alerte au user (si demandé dans config de php_conges)
                 if ($_SESSION['config']['mail_valid_conges_alerte_user']) {
                     alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "accept_conges");
                 }
             }
         } elseif (strcmp($reponse, "not_OK") == 0) {
             // recup du motif de refus
             $motif_refus = addslashes($tab_text_refus[$numero_int]);
             $sql1 = 'UPDATE conges_periode SET p_etat=\'refus\', p_motif_refus=\'' . $motif_refus . '\', p_date_traitement=NOW() WHERE p_num="' . \includes\SQL::quote($numero_int) . '" AND ( p_etat=\'valid\' OR p_etat=\'demande\' );';
             /* On valide l'UPDATE dans la table ! */
             $ReqLog1 = \includes\SQL::query($sql1);
             if ($ReqLog1 && \includes\SQL::getVar('affected_rows')) {
                 // Log de l'action
                 log_action($numero_int, "refus", $user_login, "traite demande {$numero} ({$user_login}) ({$user_nb_jours_pris} jours) : refus");
                 //envoi d'un mail d'alerte au user (si demandé dans config de php_conges)
                 if ($_SESSION['config']['mail_refus_conges_alerte_user']) {
                     alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "refus_conges");
                 }
             }
         }
     }
     $return .= _('form_modif_ok') . '<br><br>';
     /* APPEL D'UNE AUTRE PAGE au bout d'une tempo de 2secondes */
     $return .= '<META HTTP-EQUIV=REFRESH CONTENT="2; URL=' . $PHP_SELF . '?session=' . $session . '&onglet=traitement_demandes">';
     return $return;
 }
예제 #6
0
function recup_tableau_des_users_a_afficher($select_groupe)
{
    // si acces sans authentification est permis : alors droit de voir tout le monde
    // sinon, on verifie si le user a le droite de voir tout le monde
    if ($_SESSION['config']['consult_calendrier_sans_auth'] && !isset($_SESSION['userlogin'])) {
        //si gestion des groupes et un groupe a ete selectionne
        if ($_SESSION['config']['gestion_groupes'] && $select_groupe != 0) {
            $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
            $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' ";
            //recup de la liste des users des groupes dont le user est membre
            $list_users = get_list_users_du_groupe($select_groupe);
            if ($list_users != "") {
                //si la liste n'est pas vide ( serait le cas si groupe vide)
                $sql1 = $sql1 . " AND u_login IN ({$list_users}) ORDER BY u_nom, u_prenom ";
            }
        } else {
            $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
            $sql1 = $sql1 . " WHERE u_login!='conges'  AND u_login!='admin' ORDER BY u_nom, u_prenom";
        }
    } else {
        //construction de la requete sql pour recupérer les users à afficher :
        //si le user a le droit de voir tout le monde
        $user_see_all_in_calendrier = get_user_see_all($_SESSION['userlogin']);
        if ($user_see_all_in_calendrier) {
            //si gestion des groupes et un groupe a ete selectionne
            if ($_SESSION['config']['gestion_groupes'] && $select_groupe != 0) {
                $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
                $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' ";
                //recup de la liste des users des groupes dont le user est membre
                $list_users = get_list_users_du_groupe($select_groupe);
                if ($list_users != "") {
                    //si la liste n'est pas vide ( serait le cas si groupe vide)
                    $sql1 = $sql1 . " AND u_login IN ({$list_users}) ";
                }
                $sql1 = $sql1 . " ORDER BY u_nom, u_prenom";
            } else {
                $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
                $sql1 = $sql1 . " WHERE u_login!='conges'  AND u_login!='admin' ORDER BY u_nom, u_prenom";
            }
        } else {
            //si gestion des groupes et un groupe a ete selectionne
            if ($_SESSION['config']['gestion_groupes'] && $select_groupe != 0) {
                $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
                $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' ";
                $sql1 = $sql1 . ' AND ( u_login = \'' . \includes\SQL::quote($_SESSION['userlogin']) . '\' ';
                //recup de la liste des users des groupes dont le user est membre
                $list_users = get_list_users_du_groupe($select_groupe);
                if ($list_users != "") {
                    //si la liste n'est pas vide ( serait le cas si groupe vide)
                    $sql1 = $sql1 . " OR u_login IN ({$list_users}) ";
                }
                $sql1 = $sql1 . " ) ";
                $sql1 = $sql1 . " ORDER BY u_nom, u_prenom";
            } else {
                if (!is_resp($_SESSION['userlogin'])) {
                    $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
                    $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' ";
                    //si affichage par groupe : on affiche les membres des groupes du user ($_SESSION['userlogin'])
                    if ($_SESSION['config']['gestion_groupes'] && $_SESSION['config']['affiche_groupe_in_calendrier']) {
                        //recup de la liste des users des groupes dont le user est membre
                        $list_users = get_list_users_des_groupes_du_user($_SESSION['userlogin']);
                        if ($list_users != "") {
                            //si la liste n'est pas vide ( serait le cas si n'est membre d'aucun groupe)
                            $sql1 = $sql1 . " AND u_login IN ({$list_users}) ";
                        }
                    }
                    $sql1 = $sql1 . " ORDER BY u_nom, u_prenom";
                } else {
                    $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
                    $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' ";
                    if ($_SESSION['userlogin'] != "conges") {
                        $sql1 = $sql1 . ' AND ( u_login = \'' . \includes\SQL::quote($_SESSION['userlogin']) . '\' ';
                        //si affichage par groupe : on affiche les membres des groupes du user ($_SESSION['userlogin'])
                        if ($_SESSION['config']['gestion_groupes'] && $_SESSION['config']['affiche_groupe_in_calendrier']) {
                            //recup de la liste des users des groupes dont le user est membre
                            $list_users = get_list_users_des_groupes_du_user($_SESSION['userlogin']);
                            if ($list_users != "") {
                                //si la liste n'est pas vide ( serait le cas si n'est membre d'aucun groupe)
                                $sql1 = $sql1 . " OR u_login IN ({$list_users}) ";
                            }
                        }
                        //recup de la liste des users dont le user est responsable
                        $list_users_2 = get_list_all_users_du_resp($_SESSION['userlogin']);
                        if ($list_users_2 != "") {
                            //si la liste n'est pas vide ( serait le cas si n'est responsable d'aucun groupe)
                            $sql1 = $sql1 . " OR u_login IN ({$list_users_2}) ";
                        }
                        if ($_SESSION['config']['double_validation_conges']) {
                            $list_groupes_3 = get_list_login_du_grand_resp($_SESSION['userlogin']);
                            if (count($list_groupes_3) > 0) {
                                $list_groupes_3 = array_map("SQL::quote", $list_groupes_3);
                                $list_groupes_3 = '\'' . implode('\', \'', $list_groupes_3) . '\'';
                                $sql1 = $sql1 . " OR u_login IN ( {$list_groupes_3} ) ";
                            }
                        }
                        $sql1 = $sql1 . " ) ";
                    }
                    $sql1 = $sql1 . " ORDER BY u_nom, u_prenom";
                }
            }
        }
    }
    $ReqLog = \includes\SQL::query($sql1);
    $tab_all_users = array();
    while ($resultat = $ReqLog->fetch_array()) {
        $tab_user = array();
        $tab_user['nom'] = $resultat["u_nom"];
        $tab_user['prenom'] = $resultat["u_prenom"];
        $tab_user['quotite'] = $resultat["u_quotite"];
        $sql_login = $resultat["u_login"];
        $tab_all_users[$sql_login] = $tab_user;
    }
    return $tab_all_users;
}
예제 #7
0
 public static function commit_annul_fermeture($fermeture_id, $groupe_id)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $session = session_id();
     $return = '';
     /*****************************/
     // on construit le tableau des users affectés par les fermetures saisies :
     if ($groupe_id == 0) {
         // fermeture pour tous !
         $list_users = get_list_all_users();
     } else {
         $list_users = get_list_users_du_groupe($groupe_id);
     }
     $tab_users = explode(",", $list_users);
     /***********************************************/
     /** suppression des jours de fermetures   **/
     // on suprimme les dates de cette fermeture dans conges_jours_fermeture
     $result = \hr\Fonctions::delete_year_fermeture($fermeture_id, $groupe_id);
     // on va traiter user par user pour annuler sa periode de conges correspondant et lui re-crediter son solde
     foreach ($tab_users as $current_login) {
         $current_login = trim($current_login);
         // on enleve les quotes qui ont été ajoutées lors de la creation de la liste
         $current_login = trim($current_login, "\\'");
         // on recupère les infos de la periode ....
         $sql_credit = 'SELECT p_num, p_nb_jours, p_type FROM conges_periode WHERE p_login="******" AND p_fermeture_id="' . \includes\SQL::quote($fermeture_id) . '" AND p_etat=\'ok\'';
         $result_credit = \includes\SQL::query($sql_credit);
         $row_credit = $result_credit->fetch_array();
         $sql_num_periode = $row_credit['p_num'];
         $sql_nb_jours_a_crediter = $row_credit['p_nb_jours'];
         $sql_type_abs = $row_credit['p_type'];
         // on met à jour la table conges_periode .
         $etat = "annul";
         $sql1 = 'UPDATE conges_periode SET p_etat = "' . \includes\SQL::quote($etat) . '" WHERE p_num=' . \includes\SQL::quote($sql_num_periode) . '" AND p_etat=\'ok\';';
         $ReqLog = \includes\SQL::query($sql1);
         if ($ReqLog && \includes\SQL::getVar('affected_rows')) {
             // mise à jour du solde de jours de conges pour l'utilisateur $current_login
             if ($sql_nb_jours_a_crediter != 0) {
                 $sql1 = 'UPDATE conges_solde_user SET su_solde = su_solde + ' . \includes\SQL::quote($sql_nb_jours_a_crediter) . ' WHERE su_login="******" AND su_abs_id = ' . \includes\SQL::quote($sql_type_abs);
                 $ReqLog = \includes\SQL::query($sql1);
             }
         }
     }
     $return .= '<div class="wrapper">';
     if ($result) {
         $return .= '<br>' . _('form_modif_ok') . '<br><br>';
     } else {
         $return .= '<br>' . _('form_modif_not_ok') . ' !<br><br>';
     }
     // on enregistre cette action dan les logs
     if ($groupe_id == 0) {
         // fermeture pour tous !
         $comment_log = "annulation fermeture {$fermeture_id} (pour tous) ";
     } else {
         $comment_log = "annulation fermeture {$fermeture_id} (pour le groupe {$groupe_id})";
     }
     log_action(0, "", "", $comment_log);
     $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '" method="POST">';
     $return .= '<input class="btn btn-success" type="submit" value="' . _('form_ok') . '">';
     $return .= '</form>';
     $return .= '</div>';
     return $return;
 }
예제 #8
0
 /**
  * Encapsule le comportement du module de l'historique des autres absences
  *
  * @param string $onglet Nom de l'onglet à afficher
  * @param string $session  Clé de session
  * @param string $PHP_SELF
  *
  * @return void
  * @access public
  * @static
  */
 public static function historiqueAutresAbsencesModule($onglet, $session, $PHP_SELF)
 {
     $return = '';
     if ($_SESSION['config']['where_to_find_user_email'] == "ldap") {
         include_once CONFIG_PATH . 'config_ldap.php';
     }
     $tri_date = getpost_variable('tri_date', "ascendant");
     $year_affichage = getpost_variable('year_affichage', date("Y"));
     $return = '<h1>' . _('user_historique_abs') . ' :</h1>';
     // affichage de l'année et des boutons de défilement
     $year_affichage_prec = $year_affichage - 1;
     $year_affichage_suiv = $year_affichage + 1;
     $return .= '<b>';
     $return .= '<a href="' . $PHP_SELF . '?session=' . $session . '&onglet=historique_autres_absences&year_affichage=' . $year_affichage_prec . '"><<</a>';
     $return .= '&nbsp&nbsp&nbsp ' . $year_affichage . '&nbsp&nbsp&nbsp';
     $return .= '<a href="' . $PHP_SELF . '?session=' . $session . '&onglet=historique_autres_absences&year_affichage=' . $year_affichage_suiv . '">>></a>';
     $return .= '</b><br><br>';
     // Récupération des informations
     $sql4 = 'SELECT p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_etat, p_motif_refus, p_date_demande, p_date_traitement, p_num, ta_libelle
         FROM conges_periode as a, conges_type_absence as b
         WHERE a.p_login = "******"
         AND (a.p_type=b.ta_id)
         AND (b.ta_type=\'absences\')
         AND (p_date_deb LIKE \'' . intval($year_affichage) . '%\' OR p_date_fin LIKE \'' . intval($year_affichage) . '%\') ';
     if ($tri_date == "descendant") {
         $sql4 = $sql4 . " ORDER BY p_date_deb DESC ";
     } else {
         $sql4 = $sql4 . " ORDER BY p_date_deb ASC ";
     }
     $ReqLog4 = \includes\SQL::query($sql4);
     $count4 = $ReqLog4->num_rows;
     if ($count4 == 0) {
         $return .= '<b>' . _('user_abs_aucune_abs') . '</b><br>';
     } else {
         // AFFICHAGE TABLEAU
         $return .= '<table cellpadding="2"  class="tablo" width="80%">';
         $return .= '<thead>';
         $return .= '<tr>';
         $return .= '<td>';
         $return .= '<a href="' . $PHP_SELF . '?session=' . $session . '&onglet=' . $onglet . '&tri_date=descendant"><img src="' . TEMPLATE_PATH . 'img/1downarrow-16x16.png" width="16" height="16" border="0" title="trier"></a>';
         $return .= _('divers_debut_maj_1');
         $return .= '<a href="' . $PHP_SELF . '?session=' . $session . '&onglet=' . $onglet . '&tri_date=ascendant"><img src="' . TEMPLATE_PATH . 'img/1uparrow-16x16.png" width="16" height="16" border="0" title="trier"></a>';
         $return .= '</td>';
         $return .= '<td>' . _('divers_fin_maj_1') . '</td>';
         $return .= '<td>' . _('user_abs_type') . '</td>';
         $return .= '<td>' . _('divers_nb_jours_maj_1') . '</td>';
         $return .= '<td>' . _('divers_comment_maj_1') . '</td>';
         $return .= '<td>' . _('divers_etat_maj_1') . '</td>';
         $return .= '<td></td><td></td>';
         if ($_SESSION['config']['affiche_date_traitement']) {
             $return .= '<td>' . _('divers_date_traitement') . '</td>';
         }
         $return .= '</tr>';
         $return .= '</thead>';
         $return .= '<tbody>';
         $i = true;
         while ($resultat4 = $ReqLog4->fetch_array()) {
             $sql_login = $resultat4["p_login"];
             $sql_date_deb = eng_date_to_fr($resultat4["p_date_deb"]);
             $sql_p_demi_jour_deb = $resultat4["p_demi_jour_deb"];
             if ($sql_p_demi_jour_deb == "am") {
                 $demi_j_deb = "mat";
             } else {
                 $demi_j_deb = "aprm";
             }
             $sql_date_fin = eng_date_to_fr($resultat4["p_date_fin"]);
             $sql_p_demi_jour_fin = $resultat4["p_demi_jour_fin"];
             if ($sql_p_demi_jour_fin == "am") {
                 $demi_j_fin = "mat";
             } else {
                 $demi_j_fin = "aprm";
             }
             $sql_nb_jours = affiche_decimal($resultat4["p_nb_jours"]);
             $sql_commentaire = $resultat4["p_commentaire"];
             //$sql_type=$resultat4["p_type"];
             $sql_type = $resultat4["ta_libelle"];
             $sql_etat = $resultat4["p_etat"];
             $sql_motif_refus = $resultat4["p_motif_refus"];
             $sql_date_demande = $resultat4["p_date_demande"];
             $sql_date_traitement = $resultat4["p_date_traitement"];
             $sql_num = $resultat4["p_num"];
             // si le user a le droit de saisir lui meme ses absences et qu'elle n'est pas deja annulee, on propose de modifier ou de supprimer
             if ($sql_etat != "annul" && $_SESSION['config']['user_saisie_mission']) {
                 $user_modif_mission = "<a href=\"user_index.php?session={$session}&p_num={$sql_num}&onglet=modif_demande\">" . _('form_modif') . "</a>";
                 $user_suppr_mission = "<a href=\"user_index.php?session={$session}&p_num={$sql_num}&onglet=suppr_demande\">" . _('form_supprim') . "</a>";
             } else {
                 $user_modif_mission = " - ";
                 $user_suppr_mission = " - ";
             }
             $return .= '<tr class="' . ($i ? 'i' : 'p') . '">';
             $return .= '<td class="histo">' . schars($sql_date_deb) . ' _ ' . schars($demi_j_deb) . '</td>';
             $return .= '<td class="histo">' . schars($sql_date_fin) . ' _ ' . schars($demi_j_fin) . '</td>';
             $return .= '<td class="histo">' . schars($sql_type) . '</td>';
             $return .= '<td class="histo">' . affiche_decimal($sql_nb_jours) . '</td>';
             $return .= '<td class="histo">' . schars($sql_commentaire) . '</td>';
             if ($sql_etat == "refus") {
                 if ($sql_motif_refus == "") {
                     $sql_motif_refus = _('divers_inconnu');
                 }
                 $return .= '<br><i>".' . schars(_('divers_motif_refus')) . '." : ' . schars($sql_motif_refus) . '</i>';
             } elseif ($sql_etat == "annul") {
                 if ($sql_motif_refus == "") {
                     $sql_motif_refus = _('divers_inconnu');
                 }
                 $return .= '<br><i>".' . schars(_('divers_motif_annul')) . '." : ' . schars($sql_motif_refus) . '</i>';
             }
             $return .= '</td>';
             $return .= '<td>';
             if ($sql_etat == "refus") {
                 $return .= _('divers_refuse');
             } elseif ($sql_etat == "annul") {
                 $return .= _('divers_annule');
             } else {
                 $return .= schars($sql_etat);
             }
             $return .= '</td>';
             $return .= '<td class="histo">' . $user_modif_mission . '</td>';
             $return .= '<td class="histo">' . $user_suppr_mission . '</td>' . "\n";
             if ($_SESSION['config']['affiche_date_traitement']) {
                 $return .= '<td class="histo-left">' . schars(_('divers_demande')) . ' : ' . schars($sql_date_demande) . '<br>' . schars(_('divers_traitement')) . ' : ' . schars($sql_date_traitement) . '</td>';
             }
             $return .= '</tr>';
             $i = !$i;
         }
         $return .= '</tbody>';
         $return .= '</table>';
     }
     $return .= '<br><br>';
     return $return;
 }
예제 #9
0
function authentification_passwd_conges_CAS()
{
    // import de la librairie CAS
    include LIBRARY_PATH . 'CAS/CAS.php';
    // import des paramètres du serveur CAS
    $config_CAS_host = $_SESSION['config']['CAS_host'];
    $config_CAS_portNumber = $_SESSION['config']['CAS_portNumber'];
    $config_CAS_URI = $_SESSION['config']['CAS_URI'];
    $config_CAS_CACERT = $_SESSION['config']['CAS_CACERT'];
    global $connexionCAS;
    global $logoutCas;
    phpCAS::setDebug();
    // initialisation phpCAS
    if ($connexionCAS != "active") {
        $CASCnx = phpCAS::client(CAS_VERSION_2_0, $config_CAS_host, $config_CAS_portNumber, $config_CAS_URI);
        $connexionCAS = "active";
    }
    if ($logoutCas == 1) {
        phpCAS::logout();
    }
    // Vérification SSL
    if (isset($config_CAS_CACERT)) {
        phpCAS::setCasServerCACert($config_CAS_CACERT);
    } else {
        phpCAS::setNoCasServerValidation();
    }
    // authentificationCAS (redirection vers la page d'authentification de CAS)
    phpCAS::forceAuthentication();
    $usernameCAS = phpCAS::getUser();
    //On nettoie la session créée par phpCAS
    session_destroy();
    // On créé la session gérée par Libertempo
    session_create($usernameCAS);
    //ON VERIFIE ICI QUE L'UTILISATEUR EST DEJA ENREGISTRE SOUS DBCONGES
    $req_conges = 'SELECT u_login FROM conges_users WHERE u_login=\'' . \includes\SQL::quote($usernameCAS) . '\'';
    $res_conges = \includes\SQL::query($req_conges);
    $num_row_conges = $res_conges->num_rows;
    if ($num_row_conges != 0) {
        return $usernameCAS;
    } else {
        return '';
    }
}
예제 #10
0
 public static function recup_tableau_periodes($mois, $first_jour, $year, $tab_logins = false)
 {
     $tab_calendrier = array();
     //tableau indexé dont la clé est la date sous forme yyyy-mm-dd
     //il contient pour chaque clé : un tableau ($tab_jour) qui contient lui même des
     // tableaux indexés contenant les infos des periode de conges dont ce jour fait partie
     // ($tab_periode)
     $timestamp_deb = mktime(0, 0, 0, $mois, $first_jour, $year);
     $timestamp_fin = mktime(0, 0, 0, $mois + 1, $first_jour, $year);
     $date_deb = date("Y-m-d", $timestamp_deb);
     $date_fin = date("Y-m-d", $timestamp_fin);
     $sql = 'SELECT  p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_type, p_etat, p_fermeture_id, p_commentaire
                 FROM conges_periode
                 WHERE ( p_etat=\'ok\' OR  p_etat=\'demande\' OR  p_etat=\'valid\')
                     AND (p_date_fin >= "' . \includes\SQL::quote($date_deb) . '" AND p_date_deb <= "' . \includes\SQL::quote($date_fin) . '")
                     ' . ($tab_logins !== false ? 'AND p_login IN (\'' . implode('\', \'', $tab_logins) . '\')' : '') . '
                 ORDER BY p_date_deb;';
     $result = \includes\SQL::query($sql);
     while ($l = $result->fetch_array()) {
         // on ne stoque les "demandes" que pour le user qui consulte (il ne voit pas celles des autres !)(suivant l'option de config)
         if ($l['p_etat'] != 'demande' || $_SESSION['config']['affiche_demandes_dans_calendrier']) {
             $tab_jour = $l;
         } elseif (isset($_SESSION['userlogin']) && $l['p_login'] == $_SESSION['userlogin']) {
             $tab_jour = $l;
         } else {
             continue;
         }
         $p_timestamp_deb = \DateTime::createFromFormat('Y-m-d', $l['p_date_deb']);
         $p_timestamp_fin = \DateTime::createFromFormat('Y-m-d', $l['p_date_fin']);
         $deb = $timestamp_deb < $p_timestamp_deb->getTimestamp() ? $p_timestamp_deb : new \DateTime('@' . $timestamp_deb);
         $fin = $timestamp_fin > $p_timestamp_fin->getTimestamp() ? $p_timestamp_fin : new \DateTime('@' . $timestamp_fin);
         $tmp = $deb;
         while ($tmp <= $fin) {
             $date_j = date('Y-m-d', $tmp->getTimestamp());
             if (!isset($tab_calendrier[$date_j]) || !is_array($tab_calendrier[$date_j])) {
                 $tab_calendrier[$date_j] = array();
             }
             $tab_calendrier[$date_j][] = $tab_jour;
             $tmp->add(new \DateInterval('P1D'));
         }
     }
     return $tab_calendrier;
 }
예제 #11
0
 public static function export_ical($user_login)
 {
     $good_date_debut = date("Y-m-d", strtotime("-1 year"));
     $good_date_fin = date("Y-m-d", strtotime('+1 year'));
     /********************************/
     // initialisation de variables communes a ttes les periodes
     // recup des infos du user
     $tab_infos_user = recup_infos_du_user($user_login, "");
     $tab_types_abs = recup_tableau_tout_types_abs();
     /********************************/
     // affichage dans un fichier non html !
     header("content-type: application/ics");
     header("Content-disposition: filename=libertempo.ics");
     echo "BEGIN:VCALENDAR\r\n" . "PRODID:-//Libertempo \r\n" . "VERSION:2.0\r\n\r\n";
     // SELECT des periodes à exporter .....
     // on prend toutes les periodes de conges qui chevauchent la periode donnée par les dates demandées
     $sql_periodes = "SELECT p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_commentaire, p_type, p_etat, p_date_demande  " . 'FROM conges_periode WHERE p_login=\'' . \includes\SQL::quote($user_login) . '\' AND ((p_date_deb>=\'' . \includes\SQL::quote($good_date_debut) . '\' AND  p_date_deb<=\'' . \includes\SQL::quote($good_date_fin) . '\') OR (p_date_fin>=\'' . \includes\SQL::quote($good_date_debut) . '\' AND p_date_fin<=\'' . \includes\SQL::quote($good_date_fin) . '\'))';
     $res_periodes = \includes\SQL::query($sql_periodes);
     if ($num_periodes = $res_periodes->num_rows != 0) {
         while ($result_periodes = $res_periodes->fetch_array()) {
             $sql_date_debut = $result_periodes['p_date_deb'];
             $sql_demi_jour_deb = $result_periodes['p_demi_jour_deb'];
             $sql_date_fin = $result_periodes['p_date_fin'];
             $sql_demi_jour_fin = $result_periodes['p_demi_jour_fin'];
             $sql_type = $result_periodes['p_type'];
             $sql_etat = $result_periodes['p_etat'];
             $sql_dateh_demande = $result_periodes['p_date_demande'];
             // PB : les fichiers ical et vcal doivent être encodés en UTF-8, or php ne gère pas l'utf-8
             // on remplace donc les caractères spéciaux de la chaine de caractères
             $sql_comment = \export\Fonctions::remplace_accents($result_periodes['p_commentaire']);
             // même problème
             $type_abs = \export\Fonctions::remplace_accents($tab_types_abs[$sql_type]['libelle']);
             //conversion format date
             $replaceThis = array('-' => '', ':' => '', ' ' => 'T');
             $sql_date_dem = str_replace(array_keys($replaceThis), $replaceThis, $sql_dateh_demande);
             $DTSTAMP = $sql_date_dem . "Z";
             $tab_date_deb = explode("-", $sql_date_debut);
             $tab_date_fin = explode("-", $sql_date_fin);
             //conversion etat demande en status
             switch ($sql_etat) {
                 case "ok":
                     $status = "CONFIRMED";
                     break;
                 case "refus":
                     $status = "CANCELLED";
                     break;
                 default:
                     $status = "TENTATIVE";
             }
             if ($sql_demi_jour_deb == "am") {
                 $DTSTART = $tab_date_deb[0] . $tab_date_deb[1] . $tab_date_deb[2] . "T070000Z";
             } else {
                 $DTSTART = $tab_date_deb[0] . $tab_date_deb[1] . $tab_date_deb[2] . "T120000Z";
             }
             // .....
             if ($sql_demi_jour_fin == "am") {
                 $DTEND = $tab_date_fin[0] . $tab_date_fin[1] . $tab_date_fin[2] . "T120000Z";
             } else {
                 $DTEND = $tab_date_fin[0] . $tab_date_fin[1] . $tab_date_fin[2] . "T210000Z";
             }
             // .....
             echo "BEGIN:VEVENT\r\n" . "DTSTAMP:{$DTSTAMP}\r\n" . "ORGANIZER:MAILTO:" . $tab_infos_user['email'] . "\r\n" . "CREATED:{$DTSTART}\r\n" . "STATUS:{$status}\r\n" . "UID:{$user_login}@Libertempo-{$sql_date_dem}\r\n";
             if ($sql_comment != "") {
                 echo "DESCRIPTION:{$sql_comment}\r\n";
             }
             echo "SUMMARY:{$type_abs}\r\n" . "CLASS:PUBLIC\r\n" . "PRIORITY:1\r\n" . "DTSTART:{$DTSTART}\r\n" . "DTEND:{$DTEND}\r\n" . "TRANSP:OPAQUE\r\n" . "END:VEVENT\r\n\r\n";
         }
     }
     echo "END:VCALENDAR\r\n";
 }
예제 #12
0
function verif_periode_chevauche_periode_user($date_debut, $date_fin, $user, $num_current_periode = '', $tab_periode_calcul, &$comment, $num_update = null)
{
    /************************************************************/
    // 2 : on verifie que le conges demandé ne chevauche pas une periode deja posée
    // -> on recupere les periodes par rapport aux dates, on en fait une tableau de 1/2 journees, et on compare par 1/2 journee
    $tab_periode_deja_prise = array();
    $current_day = $date_debut;
    $date_limite = jour_suivant($date_fin);
    // on va avancer jour par jour jusqu'à la date limite et recupere les periodes qui contiennent ce jour...
    // on construit un tableau par date et 1/2 jour avec l'état de la periode
    while ($current_day != $date_limite) {
        $tab_periode_deja_prise[$current_day]['am'] = "no";
        $tab_periode_deja_prise[$current_day]['pm'] = "no";
        if ($num_update === null) {
            // verif si c'est deja un conges
            $user_periode_sql = 'SELECT  p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_etat
						FROM conges_periode
						WHERE p_login = "******" AND ( p_etat=\'ok\' OR p_etat=\'valid\' OR p_etat=\'demande\' )
						' . (!empty($num_current_periode) ? 'AND p_num != ' . intval($num_current_periode) . ' ' : '') . '
						AND p_date_deb<="' . \includes\SQL::quote($current_day) . '" AND p_date_fin>="' . \includes\SQL::quote($current_day) . '" ';
        } else {
            // verif si c'est deja un conges
            $user_periode_sql = 'SELECT  p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_etat
						FROM conges_periode
						WHERE p_login = "******" AND ( p_etat=\'ok\' OR p_etat=\'valid\' OR p_etat=\'demande\' )
						' . (!empty($num_current_periode) ? 'AND p_num != ' . intval($num_current_periode) . ' ' : '') . '
						AND p_date_deb<="' . \includes\SQL::quote($current_day) . '" AND p_date_fin>="' . \includes\SQL::quote($current_day) . '"
						AND p_num != \'' . intval($num_update) . '\' ';
        }
        $user_periode_request = \includes\SQL::query($user_periode_sql);
        if ($user_periode_request->num_rows != 0) {
            while ($resultat_periode = $user_periode_request->fetch_array()) {
                $sql_p_date_deb = $resultat_periode["p_date_deb"];
                $sql_p_date_fin = $resultat_periode["p_date_fin"];
                $sql_p_demi_jour_deb = $resultat_periode["p_demi_jour_deb"];
                $sql_p_demi_jour_fin = $resultat_periode["p_demi_jour_fin"];
                $sql_p_etat = $resultat_periode["p_etat"];
                if ($current_day != $sql_p_date_deb && $current_day != $sql_p_date_fin) {
                    // pas la peine d'aller + loin, on chevauche une periode de conges !!!
                    if ($sql_p_etat == "demande") {
                        $comment = _('calcul_nb_jours_commentaire_impossible');
                    } else {
                        $comment = _('calcul_nb_jours_commentaire');
                    }
                    return TRUE;
                } elseif ($current_day == $sql_p_date_deb && $current_day == $sql_p_date_fin) {
                    if ($sql_p_demi_jour_deb == "am") {
                        $tab_periode_deja_prise[$current_day]['am'] = "{$sql_p_etat}";
                    }
                    if ($sql_p_demi_jour_fin == "pm") {
                        $tab_periode_deja_prise[$current_day]['pm'] = "{$sql_p_etat}";
                    }
                } elseif ($current_day == $sql_p_date_deb) {
                    if ($sql_p_demi_jour_deb == "am") {
                        $tab_periode_deja_prise[$current_day]['am'] = "{$sql_p_etat}";
                        $tab_periode_deja_prise[$current_day]['pm'] = "{$sql_p_etat}";
                    } else {
                        // alors ($sql_p_demi_jour_deb=="pm")
                        $tab_periode_deja_prise[$current_day]['pm'] = "{$sql_p_etat}";
                    }
                } else {
                    if ($sql_p_demi_jour_fin == "pm") {
                        $tab_periode_deja_prise[$current_day]['am'] = "{$sql_p_etat}";
                        $tab_periode_deja_prise[$current_day]['pm'] = "{$sql_p_etat}";
                    } else {
                        // alors ($sql_p_demi_jour_fin=="am")
                        $tab_periode_deja_prise[$current_day]['am'] = "{$sql_p_etat}";
                    }
                }
            }
        }
        $current_day = jour_suivant($current_day);
    }
    // fin du while
    /**********************************************/
    // Ensuite verifie en parcourant le tableau qu'on vient de crée (s'il n'est pas vide)
    if (count($tab_periode_deja_prise) != 0) {
        $current_day = $date_debut;
        $date_limite = jour_suivant($date_fin);
        // on va avancer jour par jour jusqu'à la date limite et recupere les periodes qui contiennent ce jour...
        // on construit un tableau par date et 1/2 jour avec l'état de la periode
        while ($current_day != $date_limite) {
            if ($tab_periode_calcul[$current_day]['am'] == 1 && $tab_periode_deja_prise[$current_day]['am'] != "no") {
                // pas la peine d'aller + loin, on chevauche une periode de conges !!!
                if ($tab_periode_deja_prise[$current_day]['am'] == "demande") {
                    $comment = _('calcul_nb_jours_commentaire_impossible');
                } else {
                    $comment = _('calcul_nb_jours_commentaire');
                }
                return TRUE;
            }
            if ($tab_periode_calcul[$current_day]['pm'] == 1 && $tab_periode_deja_prise[$current_day]['pm'] != "no") {
                // pas la peine d'aller + loin, on chevauche une periode de conges !!!
                if ($tab_periode_deja_prise[$current_day]['pm'] == "demande") {
                    $comment = _('calcul_nb_jours_commentaire_impossible');
                } else {
                    $comment = _('calcul_nb_jours_commentaire');
                }
                return TRUE;
            }
            $current_day = jour_suivant($current_day);
        }
        // fin du while
    }
    return FALSE;
    /************************************************************/
    // Fin de le verif de chevauchement d'une période déja saisie
}
예제 #13
0
 public static function enregistrement_edition($login)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $tab_solde_user = array();
     $sql1 = 'SELECT su_abs_id, su_solde FROM conges_solde_user where su_login = "******"';
     $ReqLog1 = \includes\SQL::query($sql1);
     while ($resultat1 = $ReqLog1->fetch_array()) {
         $sql_id = $resultat1["su_abs_id"];
         $tab_solde_user[$sql_id] = $resultat1["su_solde"];
     }
     $new_edition_id = \edition\Fonctions::get_last_edition_id() + 1;
     $aujourdhui = date("Y-m-d");
     $num_for_user = \edition\Fonctions::get_num_last_edition_user($login) + 1;
     /*************************************************/
     /* Insertion dans le table conges_edition_papier */
     /*************************************************/
     $sql_insert = "INSERT INTO conges_edition_papier\n                SET ep_id={$new_edition_id}, ep_login='******', ep_date='{$aujourdhui}', ep_num_for_user={$num_for_user} ";
     $result_insert = \includes\SQL::query($sql_insert);
     /*************************************************/
     /* Insertion dans le table conges_solde_edition  */
     /*************************************************/
     // recup du tableau des types de conges (seulement les conges)
     $tab_type_cong = recup_tableau_types_conges();
     foreach ($tab_type_cong as $id_abs => $libelle) {
         $sql_insert_2 = "INSERT INTO conges_solde_edition\n                    SET se_id_edition={$new_edition_id}, se_id_absence={$id_abs}, se_solde={$tab_solde_user[$id_abs]} ";
         $result_insert_2 = \includes\SQL::query($sql_insert_2);
     }
     if ($_SESSION['config']['gestion_conges_exceptionnels']) {
         $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels();
         foreach ($tab_type_conges_exceptionnels as $id_abs => $libelle) {
             $sql_insert_3 = "INSERT INTO conges_solde_edition SET se_id_edition={$new_edition_id}, se_id_absence={$id_abs}, se_solde={$tab_solde_user[$id_abs]} ";
             $result_insert_3 = \includes\SQL::query($sql_insert_3);
         }
     }
     /********************************************************************************************/
     /* Update du num edition dans la table periode pour les Conges et demandes de cette edition */
     /********************************************************************************************/
     // recup de la liste des id des absence de type conges !
     $sql_list = "SELECT ta_id FROM conges_type_absence WHERE ta_type='conges' OR ta_type='conges_exceptionnels'";
     $ReqLog_list = \includes\SQL::query($sql_list);
     $list_abs_id = "";
     while ($resultat_list = $ReqLog_list->fetch_array()) {
         if ($list_abs_id == "") {
             $list_abs_id = $resultat_list['ta_id'];
         } else {
             $list_abs_id = $list_abs_id . ", " . $resultat_list['ta_id'];
         }
     }
     $sql_update = 'UPDATE conges_periode SET p_edition_id=\'' . $new_edition_id . '\'
             WHERE p_login = \'' . $login . '\'
             AND p_edition_id IS NULL
             AND (p_type IN (\'' . $list_abs_id . '\') )
             AND (p_etat!=\'demande\') ';
     $ReqLog_update = \includes\SQL::query($sql_update);
     return $new_edition_id;
 }