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;
        }
    }
}
Beispiel #2
0
 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;
 }