예제 #1
0
 public static function test_database()
 {
     try {
         \includes\SQL::singleton();
     } catch (Exception $e) {
         return false;
     }
     return \includes\SQL::getVar('connect_errno') == 0;
 }
예제 #2
0
 public static function ajout_groupe($new_group_name, $new_group_libelle, $new_group_double_valid)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $session = session_id();
     $return = '';
     if (\admin\Fonctions::verif_new_param_group($new_group_name, $new_group_libelle) == 0) {
         $ngm = stripslashes($new_group_name);
         $return .= $ngm . '---' . $new_group_libelle . '<br>';
         $sql1 = "INSERT INTO conges_groupe SET g_groupename='{$new_group_name}', g_comment='{$new_group_libelle}', g_double_valid ='{$new_group_double_valid}' ";
         $result = \includes\SQL::query($sql1);
         $new_gid = \includes\SQL::getVar('insert_id');
         if ($result) {
             $return .= _('form_modif_ok') . '<br><br>';
         } else {
             $return .= _('form_modif_not_ok') . '<br><br>';
         }
         $comment_log = "ajout_groupe : {$new_gid} / {$new_group_name} / {$new_group_libelle} (double_validation : {$new_group_double_valid})";
         log_action(0, "", "", $comment_log);
         /* APPEL D'UNE AUTRE PAGE */
         $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '&onglet=admin-group" method="POST">';
         $return .= '<input type="submit" value="' . _('form_retour') . '">';
         $return .= '</form>';
     }
     return $return;
 }
예제 #3
0
 public static function traite_all_demande_en_cours($tab_bt_radio, $tab_text_refus)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $session = session_id();
     $return = '';
     while ($elem_tableau = each($tab_bt_radio)) {
         $champs = explode("--", $elem_tableau['value']);
         $user_login = $champs[0];
         $user_nb_jours_pris = $champs[1];
         $type_abs = $champs[2];
         // id du type de conges demandé
         $date_deb = $champs[3];
         $demi_jour_deb = $champs[4];
         $date_fin = $champs[5];
         $demi_jour_fin = $champs[6];
         $reponse = $champs[7];
         $numero = $elem_tableau['key'];
         $numero_int = (int) $numero;
         $return .= $numero . '---' . $user_login . '---' . $user_nb_jours_pris . '---' . $reponse . '<br>';
         /* Modification de la table conges_periode */
         if (strcmp($reponse, "VALID") == 0) {
             /* UPDATE table "conges_periode" */
             $sql1 = 'UPDATE conges_periode SET p_etat=\'valid\', p_date_traitement=NOW() WHERE p_num="' . \includes\SQL::quote($numero_int) . '" AND p_etat=\'demande\';';
             /* On valide l'UPDATE dans la table "conges_periode" ! */
             $ReqLog1 = \includes\SQL::query($sql1);
             if ($ReqLog1 && \includes\SQL::getVar('affected_rows')) {
                 // Log de l'action
                 log_action($numero_int, "valid", $user_login, "traite demande {$numero} ({$user_login}) ({$user_nb_jours_pris} jours) : {$reponse}");
                 //envoi d'un mail d'alerte au user et au responsable du resp (pour double validation) (si demandé dans config de libertempo)
                 if ($_SESSION['config']['mail_prem_valid_conges_alerte_user']) {
                     alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "valid_conges");
                 }
             }
         }
         if (strcmp($reponse, "OK") == 0) {
             /* UPDATE table "conges_periode" */
             $sql1 = 'UPDATE conges_periode SET p_etat="ok", p_date_traitement=NOW() WHERE p_num="' . \includes\SQL::quote($numero_int) . '" AND ( p_etat=\'valid\' OR p_etat=\'demande\' );';
             /* On valide l'UPDATE dans la table "conges_periode" ! */
             $ReqLog1 = \includes\SQL::query($sql1);
             if ($ReqLog1 && \includes\SQL::getVar('affected_rows')) {
                 // Log de l'action
                 log_action($numero_int, "ok", $user_login, "traite demande {$numero} ({$user_login}) ({$user_nb_jours_pris} jours) : {$reponse}");
                 /* UPDATE table "conges_solde_user" (jours restants) */
                 soustrait_solde_et_reliquat_user($user_login, $numero_int, $user_nb_jours_pris, $type_abs, $date_deb, $demi_jour_deb, $date_fin, $demi_jour_fin);
                 //envoi d'un mail d'alerte au user (si demandé dans config de php_conges)
                 if ($_SESSION['config']['mail_valid_conges_alerte_user']) {
                     alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "accept_conges");
                 }
             }
         } elseif (strcmp($reponse, "not_OK") == 0) {
             // recup du motif de refus
             $motif_refus = addslashes($tab_text_refus[$numero_int]);
             $sql1 = 'UPDATE conges_periode SET p_etat=\'refus\', p_motif_refus=\'' . $motif_refus . '\', p_date_traitement=NOW() WHERE p_num="' . \includes\SQL::quote($numero_int) . '" AND ( p_etat=\'valid\' OR p_etat=\'demande\' );';
             /* On valide l'UPDATE dans la table ! */
             $ReqLog1 = \includes\SQL::query($sql1);
             if ($ReqLog1 && \includes\SQL::getVar('affected_rows')) {
                 // Log de l'action
                 log_action($numero_int, "refus", $user_login, "traite demande {$numero} ({$user_login}) ({$user_nb_jours_pris} jours) : refus");
                 //envoi d'un mail d'alerte au user (si demandé dans config de php_conges)
                 if ($_SESSION['config']['mail_refus_conges_alerte_user']) {
                     alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "refus_conges");
                 }
             }
         }
     }
     $return .= _('form_modif_ok') . '<br><br>';
     /* APPEL D'UNE AUTRE PAGE au bout d'une tempo de 2secondes */
     $return .= '<META HTTP-EQUIV=REFRESH CONTENT="2; URL=' . $PHP_SELF . '?session=' . $session . '&onglet=traitement_demandes">';
     return $return;
 }
