예제 #1
0
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;
}
예제 #2
0
 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 . '&nbsp;&nbsp;=&nbsp;&nbsp;' . $conf_valeur . '</b><br>';
             } elseif ($conf_type == "texte" || $conf_type == "path") {
                 $return .= '<b>' . $conf_nom . '</b>&nbsp;=&nbsp;<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>&nbsp;=&nbsp;<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>&nbsp;=&nbsp;<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;
 }
예제 #3
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;
}
예제 #4
0
 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;
 }
예제 #5
0
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) {
예제 #6
0
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);
예제 #7
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;
 }
예제 #8
0
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;
}
예제 #9
0
<?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 &ecirc;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&eacute;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>";
    }
}
예제 #10
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";
 }
예제 #11
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;
 }
예제 #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
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";
예제 #14
0
 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);
 }
예제 #15
0
<?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>";
    }
}
예제 #16
0
 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;
 }
예제 #17
0
<?php

defined('_PHP_CONGES') or die('Restricted access');
$querys = \includes\SQL::getQuerys();
$total = 0;
?>
</div>
</div>
<footer>
<div id="bottom">
<?php 
echo BOTTOM_TEXT;
?>
</div>
<?php 
if (SHOW_SQL) {
    ?>
    <div id="show-sql">
        <table class="table table-striped table-hover">
            <thead>
                <tr>
                    <th>#</th>
                    <th>Time</th>
                    <th>Total</th>
                    <th>Results</th>
                    <th>File</th>
                    <th>Line</th>
                    <th>Query</th>
                </tr>
            </thead>
            <tbody>
예제 #18
0
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);
예제 #19
0
파일: index.php 프로젝트: TexGG/Libertempo
                    $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 {
예제 #20
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;
 }
예제 #21
0
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;
}
예제 #22
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;
 }