Пример #1
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;
}
Пример #2
0
function recup_infos_all_users_du_resp($login)
{
    $tab = array();
    // recup de la liste de tous les users du resp ...
    $list_all_users_du_resp = get_list_all_users_du_resp($login);
    // recup de la liste des groupes à double validation, dont $login est responsable
    // (servira à dire pour chaque user s'il est dans un de ces groupe ou non , donc s'il fait l'objet d'une double valid ou non )
    $list_groups_double_valid_du_resp = get_list_groupes_double_valid_du_resp($login);
    if (strlen($list_all_users_du_resp) != 0) {
        $tab_users_du_resp = explode(",", $list_all_users_du_resp);
        foreach ($tab_users_du_resp 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_groups_double_valid_du_resp);
        }
    }
    return $tab;
}
Пример #3
0
function affichage($user_login,  $year_affichage, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin, $tri_date,  $DEBUG)
{
    $PHP_SELF=$_SERVER['PHP_SELF']; ;
    $session=session_id();

    // on initialise le tableau global des jours fériés s'il ne l'est pas déjà :
    if(!isset($_SESSION["tab_j_feries"]))
    {
        init_tab_jours_feries();
        //print_r($GLOBALS["tab_j_feries"]);   // verif DEBUG
    }

    /********************/
    /* Récupération des informations sur le user : */
    /********************/
    $list_group_dbl_valid_du_resp = get_list_groupes_double_valid_du_resp($_SESSION['userlogin'],  $DEBUG);
    $tab_user=array();
    $tab_user = recup_infos_du_user($user_login, $list_group_dbl_valid_du_resp,  $DEBUG);
    if( $DEBUG ) { echo"tab_user =<br>\n"; print_r($tab_user); echo "<br>\n"; }

    $list_all_users_du_resp=get_list_all_users_du_resp($_SESSION['userlogin'],  $DEBUG);
    if( $DEBUG ) { echo"list_all_users_du_resp = $list_all_users_du_resp<br>\n"; }

    // recup des grd resp du user
    $tab_grd_resp=array();
    if($_SESSION['config']['double_validation_conges'])
    {
        get_tab_grd_resp_du_user($user_login, $tab_grd_resp,  $DEBUG);
        if( $DEBUG ) { echo"tab_grd_resp =<br>\n"; print_r($tab_grd_resp); echo "<br>\n"; }
    }

    /********************/
    /* Titre */
    /********************/
    echo "<h2>". _('resp_traite_user_titre') ." ".$tab_user['prenom']." ".$tab_user['nom'].".</h2>\n\n";


    /********************/
    /* Bilan des Conges */
    /********************/
    // AFFICHAGE TABLEAU
    // affichage du tableau récapitulatif des solde de congés d'un user
    affiche_tableau_bilan_conges_user($user_login);
    echo "<br><br>\n";

    /*************************/
    /* SAISIE NOUVEAU CONGES */
    /*************************/
    // dans le cas ou les users ne peuvent pas saisir de demande, le responsable saisi les congès :
    if( !$_SESSION['config']['user_saisie_demande'] || $_SESSION['config']['resp_saisie_mission'] )
    {

        // si les mois et année ne sont pas renseignés, on prend ceux du jour
        if($year_calendrier_saisie_debut==0)
            $year_calendrier_saisie_debut=date("Y");
        if($mois_calendrier_saisie_debut==0)
            $mois_calendrier_saisie_debut=date("m");
        if($year_calendrier_saisie_fin==0)
            $year_calendrier_saisie_fin=date("Y");
        if($mois_calendrier_saisie_fin==0)
            $mois_calendrier_saisie_fin=date("m");
        if( $DEBUG ) { echo "$mois_calendrier_saisie_debut  $year_calendrier_saisie_debut  -  $mois_calendrier_saisie_fin  $year_calendrier_saisie_fin<br>\n"; }

        echo "<H3>". _('resp_traite_user_new_conges') ."</H3>\n\n";

        //affiche le formulaire de saisie d'une nouvelle demande de conges ou d'un  nouveau conges
        $onglet = "traite_user";
        saisie_nouveau_conges($user_login, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin, $onglet);

        echo "<hr align=\"center\" size=\"2\" width=\"90%\"> \n";
    }

    /*********************/
    /* Etat des Demandes */
    /*********************/
    if($_SESSION['config']['user_saisie_demande'])
    {
        //verif si le user est bien un user du resp (et pas seulement du grand resp)
        if(strstr($list_all_users_du_resp, "'$user_login'")!=FALSE)
        {
            echo "<h3>". _('resp_traite_user_etat_demandes') ."</h3>\n";

            //affiche l'état des demandes du user (avec le formulaire pour le responsable)
            affiche_etat_demande_user_for_resp($user_login, $tab_user, $tab_grd_resp,  $DEBUG);

            echo "<hr align=\"center\" size=\"2\" width=\"90%\"> \n";
        }
    }

    /*********************/
    /* Etat des Demandes en attente de 2ieme validation */
    /*********************/
    if($_SESSION['config']['double_validation_conges'])
    {
        /*******************************/
        /* verif si le resp est grand_responsable pour ce user*/

        if(in_array($_SESSION['userlogin'], $tab_grd_resp)) // si resp_login est dans le tableau
        {
            echo "<h3>". _('resp_traite_user_etat_demandes_2_valid') ."</h3>\n";

            //affiche l'état des demande en attente de 2ieme valid du user (avec le formulaire pour le responsable)
            affiche_etat_demande_2_valid_user_for_resp($user_login,  $DEBUG);

            echo "<hr align=\"center\" size=\"2\" width=\"90%\"> \n";
        }
    }

    /*******************/
    /* Etat des Conges */
    /*******************/
    echo "<h3>". _('resp_traite_user_etat_conges') ."</h3>\n";

    //affiche l'état des conges du user (avec le formulaire pour le responsable)
    affiche_etat_conges_user_for_resp($user_login,  $year_affichage, $tri_date, $onglet, $DEBUG);

    //echo "<hr align=\"center\" size=\"2\" width=\"90%\"> \n";


    echo "<td valign=\"middle\">\n";
    echo "</td></tr></table>\n";
    echo "<center>\n";

}
Пример #4
0
function ajout_global($tab_new_nb_conges_all, $tab_calcul_proportionnel, $tab_new_comment_all,  $DEBUG=FALSE)
{
	$PHP_SELF=$_SERVER['PHP_SELF'];
	$session=session_id() ;
	
	// $tab_new_nb_conges_all[$id_conges]= nb_jours
	// $tab_calcul_proportionnel[$id_conges]= TRUE / FALSE
	
	// recup de la liste de TOUS les users dont $resp_login est responsable 
	// (prend en compte le resp direct, les groupes, le resp virtuel, etc ...)
	// renvoit une liste de login entre quotes et séparés par des virgules
	$list_users_du_resp = get_list_all_users_du_resp($_SESSION['userlogin'],  $DEBUG);
	if( $DEBUG ) { echo "list_all_users_du_resp = $list_users_du_resp<br>\n";}
	
	if( $DEBUG ) { echo "tab_new_nb_conges_all = <br>"; print_r($tab_new_nb_conges_all); echo "<br>\n" ;}
	if( $DEBUG ) { echo "tab_calcul_proportionnel = <br>"; print_r($tab_calcul_proportionnel); echo "<br>\n" ;}

	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_du_resp) 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 : update de la table 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 GLOBAL (pour tous les users) dans la table periode
				$commentaire =  _('resp_ajout_conges_comment_periode_all') ;
				// 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 
				$comment = $tab_new_comment_all[$id_conges];
				$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) ;