예제 #4
0
 public static function commit_annul_fermeture($fermeture_id, $groupe_id)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $session = session_id();
     $return = '';
     /*****************************/
     // on construit le tableau des users affectés par les fermetures saisies :
     if ($groupe_id == 0) {
         // fermeture pour tous !
         $list_users = get_list_all_users();
     } else {
         $list_users = get_list_users_du_groupe($groupe_id);
     }
     $tab_users = explode(",", $list_users);
     /***********************************************/
     /** suppression des jours de fermetures   **/
     // on suprimme les dates de cette fermeture dans conges_jours_fermeture
     $result = \hr\Fonctions::delete_year_fermeture($fermeture_id, $groupe_id);
     // on va traiter user par user pour annuler sa periode de conges correspondant et lui re-crediter son solde
     foreach ($tab_users as $current_login) {
         $current_login = trim($current_login);
         // on enleve les quotes qui ont été ajoutées lors de la creation de la liste
         $current_login = trim($current_login, "\\'");
         // on recupère les infos de la periode ....
         $sql_credit = 'SELECT p_num, p_nb_jours, p_type FROM conges_periode WHERE p_login="******" AND p_fermeture_id="' . \includes\SQL::quote($fermeture_id) . '" AND p_etat=\'ok\'';
         $result_credit = \includes\SQL::query($sql_credit);
         $row_credit = $result_credit->fetch_array();
         $sql_num_periode = $row_credit['p_num'];
         $sql_nb_jours_a_crediter = $row_credit['p_nb_jours'];
         $sql_type_abs = $row_credit['p_type'];
         // on met à jour la table conges_periode .
         $etat = "annul";
         $sql1 = 'UPDATE conges_periode SET p_etat = "' . \includes\SQL::quote($etat) . '" WHERE p_num=' . \includes\SQL::quote($sql_num_periode) . '" AND p_etat=\'ok\';';
         $ReqLog = \includes\SQL::query($sql1);
         if ($ReqLog && \includes\SQL::getVar('affected_rows')) {
             // mise à jour du solde de jours de conges pour l'utilisateur $current_login
             if ($sql_nb_jours_a_crediter != 0) {
                 $sql1 = 'UPDATE conges_solde_user SET su_solde = su_solde + ' . \includes\SQL::quote($sql_nb_jours_a_crediter) . ' WHERE su_login="******" AND su_abs_id = ' . \includes\SQL::quote($sql_type_abs);
                 $ReqLog = \includes\SQL::query($sql1);
             }
         }
     }
     $return .= '<div class="wrapper">';
     if ($result) {
         $return .= '<br>' . _('form_modif_ok') . '<br><br>';
     } else {
         $return .= '<br>' . _('form_modif_not_ok') . ' !<br><br>';
     }
     // on enregistre cette action dan les logs
     if ($groupe_id == 0) {
         // fermeture pour tous !
         $comment_log = "annulation fermeture {$fermeture_id} (pour tous) ";
     } else {
         $comment_log = "annulation fermeture {$fermeture_id} (pour le groupe {$groupe_id})";
     }
     log_action(0, "", "", $comment_log);
     $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '" method="POST">';
     $return .= '<input class="btn btn-success" type="submit" value="' . _('form_ok') . '">';
     $return .= '</form>';
     $return .= '</div>';
     return $return;
 }