Ejemplo n.º 1
0
 public static function ajout_global_groupe($choix_groupe, $tab_new_nb_conges_all, $tab_calcul_proportionnel, $tab_new_comment_all)
 {
     // $tab_new_nb_conges_all[$id_conges]= nb_jours
     // $tab_calcul_proportionnel[$id_conges]= TRUE / FALSE
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $session = session_id();
     $return = '';
     // recup de la liste des users d'un groupe donné
     $list_users = get_list_users_du_groupe($choix_groupe);
     foreach ($tab_new_nb_conges_all as $id_conges => $nb_jours) {
         if ($nb_jours != 0) {
             $comment = $tab_new_comment_all[$id_conges];
             $sql1 = "SELECT u_login, u_quotite FROM conges_users WHERE u_login IN ({$list_users}) ORDER BY u_login ";
             $ReqLog1 = \includes\SQL::query($sql1);
             while ($resultat1 = $ReqLog1->fetch_array()) {
                 $current_login = $resultat1["u_login"];
                 $current_quotite = $resultat1["u_quotite"];
                 if (!isset($tab_calcul_proportionnel[$id_conges]) || $tab_calcul_proportionnel[$id_conges] != TRUE) {
                     $nb_conges = $nb_jours;
                 } else {
                     // pour arrondir au 1/2 le + proche on  fait x 2, on arrondit, puis on divise par 2
                     $nb_conges = ROUND($nb_jours * ($current_quotite / 100) * 2) / 2;
                 }
                 $nb_conges_ok = verif_saisie_decimal($nb_conges);
                 if ($nb_conges_ok) {
                     // 1 : on update conges_solde_user
                     $req_update = "UPDATE conges_solde_user SET su_solde = su_solde+{$nb_conges}\n                            WHERE  su_login = '******' AND su_abs_id = {$id_conges}   ";
                     $ReqLog_update = \includes\SQL::query($req_update);
                     // 2 : on insert l'ajout de conges dans la table periode
                     // recup du nom du groupe
                     $groupename = get_group_name_from_id($choix_groupe);
                     $commentaire = _('resp_ajout_conges_comment_periode_groupe') . " {$groupename}";
                     // ajout conges
                     \responsable\Fonctions::insert_ajout_dans_periode($current_login, $nb_conges, $id_conges, $commentaire);
                 }
             }
             $group_name = get_group_name_from_id($choix_groupe);
             // 3 : Enregistrement du commentaire relatif à l'ajout de jours de congés
             if (!isset($tab_calcul_proportionnel[$id_conges]) || $tab_calcul_proportionnel[$id_conges] != TRUE) {
                 $comment_log = "ajout conges pour groupe {$group_name} ({$nb_jours} jour(s)) ({$comment}) (calcul proportionnel : No)";
             } else {
                 $comment_log = "ajout conges pour groupe {$group_name} ({$nb_jours} jour(s)) ({$comment}) (calcul proportionnel : Yes)";
             }
             log_action(0, "ajout", "groupe", $comment_log);
         }
     }
     $return .= ' ' . _('form_modif_ok') . '<br><br>';
     redirect(ROOT_PATH . 'responsable/resp_index.php?session=' . $session);
     return $return;
 }
