function find_plugins_activated() { $list_plugins = array(); if (isset($_SESSION['config']['installed_version']) && $_SESSION['config']['installed_version'] != "") { $plugins_inst_activ_query = "SELECT p_name FROM conges_plugins WHERE p_is_active = 1 AND p_is_install = 1;"; $ReqLog_list_plugins = \includes\SQL::query($plugins_inst_activ_query); if ($ReqLog_list_plugins->num_rows != 0) { while ($plugin = $ReqLog_list_plugins->fetch_array()) { array_push($list_plugins, $plugin["p_name"]); } } } return $list_plugins; }
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; }
public static function affiche_all_demandes_en_cours($tab_type_conges) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $count1 = 0; $count2 = 0; $return = ''; $tab_type_all_abs = recup_tableau_tout_types_abs(); // recup du tableau des types de conges (seulement les conges exceptionnels) $tab_type_conges_exceptionnels = array(); if ($_SESSION['config']['gestion_conges_exceptionnels']) { $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels(); } /*********************************/ // Récupération des informations /*********************************/ // Récup dans un tableau de tableau des informations de tous les users dont $_SESSION['userlogin'] est responsable $tab_all_users_du_resp = recup_infos_all_users_du_resp($_SESSION['userlogin']); // si tableau des users du resp n'est pas vide if (count($tab_all_users_du_resp) != 0) { // constitution de la liste (séparé par des virgules) des logins ... $list_users_du_resp = ""; foreach ($tab_all_users_du_resp as $current_login => $tab_current_user) { if ($list_users_du_resp == "") { $list_users_du_resp = "'{$current_login}'"; } else { $list_users_du_resp = $list_users_du_resp . ", '{$current_login}'"; } } } // Récup dans un tableau de tableau des informations de tous les users dont $_SESSION['userlogin'] est GRAND responsable if ($_SESSION['config']['double_validation_conges']) { $tab_all_users_du_grand_resp = recup_infos_all_users_du_grand_resp($_SESSION['userlogin']); // si tableau des users du grand resp n'est pas vide if (count($tab_all_users_du_grand_resp) != 0) { // constitution de la liste (séparé par des virgules) des logins ... $list_users_du_grand_resp = ""; foreach ($tab_all_users_du_grand_resp as $current_login => $tab_current_user) { if ($list_users_du_grand_resp == "") { $list_users_du_grand_resp = "'{$current_login}'"; } else { $list_users_du_grand_resp = $list_users_du_grand_resp . ", '{$current_login}'"; } } } } /*********************************/ $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '&onglet=traitement_demandes" method="POST">'; /*********************************/ /* TABLEAU DES DEMANDES DES USERS DONT ON EST LE RESP */ /*********************************/ // si tableau des users du resp n'est pas vide if (count($tab_all_users_du_resp) != 0) { // Récup des demandes en cours pour les users dont $_SESSION['userlogin'] est responsable : $sql1 = "SELECT p_num, p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_date_demande, p_date_traitement FROM conges_periode "; $sql1 = $sql1 . " WHERE p_etat =\"demande\" "; $sql1 = $sql1 . " AND p_login IN ({$list_users_du_resp}) "; $sql1 = $sql1 . " ORDER BY p_num"; $ReqLog1 = \includes\SQL::query($sql1); $count1 = $ReqLog1->num_rows; if ($count1 != 0) { // AFFICHAGE TABLEAU DES DEMANDES EN COURS $return .= '<h3>' . _('resp_traite_demandes_titre_tableau_1') . '</h3>'; $return .= '<table cellpadding="2" class="table table-hover table-responsive table-condensed table-striped">'; $return .= '<thead>'; $return .= '<tr>'; $return .= '<th>' . _('divers_nom_maj_1') . '<br>' . _('divers_prenom_maj_1') . '</th>'; $return .= '<th>' . _('divers_quotite_maj_1') . '</th>'; $return .= '<th>' . _('divers_type_maj_1') . '</th>'; $return .= '<th>' . _('divers_debut_maj_1') . '</th>'; $return .= '<th>' . _('divers_fin_maj_1') . '</th>'; $return .= '<th>' . _('divers_comment_maj_1') . '</th>'; $return .= '<th>' . _('resp_traite_demandes_nb_jours') . '</th>'; // foreach($tab_type_conges as $id_conges => $libelle) // { // echo "<th>". _('divers_solde_maj_1') ."<br>$libelle</th>" ; // } // if ($_SESSION['config']['gestion_conges_exceptionnels']) // foreach($tab_type_conges_exceptionnels as $id_conges => $libelle) // { // echo "<th>". _('divers_solde_maj_1') ."<br>$libelle</th>" ; // } $return .= '<th>' . _('divers_solde') . '</th>'; $return .= '<th>' . _('divers_accepter_maj_1') . '</th>'; $return .= '<th>' . _('divers_refuser_maj_1') . '</th>'; $return .= '<th>' . _('resp_traite_demandes_attente') . '</th>'; $return .= '<th>' . _('resp_traite_demandes_motif_refus') . '</th>'; if ($_SESSION['config']['affiche_date_traitement']) { $return .= '<th>' . _('divers_date_traitement') . '</th>'; } $return .= '</tr>'; $return .= '</thead>'; $return .= '<tbody>'; $i = true; $tab_bt_radio = array(); while ($resultat1 = $ReqLog1->fetch_array()) { /** sur la ligne , **/ /** le 1er bouton radio est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--OK"> */ /** et le 2ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--not_OK"> */ /** et le 3ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--RIEN"> */ $sql_p_date_deb = $resultat1["p_date_deb"]; $sql_p_date_deb_fr = eng_date_to_fr($resultat1["p_date_deb"]); $sql_p_demi_jour_deb = $resultat1["p_demi_jour_deb"]; if ($sql_p_demi_jour_deb == "am") { $demi_j_deb = "matin"; } else { $demi_j_deb = "après-midi"; } $sql_p_date_fin = $resultat1["p_date_fin"]; $sql_p_date_fin_fr = eng_date_to_fr($resultat1["p_date_fin"]); $sql_p_demi_jour_fin = $resultat1["p_demi_jour_fin"]; if ($sql_p_demi_jour_fin == "am") { $demi_j_fin = "matin"; } else { $demi_j_fin = "après-midi"; } $sql_p_commentaire = $resultat1["p_commentaire"]; $sql_p_num = $resultat1["p_num"]; $sql_p_login = $resultat1["p_login"]; $sql_p_nb_jours = affiche_decimal($resultat1["p_nb_jours"]); $sql_p_type = $resultat1["p_type"]; $sql_p_date_demande = $resultat1["p_date_demande"]; $sql_p_date_traitement = $resultat1["p_date_traitement"]; // on construit la chaine qui servira de valeur à passer dans les boutons-radio $chaine_bouton_radio = "{$sql_p_login}--{$sql_p_nb_jours}--{$sql_p_type}--{$sql_p_date_deb}--{$sql_p_demi_jour_deb}--{$sql_p_date_fin}--{$sql_p_demi_jour_fin}"; // si le user fait l'objet d'une double validation on a pas le meme resultat sur le bouton ! if ($tab_all_users_du_resp[$sql_p_login]['double_valid'] == "Y") { // si on est a la fois resp et grand resp if (count($tab_all_users_du_grand_resp) != 0 && array_key_exists($sql_p_login, $tab_all_users_du_grand_resp)) { $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">"; } else { //on est QUe resp $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--VALID\">"; } } else { $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">"; } $boutonradio2 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--not_OK\">"; $boutonradio3 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--RIEN\" checked>"; $text_refus = "<input class=\"form-control\" type=\"text\" name=\"tab_text_refus[{$sql_p_num}]\" size=\"20\" max=\"100\">"; $return .= '<tr class="' . ($i ? 'i' : 'p') . '">'; $return .= '<td><b>' . $tab_all_users_du_resp[$sql_p_login]['nom'] . '</b><br>' . $tab_all_users_du_resp[$sql_p_login]['prenom'] . '</td><td>' . $tab_all_users_du_resp[$sql_p_login]['quotite'] . '%</td>'; $return .= '<td>' . $tab_type_all_abs[$sql_p_type]['libelle'] . '</td>'; $return .= '<td>' . $sql_p_date_deb_fr . '<span class="demi">' . $demi_j_deb . '</span></td><td>' . $sql_p_date_fin_fr . '<span class="demi">' . $demi_j_fin . '</span></td><td>' . $sql_p_commentaire . '</td><td><b>' . $sql_p_nb_jours . '</b></td>'; $tab_conges = $tab_all_users_du_resp[$sql_p_login]['conges']; $return .= '<td>' . $tab_conges[$tab_type_all_abs[$sql_p_type]['libelle']]['solde'] . '</td>'; // foreach($tab_type_conges as $id_conges => $libelle) // { // echo "<td>".$tab_conges[$libelle]['solde']."</td>"; // } // if ($_SESSION['config']['gestion_conges_exceptionnels']) // foreach($tab_type_conges_exceptionnels as $id_conges => $libelle) // { // echo "<td>".$tab_conges[$libelle]['solde']."</td>"; // } // echo "<td>".$tab_type_all_abs[$sql_p_type]['libelle']."</td>\n"; $return .= '<td>' . $boutonradio1 . '</td><td>' . $boutonradio2 . '</td><td>' . $boutonradio3 . '</td><td>' . $text_refus . '</td>'; if ($_SESSION['config']['affiche_date_traitement']) { if ($sql_p_date_demande == NULL) { $return .= '<td class="histo-left">' . _('divers_demande') . ' : ' . $sql_p_date_demande . '<br>' . _('divers_traitement') . ' : ' . $sql_p_date_traitement . '</td>'; } else { $return .= '<td class="histo-left">' . _('divers_demande') . ' : ' . $sql_p_date_demande . '<br>' . _('divers_traitement') . ' : pas traité</td>'; } } $return .= '</tr>'; $i = !$i; } // while $return .= '</tbody>'; $return .= '</table>'; } //if($count1!=0) } //if( count($tab_all_users_du_resp)!=0 ) /*********************************/ /* TABLEAU DES DEMANDES DES USERS DONT ON EST LE GRAND RESP */ /*********************************/ if ($_SESSION['config']['double_validation_conges']) { // si tableau des users du grand resp n'est pas vide if (count($tab_all_users_du_grand_resp) != 0) { // Récup des demandes en cours pour les users dont $_SESSION['userlogin'] est GRAND responsable : $sql2 = "SELECT p_num, p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_date_demande, p_date_traitement FROM conges_periode "; $sql2 = $sql2 . " WHERE p_etat =\"valid\" "; $sql2 = $sql2 . " AND p_login IN ({$list_users_du_grand_resp}) "; $sql2 = $sql2 . " ORDER BY p_num"; $ReqLog2 = \includes\SQL::query($sql2); $count2 = $ReqLog2->num_rows; if ($count2 != 0) { // AFFICHAGE TABLEAU DES DEMANDES EN COURS POUR DEUXIEME VALIDATION $return .= '<h3>' . _('resp_traite_demandes_titre_tableau_2') . '</h3>'; $return .= '<table class="table table-hover table-responsive table-condensed table-striped">'; $return .= '<thead>'; $return .= '<tr>'; $return .= '<th><b>' . _('divers_nom_maj_1') . '</b><br>' . _('divers_prenom_maj_1') . '</th>'; $return .= '<th>' . _('divers_quotite_maj_1') . '</th>'; $return .= '<th>' . _('divers_debut_maj_1') . '</th>'; $return .= '<th>' . _('divers_fin_maj_1') . '</th>'; $return .= '<th>' . _('divers_comment_maj_1') . '</th>'; $return .= '<th>' . _('resp_traite_demandes_nb_jours') . '</th>'; foreach ($tab_type_conges as $id_conges => $libelle) { $return .= '<th>' . _('divers_solde_maj_1') . '<br>' . $libelle . '</th>'; } $return .= '<th>' . _('divers_type_maj_1') . '</th>'; $return .= '<th>' . _('divers_accepter_maj_1') . '</th>'; $return .= '<th>' . _('divers_refuser_maj_1') . '</th>'; $return .= '<th>' . _('resp_traite_demandes_attente') . '</th>'; $return .= '<th>' . _('resp_traite_demandes_motif_refus') . '</th>'; if ($_SESSION['config']['affiche_date_traitement']) { $return .= '<th>' . _('divers_date_traitement') . '</th>'; } $return .= '</tr>'; $return .= '</thead>'; $return .= '<tbody>'; $i = true; $tab_bt_radio = array(); while ($resultat2 = $ReqLog2->fetch_array()) { /** sur la ligne , **/ /** le 1er bouton radio est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--OK"> */ /** et le 2ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--not_OK"> */ /** et le 3ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--RIEN"> */ $sql_p_date_deb = $resultat2["p_date_deb"]; $sql_p_date_deb_fr = eng_date_to_fr($resultat2["p_date_deb"]); $sql_p_demi_jour_deb = $resultat2["p_demi_jour_deb"]; if ($sql_p_demi_jour_deb == "am") { $demi_j_deb = "matin"; } else { $demi_j_deb = "après-midi"; } $sql_p_date_fin = $resultat2["p_date_fin"]; $sql_p_date_fin_fr = eng_date_to_fr($resultat2["p_date_fin"]); $sql_p_demi_jour_fin = $resultat2["p_demi_jour_fin"]; if ($sql_p_demi_jour_fin == "am") { $demi_j_fin = "matin"; } else { $demi_j_fin = "après-midi"; } $sql_p_commentaire = $resultat2["p_commentaire"]; $sql_p_num = $resultat2["p_num"]; $sql_p_login = $resultat2["p_login"]; $sql_p_nb_jours = affiche_decimal($resultat2["p_nb_jours"]); $sql_p_type = $resultat2["p_type"]; $sql_p_date_demande = $resultat2["p_date_demande"]; $sql_p_date_traitement = $resultat2["p_date_traitement"]; // on construit la chaine qui servira de valeur à passer dans les boutons-radio $chaine_bouton_radio = "{$sql_p_login}--{$sql_p_nb_jours}--{$sql_p_type}--{$sql_p_date_deb}--{$sql_p_demi_jour_deb}--{$sql_p_date_fin}--{$sql_p_demi_jour_fin}"; $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">"; $boutonradio2 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--not_OK\">"; $boutonradio3 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--RIEN\" checked>"; $text_refus = "<input class=\"form-control\" type=\"text\" name=\"tab_text_refus[{$sql_p_num}]\" size=\"20\" max=\"100\">"; $return .= '<tr class="' . ($i ? 'i' : 'p') . '">'; $return .= '<td><strong>' . $tab_all_users_du_grand_resp[$sql_p_login]['nom'] . '</strong><br>' . $tab_all_users_du_grand_resp[$sql_p_login]['prenom'] . '</td><td>' . $tab_all_users_du_grand_resp[$sql_p_login]['quotite'] . '%</td>'; $return .= '<td>' . $sql_p_date_deb_fr . '<span class="demi">' . $demi_j_deb . '<span></td><td>' . $sql_p_date_fin_fr . '<span class="demi">' . $demi_j_fin . '</span></td><td>' . $sql_p_commentaire . '</td><td><b>' . $sql_p_nb_jours . '</b></td>'; $tab_conges = $tab_all_users_du_grand_resp[$sql_p_login]['conges']; foreach ($tab_type_conges as $id_conges => $libelle) { $return .= '<td>' . $tab_conges[$libelle]['solde'] . '</td>'; } $return .= '<td>' . $tab_type_all_abs[$sql_p_type]['libelle'] . '</td>'; $return .= '<td>' . $boutonradio1 . '</td><td>' . $boutonradio2 . '</td><td>' . $boutonradio3 . '</td><td>' . $text_refus . '</td>'; if ($_SESSION['config']['affiche_date_traitement']) { $return .= '<td class="histo-left">' . _('divers_demande') . ' : ' . $sql_p_date_demande . '<br>' . _('divers_traitement') . ' : ' . $sql_p_date_traitement . '</td>'; } $return .= '</tr>'; $i = !$i; } //while $return .= '</tbody>'; $return .= '</table>'; } //if($count2!=0) } //if( count($tab_all_users_du_grand_resp)!=0 ) } //if($_SESSION['config']['double_validation_conges']) $return .= '<br>'; if ($count1 == 0 && $count2 == 0) { $return .= '<strong>' . _('resp_traite_demandes_aucune_demande') . '</strong>'; } else { $return .= '<hr/>'; $return .= '<input class="btn btn-success" type="submit" value="' . _('form_submit') . '">'; } $return .= '</form>'; return $return; }
/** * 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 .= '    ' . $year_affichage . '   '; $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; }
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; }
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *************************************************************************************************/ if (isset($_REQUEST['session'])) { session_is_valid($_REQUEST['session']); } if (isset($_REQUEST['lang'])) { $lang = $_REQUEST['lang']; } elseif (isset($_SESSION['lang'])) { $lang = $_SESSION['lang']; } else { /* Retrieve lang informations from config database */ $lang_query = "SELECT conf_valeur FROM conges_config WHERE conf_nom='lang';"; $ReqLang = \includes\SQL::query($lang_query); $lang = $ReqLang->fetch_row(); if ($lang != NULL) { $lang = $lang[0]; } } putenv('LANG=' . $lang); // On modifie la variable d'environnement $LoadLang = setlocale(LC_ALL, $lang, $lang . ".utf8"); if (!$LoadLang) { $pattern = "/" . $lang . "/i"; /* Retrieve lang informations from system */ $originalLocales = explode(";", setlocale(LC_ALL, 0)); foreach ($originalLocales as $localeSetting) {
function unhash_user($huser_test) { $user = ""; $ics_salt = $_SESSION['config']['export_ical_salt']; $req_user = '******'; $res_user = \includes\SQL::query($req_user); while ($resultat = $res_user->fetch_assoc()) { $clear_user = $resultat['u_login']; $huser = hash('sha256', $clear_user . $ics_salt); if ($huser_test == $huser) { $user = $clear_user; } } return $user; }
Vous devez avoir reçu une copie de la Licence Publique Générale GNU en même temps que ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis. ************************************************************************************************* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *************************************************************************************************/ include_once ROOT_PATH . 'define.php'; defined('_PHP_CONGES') or die('Restricted access'); $timeout = 2; // refresh après maj. $PHP_SELF = $_SERVER['PHP_SELF']; if (!isset($session) || $session == "") { $URL = "{$PHP_SELF}"; } else { $URL = "{$PHP_SELF}?session={$session}"; } echo "<META HTTP-EQUIV=REFRESH CONTENT=\"{$timeout}; URL={$URL}\">"; $delete_table_plugin_cet_query = "DROP TABLE IF EXISTS `conges_plugin_cet`;"; $result_delete_table_plugin = \includes\SQL::query($delete_table_plugin_cet_query); $update_plugin_table = "DELETE FROM conges_plugins WHERE p_name='" . $plugin . "';"; //$update_plugin_table = "UPDATE conges_plugins SET p_is_install='0' WHERE p_name='$plugin';" $result_update_plugin_table = \includes\SQL::query($update_plugin_table);
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"; }
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; }
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 }
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *************************************************************************************************/ define('ROOT_PATH', '../'); require_once ROOT_PATH . 'define.php'; /*******************************************************************/ // SCRIPT DE MIGRATION DE LA VERSION 1.5.0 vers 1.6.0 /*******************************************************************/ include_once ROOT_PATH . 'fonctions_conges.php'; include_once INCLUDE_PATH . 'fonction.php'; $PHP_SELF = $_SERVER['PHP_SELF']; $version = isset($_GET['version']) ? $_GET['version'] : (isset($_POST['version']) ? $_POST['version'] : ""); $lang = isset($_GET['lang']) ? $_GET['lang'] : (isset($_POST['lang']) ? $_POST['lang'] : ""); $old_conf = array('bgcolor', 'bgimage', 'img_login', 'lien_img_login', 'php_conges_authldap_include_path', 'php_conges_cas_include_path', 'php_conges_fpdf_include_path', 'php_conges_phpmailer_include_path', 'texte_img_login', 'texte_page_login'); $sql_delete_1 = "DELETE FROM conges_config WHERE conf_nom IN ('" . implode("' , '", $old_conf) . "');"; $result_delete_1 = \includes\SQL::query($sql_delete_1); $sql_alter_1 = " ALTER TABLE `conges_users` ADD `u_is_hr` ENUM( 'Y','N' ) NOT NULL DEFAULT 'N' AFTER `u_is_admin`;"; $result_alter_1 = \includes\SQL::query($sql_alter_1); $sql_alter_2 = " ALTER TABLE `conges_users` ADD `u_is_active` ENUM( 'Y','N' ) NOT NULL DEFAULT 'Y' AFTER `u_is_hr`;"; $result_alter_2 = \includes\SQL::query($sql_alter_2); $sql_insert_1 = "INSERT INTO `conges_config` (`conf_nom` ,`conf_valeur` ,`conf_groupe` ,`conf_type` ,`conf_commentaire`) VALUES ('print_disable_users', 'FALSE', '06_Responsable', 'Boolean', 'config_comment_print_disable_users');"; $result_insert_1 = \includes\SQL::query($sql_insert_1); $sql_update_1 = "UPDATE `conges_config` SET `conf_valeur` = 'style.css' WHERE `conges_config`.`conf_nom` = 'stylesheet_file';"; $result_update_1 = \includes\SQL::query($sql_update_1); $sql_insert_1 = "INSERT INTO `conges_config` (`conf_nom` ,`conf_valeur` ,`conf_groupe` ,`conf_type` ,`conf_commentaire`) VALUES ('affiche_jours_current_month_calendrier', 'FALSE', '13_Divers', 'Boolean', 'config_comment_affiche_jours_current_month_calendrier');"; $result_insert_1 = \includes\SQL::query($sql_insert_1); // on renvoit à la page mise_a_jour.php (là d'ou on vient) echo "<a href=\"mise_a_jour.php?etape=2&version={$version}&lang={$lang}\">upgrade_from_v1.5.0 OK</a><br>\n";
public static function e1_create_table_plugins() { $create_table_plugin_query = "CREATE TABLE IF NOT EXISTS `conges_plugins` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n `p_name` varchar(250) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Plugin name',\n `p_is_active` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Plugin activated ?',\n `p_is_install` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Plugin is installed ?',\n PRIMARY KEY (`id`)\n ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;"; $result_create_table_plugin = \includes\SQL::query($create_table_plugin_query); }
public static function affichage_configuration($session) { $PHP_SELF = $_SERVER['PHP_SELF']; $return = ''; // affiche_bouton_retour($session); // affichage de la liste des variables if ($session == "") { $return .= '<form action="' . $PHP_SELF . '" method="POST">'; } else { $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '" method="POST">'; } $return .= '<input type="hidden" name="action" value="commit">'; //requête qui récupère les informations de config $sql1 = "SELECT * FROM conges_config ORDER BY conf_groupe ASC"; $ReqLog1 = \includes\SQL::query($sql1); $old_groupe = ""; while ($data = $ReqLog1->fetch_array()) { $conf_nom = $data['conf_nom']; $conf_valeur = $data['conf_valeur']; $conf_groupe = $data['conf_groupe']; $conf_type = strtolower($data['conf_type']); $conf_commentaire = strtolower($data['conf_commentaire']); // changement de groupe de variables if ($old_groupe != $conf_groupe) { if ($old_groupe != "") { $return .= '</td></tr>'; $return .= '<tr><td align="right">'; $return .= '<input type="submit" class="btn" value="' . _('form_save_modif') . '"><br>'; $return .= '</td></tr>'; $return .= '</table>'; } $return .= '<br>'; $return .= '<table width="100%">'; $return .= '<tr><td>'; $return .= '<fieldset class="cal_saisie ' . $conf_nom . '">'; $return .= '<legend class="boxlogin">' . _($conf_groupe) . '</legend>'; $old_groupe = $conf_groupe; } // si on est sur le parametre "lang" on liste les fichiers de langue du répertoire install/lang if ($conf_nom == "lang") { $return .= 'Choisissez votre langue :<br>'; $return .= 'Choose your language :<br>'; // affichage de la liste des langues supportées ... // on lit le contenu du répertoire lang et on parse les nom de ficher (ex lang_fr_francais.php) //affiche_select_from_lang_directory("tab_new_values[$conf_nom]"); $return .= affiche_select_from_lang_directory('lang', $conf_valeur); } else { // affichage commentaire $return .= '<br><i>' . _($conf_commentaire) . '</i><br>'; // affichage saisie variable if ($conf_nom == "installed_version") { $return .= '<b>' . $conf_nom . ' = ' . $conf_valeur . '</b><br>'; } elseif ($conf_type == "texte" || $conf_type == "path") { $return .= '<b>' . $conf_nom . '</b> = <input type="text" class="form-control" size="50" maxlength="200" name="tab_new_values[' . $conf_nom . ']" value="' . $conf_valeur . '"><br>'; } elseif ($conf_type == "boolean") { $return .= '<b>' . $conf_nom . '</b> = <select class="form-control" name="tab_new_values[' . $conf_nom . ']">'; $return .= '<option value="TRUE"'; if ($conf_valeur == "TRUE") { $return .= ' selected'; } $return .= '>TRUE</option>'; $return .= '<option value="FALSE"'; if ($conf_valeur == "FALSE") { $return .= ' selected'; } $return .= '>FALSE</option>'; $return .= '</select><br>'; } elseif (substr($conf_type, 0, 4) == "enum") { $return .= '<b>' . $conf_nom . '</b> = <select class="form-control" name="tab_new_values[' . $conf_nom . ']">'; $options = explode("/", substr(strstr($conf_type, '='), 1)); for ($i = 0; $i < count($options); $i++) { $return .= '<option value="' . $options[$i] . '"'; if ($conf_valeur == $options[$i]) { $return .= ' selected'; } $return .= '>' . $options[$i] . '</option>'; } $return .= '</select><br>'; } $return .= '<br>'; } } $return .= '</td></tr>'; $return .= '<tr><td align="right">'; $return .= '<input type="submit" class="btn" value="' . _('form_save_modif') . '"><br>'; $return .= '</td></tr>'; /******************* GESTION DES PLUGINS V1.7 *************************/ //rajout du formulaire de gestion des plugins : à partir de la version 1.7 // - On détecte les plugins puis on propose de les installer // L'installation du plugin va lancer include/plugins/[nom_du_plugins]/plugin_install.php // plugin_install.php lance la création des tables supplémentaires; // normalement le format de nommage des tables est conges_plugin_[nom_du_plugin]. Exemple de table : conges_plugin_cet // il vaut mieux éviter de surcharger les tables existantes pour éviter les nombreux problèmes de compatibilité // lors d'un changement de version. // - Lorsqu'un plugin est installé, l'administrateur ou la personne autorisée pourra activer le plugin. // Le status qui s'affichera deviendra "activated" // Soit 4 statuts disponibles : not installed, installed, disable, activated // Correspondants à 4 fichiers dans le dossier du plugin : plugin_install.php, plugin_uninstall.php, plugin_active.php, plugin_inactive.php //Les statuts sont retrouvés par la table conges_plugins //Ensuite, les fichiers à inclure doivent être listés dans include/plugins/[nom_du_plugins]/allfilestoinclude.php // Ces fichiers à inclure contiennent le coeur de votre plugin. $my_plugins = scandir(PLUGINS_DIR); $plug_count = 0; $return .= '<table width="100%">'; $return .= '<tr><td>'; $return .= '<fieldset class="cal_saisie plugins">'; $return .= '<legend class="boxlogin">Plugins</legend>'; foreach ($my_plugins as $my_plugin) { if (is_dir(PLUGINS_DIR . "/{$my_plugin}") && !preg_match("/^\\./", $my_plugin)) { $return .= 'Plugin détecté : '; $return .= '<b>' . $my_plugin . '</b> This plugin is installed ? : <select class="form-control" name=tab_new_values[' . $my_plugin . '_installed]>'; $sql_plug = "SELECT p_is_active, p_is_install FROM conges_plugins WHERE p_name = '" . $my_plugin . "';"; $ReqLog_plug = \includes\SQL::query($sql_plug); if ($ReqLog_plug->num_rows != 0) { while ($plug = $ReqLog_plug->fetch_array()) { $p_install = $plug["p_is_install"]; if ($p_install == '1') { $return .= '<option selected="selected" value="1">Y</option><option value="0">N</option>'; } else { $return .= '<option value="1">Y</option><option selected="selected" value="0">N</option>'; } $return .= '</select>'; $return .= ' ... Is activated ? : <select class="form-control" name=tab_new_values[' . $my_plugin . '_activated]>'; $p_active = $plug["p_is_active"]; if ($p_active == '1') { $return .= '<option selected="selected" value="1">Y</option><option value="0">N</option>'; } else { $return .= '<option value="1">Y</option><option selected="selected" value="0">N</option>'; } } } else { $return .= '<option value="1">Y</option><option selected="selected" value="0">N</option>'; $return .= '</select>'; $return .= ' ... Is activated ? : <select class="form-control" name=tab_new_values[' . $my_plugin . '_activated]>'; $return .= '<option value="1">Y</option><option selected="selected" value="0">N</option>'; } $return .= '</select>'; $return .= '<br />'; $plug_count++; } } if ($plug_count == 0) { $return .= 'No plugin detected.'; } $return .= '</td></tr>'; $return .= '<tr><td align="right">'; $return .= '<input type="submit" class="btn" value="' . _('form_save_modif') . '"><br>'; $return .= '</td></tr>'; /**********************************************************************/ $return .= '</table>'; $return .= '</form>'; return $return; }
<?php $local_scripts = curPage(); if ($local_scripts[0] == "user_index.php") { $pattern = "&onglet="; $which_onglet = explode($pattern, $local_scripts[1]); if (empty($which_onglet) || (array_key_exists(1, $which_onglet) and $which_onglet[1] == "nouvelle_absence") || $which_onglet[0] == $local_scripts[1]) { $nb_days_cet = getpost_variable("nb_days_cet"); $comments_cet = getpost_variable("comments_cet"); $user_login = $_SESSION['userlogin']; if (!empty($nb_days_cet)) { $text = 'Merci. Votre demande de ' . $nb_days_cet . ' jours va être transmise.'; alerte_mail($user_login, ":responsable:", "0", "cet_demande", FALSE); $query_insert_cet = 'INSERT INTO conges_plugin_cet(pc_jours_demandes,pc_comments,pc_u_login) VALUES("' . $nb_days_cet . '","' . $comments_cet . '","' . $user_login . '")'; $exec_query_cet = \includes\SQL::query($query_insert_cet); } else { $text = '<br /><form method="POST" name="form2">Nombre de jours demandés pour alimenter votre CET : <input type="text" name="nb_days_cet"> Commentaires <input type="text" name="comments_cet"><input type="submit" /></form>'; } echo "<script>\n \$(document).ready(function(){\n \$('.nouvelle_absence').before('" . $text . "');\n });\n </script>"; } }
<?php $local_scripts = curPage(); if ($local_scripts[0] == "hr_index.php") { $pattern = "&onglet="; $i = 0; $which_onglet = explode($pattern, $local_scripts[1]); echo '<LINK href="' . ROOT_PATH . 'include/plugins/cet/css/bulles.css" title="bulles" rel="stylesheet" type="text/css">'; if (empty($which_onglet) || $which_onglet[1] == "page_principale" || $which_onglet[0] == $local_scripts[1]) { $select_all_cet = "SELECT u_nom,u_prenom,pc_jours_demandes,pc_u_login,pc_requested_date,pc_comments FROM conges_users,conges_plugin_cet WHERE `conges_users`.`u_login`=`conges_plugin_cet`.`pc_u_login`"; $exec_all_cet = \includes\SQL::query($select_all_cet); echo "<script>\n \$(document).ready(function(){\n \$('th:last-child').after('<th>CET</th>');"; if ($exec_all_cet->num_rows != 0) { while ($user_cet = $exec_all_cet->fetch_array()) { echo "\n var tableRow = \$('tr:has(td:contains(\"" . $user_cet['u_nom'] . "\")):has(td:contains(\"" . $user_cet['u_prenom'] . "\"))');\n tableRow.css('color','blue');\n var jours_demandes = Math.round(" . $user_cet['pc_jours_demandes'] . ")\n tableRow.append('<td class=\"cet\" id=\"cet_" . $user_cet['pc_u_login'] . "_" . $i . "\"><b>'+jours_demandes+'</b><span class=\"cet_detail\">details : " . $user_cet['pc_requested_date'] . ". " . $user_cet['pc_comments'] . "</span></td>');\n addHover('" . $user_cet['pc_u_login'] . "_" . $i . "');\n "; $i++; } } echo "\n function addHover(uid) {\n var td_id = '#cet_'+uid;\n \$(td_id).mouseover(function(){\n \$(this).children('span').show();\n }).mouseout(function(){\n \$(this).children('span').hide();\n });\n }\n });\n </script>"; } }
public static function saisie_groupe_fermeture() { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $return = ''; $return .= '<div class="row">'; $return .= '<div class="col-md-6">'; /********************/ /* Choix Tous */ /********************/ // AFFICHAGE TABLEAU $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '" method="POST">'; $return .= '<input type="hidden" name="groupe_id" value="0">'; $return .= '<input type="hidden" name="choix_action" value="saisie_dates">'; $return .= '<input class="btn btn-success" type="submit" value="' . _('admin_jours_fermeture_fermeture_pour_tous') . ' !">'; $return .= '</form>'; $return .= '</div>'; if ($_SESSION['config']['gestion_groupes'] && $_SESSION['config']['fermeture_par_groupe']) { /********************/ /* Choix Groupe */ /********************/ // Récuperation des informations : $sql_gr = "SELECT g_gid, g_groupename, g_comment FROM conges_groupe ORDER BY g_groupename"; // AFFICHAGE TABLEAU $return .= '<div class="col-md-6">'; $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '" class="form-inline" method="POST">'; $return .= '<div class="form-group" style="margin-right: 10px;">'; $ReqLog_gr = \includes\SQL::query($sql_gr); $return .= '<select class="form-control" name="groupe_id">'; while ($resultat_gr = $ReqLog_gr->fetch_array()) { $sql_gid = $resultat_gr["g_gid"]; $sql_group = $resultat_gr["g_groupename"]; $sql_comment = $resultat_gr["g_comment"]; $return .= '<option value="' . $sql_gid . '">' . $sql_group; } $return .= '</select>'; $return .= '<input type="hidden" name="choix_action" value="saisie_dates">'; $return .= '</div>'; $return .= '<input class="btn btn-success" type="submit" value="' . _('admin_jours_fermeture_fermeture_par_groupe') . '">'; $return .= '</form>'; $return .= '</div>'; } /************************************************/ // HISTORIQUE DES FERMETURES $tab_periodes_fermeture = array(); \hr\Fonctions::get_tableau_periodes_fermeture($tab_periodes_fermeture); if (count($tab_periodes_fermeture) != 0) { $return .= '<table class="table">'; $return .= '<thead>'; $return .= '<tr>'; $return .= '<th colspan="2">Fermetures</th>'; $return .= '</tr>'; $return .= '</thead>'; foreach ($tab_periodes_fermeture as $tab_periode) { $date_affiche_1 = eng_date_to_fr($tab_periode['date_deb']); $date_affiche_2 = eng_date_to_fr($tab_periode['date_fin']); $fermeture_id = $tab_periode['fermeture_id']; $groupe_id = $tab_periode['groupe_id']; $groupe_name = $tab_periode['groupe_name']; if ($groupe_id == 0) { $groupe_name = 'Tous'; } else { $groupe_name = $groupe_name; } $return .= '<tr>'; $return .= '<td>'; $return .= _('divers_du') . ' <b>' . $date_affiche_1 . '</b> ' . _('divers_au') . ' <b>' . $date_affiche_2 . '</b> (id ' . $fermeture_id . ')</b> ' . $groupe_name; $return .= '</td>'; $return .= '<td>'; $return .= '<a href="' . $PHP_SELF . '?session=' . $session . '&choix_action=annul_fermeture&fermeture_id=' . $fermeture_id . '&groupe_id=' . $groupe_id . '&fermeture_date_debut=' . $date_affiche_1 . '&fermeture_date_fin=' . $date_affiche_2 . '">' . _('admin_annuler_fermeture') . '</a>'; $return .= '</td>'; $return .= '</tr>'; } $return .= '</table>'; } $return .= '</div>'; $return .= '<hr>'; $return .= '<a class="btn" href="/admin/admin_index.php?session=' . $session . '">' . _('form_cancel') . '</a>'; return $return; }
$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); } else {
ni explicite ni implicite, y compris les garanties de commercialisation ou d'adaptation dans un but spécifique. Reportez-vous à la Licence Publique Générale GNU pour plus de détails. Vous devez avoir reçu une copie de la Licence Publique Générale GNU en même temps que ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, États-Unis. ************************************************************************************************* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *************************************************************************************************/ include ROOT_PATH . 'define.php'; defined('_PHP_CONGES') or die('Restricted access'); $PHP_SELF = $_SERVER['PHP_SELF']; $timeout = 2; // refresh après maj. if (!isset($session) || $session == "") { $URL = "{$PHP_SELF}"; } else { $URL = "{$PHP_SELF}?session={$session}"; } $update_plugin_table = "UPDATE conges_plugins SET p_is_active = '0'\n WHERE p_name='" . $plugin . "';"; $result_update_plugin_table = \includes\SQL::query($update_plugin_table); $update_mail_table = "DELETE FROM `conges_mail` WHERE `mail_nom`='mail_cet_demande';"; $result_update_mail_table = \includes\SQL::query($update_mail_table);
function get_list_users_des_groupes_du_resp_sauf_resp($resp_login) { $list_users_des_groupes_du_resp_sauf_resp = ""; $list_groups = get_list_groupes_du_resp($resp_login); if ($list_groups != "") { $sql1 = "SELECT DISTINCT(gu_login) FROM conges_groupe_users WHERE gu_gid IN ({$list_groups}) AND gu_login NOT IN (SELECT gr_login FROM conges_groupe_resp WHERE gr_gid IN ({$list_groups})) ORDER BY gu_login "; $ReqLog1 = \includes\SQL::query($sql1); while ($resultat1 = $ReqLog1->fetch_array()) { $current_login = $resultat1["gu_login"]; if ($list_users_des_groupes_du_resp_sauf_resp == "") { $list_users_des_groupes_du_resp_sauf_resp = "'{$current_login}'"; } else { $list_users_des_groupes_du_resp_sauf_resp = $list_users_des_groupes_du_resp_sauf_resp . ", '{$current_login}'"; } } } return $list_users_des_groupes_du_resp_sauf_resp; }
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; }