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