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; }