function verif_periode_chevauche_periode_groupe($date_debut, $date_fin, $num_current_periode = '', $tab_periode_calcul, $groupe_id, $DEBUG = FALSE) { /*****************************/ // 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($DEBUG); } else { $list_users = get_list_users_du_groupe($groupe_id, $DEBUG); } $tab_users = explode(",", $list_users); if ($DEBUG) { echo "tab_users =<br>\n"; print_r($tab_users); echo "<br>\n"; } 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, "\\'"); $comment = ""; if (verif_periode_chevauche_periode_user($date_debut, $date_fin, $current_login, $num_current_periode, $tab_periode_calcul, $comment, $DEBUG)) { return TRUE; } } }
public static function commit_new_fermeture($new_date_debut, $new_date_fin, $groupe_id, $id_type_conges) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $return = ''; // on transforme les formats des dates $tab_date_debut = explode("/", $new_date_debut); // date au format d/m/Y $date_debut = $tab_date_debut[2] . "-" . $tab_date_debut[1] . "-" . $tab_date_debut[0]; $tab_date_fin = explode("/", $new_date_fin); // date au format d/m/Y $date_fin = $tab_date_fin[2] . "-" . $tab_date_fin[1] . "-" . $tab_date_fin[0]; /*****************************/ // 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); //****************************** // !!!! // type d'absence à modifier .... // $id_type_conges = 1 ; //"cp" : conges payes //calcul de l'ID de de la fermeture (en fait l'ID de la saisie de fermeture) $new_fermeture_id = \hr\Fonctions::get_last_fermeture_id() + 1; /***********************************************/ /** enregistrement des jours de fermetures **/ $tab_fermeture = array(); for ($current_date = $date_debut; $current_date <= $date_fin; $current_date = jour_suivant($current_date)) { $tab_fermeture[] = $current_date; } // on insere les nouvelles dates saisies dans conges_jours_fermeture $result = \hr\Fonctions::insert_year_fermeture($new_fermeture_id, $tab_fermeture, $groupe_id); $opt_debut = 'am'; $opt_fin = 'pm'; /*********************************************************/ /** insersion des jours de fermetures pour chaque user **/ 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, "\\'"); if (is_active($current_login)) { // on compte le nb de jour à enlever au user (par periode et au total) // on ne met à jour la table conges_periode $nb_jours = 0; $comment = ""; $nb_jours = compter($current_login, "", $date_debut, $date_fin, $opt_debut, $opt_fin, $comment); // on ne met à jour la table conges_periode . $commentaire = _('divers_fermeture'); $etat = "ok"; $num_periode = insert_dans_periode($current_login, $date_debut, $opt_debut, $date_fin, $opt_fin, $nb_jours, $commentaire, $id_type_conges, $etat, $new_fermeture_id); // mise à jour du solde de jours de conges pour l'utilisateur $current_login if ($nb_jours != 0) { soustrait_solde_et_reliquat_user($current_login, "", $nb_jours, $id_type_conges, $date_debut, $opt_debut, $date_fin, $opt_fin); } } } // on recharge les jours fermés dans les variables de session init_tab_jours_fermeture($_SESSION['userlogin']); $return .= '<div class="wrapper">'; if ($result) { $return .= '<br>' . _('form_modif_ok') . '<br><br>'; } else { $return .= '<br>' . _('form_modif_not_ok') . ' !<br><br>'; } $comment_log = "saisie des jours de fermeture de {$date_debut} a {$date_fin}"; 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; }