Ejemplo n.º 2
0
function recup_tableau_des_users_a_afficher($select_groupe, $DEBUG = FALSE)
{
    // si acces sans authentification est permis : alors droit de voir tout le monde
    // sinon, on verifie si le user a le droite de voir tout le monde
    if ($_SESSION['config']['consult_calendrier_sans_auth'] && !isset($_SESSION['userlogin'])) {
        //si gestion des groupes et un groupe a ete selectionne
        if ($_SESSION['config']['gestion_groupes'] && $select_groupe != 0) {
            $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
            $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' ";
            //recup de la liste des users des groupes dont le user est membre
            $list_users = get_list_users_du_groupe($select_groupe, $DEBUG);
            if ($list_users != "") {
                //si la liste n'est pas vide ( serait le cas si groupe vide)
                $sql1 = $sql1 . " AND u_login IN ({$list_users}) ORDER BY u_nom, u_prenom ";
            }
        } else {
            $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
            //$sql1 = $sql1." WHERE u_login!='conges' AND u_resp_login = '******' ORDER BY u_nom, u_prenom";
            $sql1 = $sql1 . " WHERE u_login!='conges'  AND u_login!='admin' ORDER BY u_nom, u_prenom";
        }
    } else {
        //construction de la requete sql pour recupérer les users à afficher :
        //si le user a le droit de voir tout le monde
        $user_see_all_in_calendrier = get_user_see_all($_SESSION['userlogin']);
        if ($user_see_all_in_calendrier) {
            //si gestion des groupes et un groupe a ete selectionne
            if ($_SESSION['config']['gestion_groupes'] && $select_groupe != 0) {
                $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
                $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' ";
                //recup de la liste des users des groupes dont le user est membre
                $list_users = get_list_users_du_groupe($select_groupe, $DEBUG);
                if ($list_users != "") {
                    //si la liste n'est pas vide ( serait le cas si groupe vide)
                    $sql1 = $sql1 . " AND u_login IN ({$list_users}) ";
                }
                $sql1 = $sql1 . " ORDER BY u_nom, u_prenom";
            } else {
                $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
                //$sql1 = $sql1." WHERE u_login!='conges' AND u_resp_login = '******' ORDER BY u_nom, u_prenom";
                $sql1 = $sql1 . " WHERE u_login!='conges'  AND u_login!='admin' ORDER BY u_nom, u_prenom";
            }
        } else {
            //si gestion des groupes et un groupe a ete selectionne
            if ($_SESSION['config']['gestion_groupes'] && $select_groupe != 0) {
                $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
                $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' ";
                $sql1 = $sql1 . ' AND ( u_login = \'' . SQL::quote($_SESSION['userlogin']) . '\' ';
                //recup de la liste des users des groupes dont le user est membre
                $list_users = get_list_users_du_groupe($select_groupe, $DEBUG);
                if ($list_users != "") {
                    //si la liste n'est pas vide ( serait le cas si groupe vide)
                    $sql1 = $sql1 . " OR u_login IN ({$list_users}) ";
                }
                $sql1 = $sql1 . " ) ";
                $sql1 = $sql1 . " ORDER BY u_nom, u_prenom";
            } else {
                if (!is_resp($_SESSION['userlogin'])) {
                    $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
                    $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' ";
                    //si affichage par groupe : on affiche les membres des groupes du user ($_SESSION['userlogin'])
                    if ($_SESSION['config']['gestion_groupes'] && $_SESSION['config']['affiche_groupe_in_calendrier']) {
                        //recup de la liste des users des groupes dont le user est membre
                        $list_users = get_list_users_des_groupes_du_user($_SESSION['userlogin']);
                        if ($list_users != "") {
                            //si la liste n'est pas vide ( serait le cas si n'est membre d'aucun groupe)
                            $sql1 = $sql1 . " AND u_login IN ({$list_users}) ";
                        }
                    }
                    $sql1 = $sql1 . " ORDER BY u_nom, u_prenom";
                } else {
                    $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users ";
                    $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' ";
                    if ($_SESSION['userlogin'] != "conges") {
                        $sql1 = $sql1 . ' AND ( u_login = \'' . SQL::quote($_SESSION['userlogin']) . '\' ';
                        //si affichage par groupe : on affiche les membres des groupes du user ($_SESSION['userlogin'])
                        if ($_SESSION['config']['gestion_groupes'] && $_SESSION['config']['affiche_groupe_in_calendrier']) {
                            //recup de la liste des users des groupes dont le user est membre
                            $list_users = get_list_users_des_groupes_du_user($_SESSION['userlogin']);
                            if ($list_users != "") {
                                //si la liste n'est pas vide ( serait le cas si n'est membre d'aucun groupe)
                                $sql1 = $sql1 . " OR u_login IN ({$list_users}) ";
                            }
                        }
                        //recup de la liste des users dont le user est responsable
                        $list_users_2 = get_list_all_users_du_resp($_SESSION['userlogin'], $DEBUG);
                        if ($list_users_2 != "") {
                            //si la liste n'est pas vide ( serait le cas si n'est responsable d'aucun groupe)
                            $sql1 = $sql1 . " OR u_login IN ({$list_users_2}) ";
                        }
                        if ($_SESSION['config']['double_validation_conges']) {
                            $list_groupes_3 = get_list_login_du_grand_resp($_SESSION['userlogin']);
                            if (count($list_groupes_3) > 0) {
                                $list_groupes_3 = array_map("SQL::quote", $list_groupes_3);
                                $list_groupes_3 = '\'' . implode('\', \'', $list_groupes_3) . '\'';
                                $sql1 = $sql1 . " OR u_login IN ( {$list_groupes_3} ) ";
                            }
                        }
                        $sql1 = $sql1 . " ) ";
                    }
                    $sql1 = $sql1 . " ORDER BY u_nom, u_prenom";
                }
            }
        }
    }
    $ReqLog = SQL::query($sql1);
    $tab_all_users = array();
    while ($resultat = $ReqLog->fetch_array()) {
        $tab_user = array();
        $tab_user['nom'] = $resultat["u_nom"];
        $tab_user['prenom'] = $resultat["u_prenom"];
        $tab_user['quotite'] = $resultat["u_quotite"];
        $sql_login = $resultat["u_login"];
        $tab_all_users[$sql_login] = $tab_user;
    }
    return $tab_all_users;
}
Ejemplo n.º 3
0
function recup_infos_all_users_du_groupe($group_id)
{
    $tab = array();
    // recup de la liste de tous les users du groupe ...
    $list_all_users_du_groupe = get_list_users_du_groupe($group_id);
    $list_groupes_double_validation = get_list_groupes_double_valid();
    if (strlen($list_all_users_du_groupe) != 0) {
        $tab_users_du_groupe = explode(",", $list_all_users_du_groupe);
        foreach ($tab_users_du_groupe as $current_login) {
            $current_login = trim($current_login);
            $current_login = trim($current_login, "\\'");
            // on enleve les quotes qui ont été ajouté lors de la creation de la liste
            $tab[$current_login] = recup_infos_du_user($current_login, $list_groupes_double_validation);
        }
    }
    return $tab;
}
Ejemplo n.º 4
0
function ajout_global_groupe($choix_groupe, $tab_new_nb_conges_all, $tab_calcul_proportionnel, $tab_new_comment_all, $DEBUG = FALSE)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    // recup de la liste des users d'un groupe donné
    $list_users = get_list_users_du_groupe($choix_groupe, $DEBUG);
    foreach ($tab_new_nb_conges_all as $id_conges => $nb_jours) {
        if ($nb_jours != 0) {
            $comment = $tab_new_comment_all[$id_conges];
            $sql1 = "SELECT u_login, u_quotite FROM conges_users WHERE u_login IN ({$list_users}) ORDER BY u_login ";
            $ReqLog1 = SQL::query($sql1);
            while ($resultat1 = $ReqLog1->fetch_array()) {
                $current_login = $resultat1["u_login"];
                $current_quotite = $resultat1["u_quotite"];
                if (!isset($tab_calcul_proportionnel[$id_conges]) || $tab_calcul_proportionnel[$id_conges] != TRUE) {
                    $nb_conges = $nb_jours;
                } else {
                    // pour arrondir au 1/2 le + proche on  fait x 2, on arrondit, puis on divise par 2
                    $nb_conges = ROUND($nb_jours * ($current_quotite / 100) * 2) / 2;
                }
                $valid = verif_saisie_decimal($nb_conges, $DEBUG);
                if ($valid) {
                    // 1 : on update conges_solde_user
                    $req_update = 'UPDATE conges_solde_user SET su_solde = su_solde+ ' . intval($nb_conges) . '
							WHERE  su_login = \'' . SQL::quote($current_login) . '\' AND su_abs_id = ' . intval($id_conges) . ';';
                    $ReqLog_update = SQL::query($req_update);
                    // 2 : on insert l'ajout de conges dans la table periode
                    // recup du nom du groupe
                    $groupename = get_group_name_from_id($choix_groupe, $DEBUG);
                    $commentaire = _('resp_ajout_conges_comment_periode_groupe') . " {$groupename}";
                    // ajout conges
                    insert_ajout_dans_periode($DEBUG, $current_login, $nb_conges, $id_conges, $commentaire);
                }
            }
            $group_name = get_group_name_from_id($choix_groupe, $DEBUG);
            if (!isset($tab_calcul_proportionnel[$id_conges]) || $tab_calcul_proportionnel[$id_conges] != TRUE) {
                $comment_log = "ajout conges pour groupe {$group_name} ({$nb_jours} jour(s)) ({$comment}) (calcul proportionnel : No)";
            } else {
                $comment_log = "ajout conges pour groupe {$group_name} ({$nb_jours} jour(s)) ({$comment}) (calcul proportionnel : Yes)";
            }
            log_action(0, "ajout", "groupe", $comment_log, $DEBUG);
        }
    }
}
Ejemplo n.º 5
0
function ajout_global_groupe($choix_groupe, $tab_new_nb_conges_all, $tab_calcul_proportionnel, $tab_new_comment_all,  $DEBUG=FALSE)
{
	// $tab_new_nb_conges_all[$id_conges]= nb_jours
	// $tab_calcul_proportionnel[$id_conges]= TRUE / FALSE
	
	$PHP_SELF=$_SERVER['PHP_SELF'];
	$session=session_id() ;
	
	// recup de la liste des users d'un groupe donné 
	$list_users = get_list_users_du_groupe($choix_groupe,  $DEBUG);
	
	foreach($tab_new_nb_conges_all as $id_conges => $nb_jours)
	{
		if($nb_jours!=0)
		{
			$comment = $tab_new_comment_all[$id_conges];

			$sql1="SELECT u_login, u_quotite FROM conges_users WHERE u_login IN ($list_users) ORDER BY u_login ";
			$ReqLog1 = SQL::query($sql1);
				
			while ($resultat1 = $ReqLog1->fetch_array()) 
			{
				$current_login  =$resultat1["u_login"];
				$current_quotite=$resultat1["u_quotite"];
				
				if( (!isset($tab_calcul_proportionnel[$id_conges])) || ($tab_calcul_proportionnel[$id_conges]!=TRUE) )
					$nb_conges=$nb_jours;
				else
					// pour arrondir au 1/2 le + proche on  fait x 2, on arrondit, puis on divise par 2 
					$nb_conges = (ROUND(($nb_jours*($current_quotite/100))*2))/2  ;
				
				// 1 : on update conges_solde_user
				$req_update = "UPDATE conges_solde_user SET su_solde = su_solde+$nb_conges
						WHERE  su_login = '******' AND su_abs_id = $id_conges   ";
				$ReqLog_update = SQL::query($req_update);
				
				// 2 : on insert l'ajout de conges dans la table periode
				// recup du nom du groupe
				$groupename= get_group_name_from_id($choix_groupe,  $DEBUG);
				$commentaire =  _('resp_ajout_conges_comment_periode_groupe') ." $groupename";
			
				// ajout conges
				insert_ajout_dans_periode($DEBUG, $current_login, $nb_conges, $id_conges, $commentaire);
				
/*				// 3 : Enregistrement du commentaire relatif à l'ajout de jours de congés 
				$sql_comment = "INSERT INTO conges_historique_ajout (ha_login, ha_date, ha_abs_id, ha_nb_jours, ha_commentaire)
						  VALUES ('$current_login', NOW(), $id_conges, $nb_conges , '$comment')";
				$ReqLog_comment = SQL::query($sql_comment) ;
*/
			}

			$group_name = get_group_name_from_id($choix_groupe,  $DEBUG);
			if( (!isset($tab_calcul_proportionnel[$id_conges])) || ($tab_calcul_proportionnel[$id_conges]!=TRUE) )
				$comment_log = "ajout conges pour groupe $group_name ($nb_jours jour(s)) ($comment) (calcul proportionnel : No)";
			else
				$comment_log = "ajout conges pour groupe $group_name ($nb_jours jour(s)) ($comment) (calcul proportionnel : Yes)";
			log_action(0, "ajout", "groupe", $comment_log,  $DEBUG);
		}
	}

	if( $DEBUG )
	{
		echo "<form action=\"$PHP_SELF\" method=\"POST\">\n" ;
		echo "<input type=\"hidden\" name=\"session\" value=\"$session\">\n";
		echo "<input type=\"submit\" value=\"". _('form_ok') ."\">\n";
		echo "</form>\n" ;
	}
	else
	{
		echo " ". _('form_modif_ok') ." <br><br> \n";
		redirect( ROOT_PATH .'responsable/resp_index.php?session=' . $session );
	}
}
Ejemplo n.º 6
0
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;
        }
    }
}
Ejemplo n.º 7
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;
 }