*/
			}

			if( (!isset($tab_calcul_proportionnel[$id_conges])) || ($tab_calcul_proportionnel[$id_conges]!=TRUE) )
				$comment_log = "ajout conges global ($nb_jours jour(s)) ($comment) (calcul proportionnel : No)";
			else
				$comment_log = "ajout conges global ($nb_jours jour(s)) ($comment) (calcul proportionnel : Yes)";
			log_action(0, "ajout", "tous", $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";
		/* APPEL D'UNE AUTRE PAGE au bout d'une tempo de 2secondes */
		redirect( ROOT_PATH .'responsable/resp_index.php?session=' . $session );
	}
}
Пример #5
0
 public static function affichage($user_login, $year_affichage, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin, $tri_date)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $session = session_id();
     $return = '';
     // on initialise le tableau global des jours fériés s'il ne l'est pas déjà :
     if (!isset($_SESSION["tab_j_feries"])) {
         init_tab_jours_feries();
     }
     /********************/
     /* Récupération des informations sur le user : */
     /********************/
     $list_group_dbl_valid_du_resp = get_list_groupes_double_valid_du_resp($_SESSION['userlogin']);
     $tab_user = array();
     $tab_user = recup_infos_du_user($user_login, $list_group_dbl_valid_du_resp);
     $list_all_users_du_resp = get_list_all_users_du_resp($_SESSION['userlogin']);
     // recup des grd resp du user
     $tab_grd_resp = array();
     if ($_SESSION['config']['double_validation_conges']) {
         get_tab_grd_resp_du_user($user_login, $tab_grd_resp);
     }
     include_once ROOT_PATH . 'fonctions_javascript.php';
     /********************/
     /* Titre */
     /********************/
     $return .= '<h1>' . $tab_user['prenom'] . ' ' . $tab_user['nom'] . '</h1>';
     /********************/
     /* Bilan des Conges */
     /********************/
     // AFFICHAGE TABLEAU
     // affichage du tableau récapitulatif des solde de congés d'un user
     $return .= affiche_tableau_bilan_conges_user($user_login);
     $return .= '<hr/>';
     /*************************/
     /* SAISIE NOUVEAU CONGES */
     /*************************/
     // dans le cas ou les users ne peuvent pas saisir de demande, le responsable saisi les congès :
     if (!$_SESSION['config']['user_saisie_demande'] || $_SESSION['config']['resp_saisie_mission']) {
         // si les mois et année ne sont pas renseignés, on prend ceux du jour
         if ($year_calendrier_saisie_debut == 0) {
             $year_calendrier_saisie_debut = date("Y");
         }
         if ($mois_calendrier_saisie_debut == 0) {
             $mois_calendrier_saisie_debut = date("m");
         }
         if ($year_calendrier_saisie_fin == 0) {
             $year_calendrier_saisie_fin = date("Y");
         }
         if ($mois_calendrier_saisie_fin == 0) {
             $mois_calendrier_saisie_fin = date("m");
         }
         $return .= '<h2>' . _('resp_traite_user_new_conges') . '</h2>';
         //affiche le formulaire de saisie d'une nouvelle demande de conges ou d'un  nouveau conges
         $onglet = "traite_user";
         $return .= saisie_nouveau_conges2($user_login, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin, $onglet);
         $return .= '<hr/>';
     }
     /*********************/
     /* Etat des Demandes */
     /*********************/
     if ($_SESSION['config']['user_saisie_demande']) {
         //verif si le user est bien un user du resp (et pas seulement du grand resp)
         if (strstr($list_all_users_du_resp, "'{$user_login}'") != FALSE) {
             $return .= '<h2>' . _('resp_traite_user_etat_demandes') . '</h2>';
             //affiche l'état des demandes du user (avec le formulaire pour le responsable)
             $return .= \responsable\Fonctions::affiche_etat_demande_user_for_resp($user_login, $tab_user, $tab_grd_resp);
             $return .= '<hr/>';
         }
     }
     /*********************/
     /* Etat des Demandes en attente de 2ieme validation */
     /*********************/
     if ($_SESSION['config']['double_validation_conges']) {
         /*******************************/
         /* verif si le resp est grand_responsable pour ce user*/
         if (in_array($_SESSION['userlogin'], $tab_grd_resp)) {
             $return .= '<h2>' . _('resp_traite_user_etat_demandes_2_valid') . '</h2>';
             //affiche l'état des demande en attente de 2ieme valid du user (avec le formulaire pour le responsable)
             $return .= \responsable\Fonctions::affiche_etat_demande_2_valid_user_for_resp($user_login);
             $return .= '<hr/>';
         }
     }
     /*******************/
     /* Etat des Conges */
     /*******************/
     //affiche l'état des conges du user (avec le formulaire pour le responsable)
     $onglet = "traite_user";
     $return .= \responsable\Fonctions::affiche_etat_conges_user_for_resp($user_login, $year_affichage, $tri_date, $onglet);
     return $return;
 }