Example #1
0
function saisie_ajout($tab_type_conges, $DEBUG)
{
    //$DEBUG;
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    // recup du tableau des types de conges (seulement les congesexceptionnels )
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels();
        if ($DEBUG) {
            echo "tab_type_conges_exceptionnels = ";
            print_r($tab_type_conges_exceptionnels);
            echo "<br><br>\n";
        }
    } else {
        $tab_type_conges_exceptionnels = array();
    }
    // recup de la liste de TOUS les users pour le RH
    // (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
    $tab_all_users_du_hr = recup_infos_all_users_du_hr($_SESSION['userlogin']);
    $tab_all_users_du_grand_resp = recup_infos_all_users_du_grand_resp($_SESSION['userlogin']);
    if ($DEBUG) {
        echo "tab_all_users_du_hr =<br>\n";
        print_r($tab_all_users_du_hr);
        echo "<br>\n";
    }
    if ($DEBUG) {
        echo "tab_all_users_du_grand_resp =<br>\n";
        print_r($tab_all_users_du_grand_resp);
        echo "<br>\n";
    }
    if (count($tab_all_users_du_hr) != 0 || count($tab_all_users_du_grand_resp) != 0) {
        /************************************************************/
        /* SAISIE GLOBALE pour tous les utilisateurs du responsable */
        affichage_saisie_globale_pour_tous($tab_type_conges, $DEBUG);
        echo "<br>\n";
        /***********************************************************************/
        /* SAISIE GROUPE pour tous les utilisateurs d'un groupe du responsable */
        if ($_SESSION['config']['gestion_groupes']) {
            affichage_saisie_globale_groupe($tab_type_conges, $DEBUG);
        }
        echo "<br>\n";
        /************************************************************/
        /* SAISIE USER PAR USER pour tous les utilisateurs du responsable */
        affichage_saisie_user_par_user($tab_type_conges, $tab_type_conges_exceptionnels, $tab_all_users_du_hr, $tab_all_users_du_grand_resp, $DEBUG);
        echo "<br>\n";
    } else {
        echo _('resp_etat_aucun_user') . "<br>\n";
    }
}
function affiche_all_demandes_en_cours($tab_type_conges, $DEBUG = FALSE)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    $count1 = 0;
    $count2 = 0;
    $tab_type_all_abs = recup_tableau_tout_types_abs();
    // recup du tableau des types de conges (seulement les conges exceptionnels)
    $tab_type_conges_exceptionnels = array();
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG);
    }
    /*********************************/
    // Récupération des informations
    /*********************************/
    // Récup dans un tableau de tableau des informations de tous les users dont $_SESSION['userlogin'] est responsable sauf lui meme
    $tab_all_users_du_resp = recup_infos_all_users_du_resp($_SESSION['userlogin'], $DEBUG);
    if ($DEBUG) {
        echo "tab_all_users_du_resp :<br>\n";
        print_r($tab_all_users_du_resp);
        echo "<br><br>\n";
    }
    // si tableau des users du resp n'est pas vide
    if (count($tab_all_users_du_resp) != 0) {
        // constitution de la liste (séparé par des virgules) des logins ...
        $list_users_du_resp = "";
        foreach ($tab_all_users_du_resp as $current_login => $tab_current_user) {
            if ($list_users_du_resp == "") {
                $list_users_du_resp = "'{$current_login}'";
            } else {
                $list_users_du_resp = $list_users_du_resp . ", '{$current_login}'";
            }
        }
    }
    // Récup dans un tableau de tableau des informations de tous les users dont $_SESSION['userlogin'] est GRAND responsable
    if ($_SESSION['config']['double_validation_conges']) {
        $tab_all_users_du_grand_resp = recup_infos_all_users_du_grand_resp($_SESSION['userlogin'], $DEBUG);
        // si tableau des users du grand resp n'est pas vide
        if (count($tab_all_users_du_grand_resp) != 0) {
            // constitution de la liste (séparé par des virgules) des logins ...
            $list_users_du_grand_resp = "";
            foreach ($tab_all_users_du_grand_resp as $current_login => $tab_current_user) {
                if ($list_users_du_grand_resp == "") {
                    $list_users_du_grand_resp = "'{$current_login}'";
                } else {
                    $list_users_du_grand_resp = $list_users_du_grand_resp . ", '{$current_login}'";
                }
            }
        }
    }
    /*********************************/
    echo " <form action=\"{$PHP_SELF}?session={$session}&onglet=traitement_demandes\" method=\"POST\"> \n";
    /*********************************/
    /* TABLEAU DES DEMANDES DES USERS DONT ON EST LE RESP */
    /*********************************/
    // si tableau des users du resp n'est pas vide
    if (count($tab_all_users_du_resp) != 0) {
        // Récup des demandes en cours pour les users dont $_SESSION['userlogin'] est responsable :
        $sql1 = "SELECT p_num, p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_date_demande, p_date_traitement FROM conges_periode ";
        $sql1 = $sql1 . " WHERE p_etat =\"demande\" ";
        if ($_SESSION['config']['responsable_virtuel']) {
            $sql1 = $sql1 . " AND p_login != 'conges' ";
        } else {
            $sql1 = $sql1 . " AND p_login IN ({$list_users_du_resp}) ";
        }
        $sql1 = $sql1 . " ORDER BY p_num";
        $ReqLog1 = SQL::query($sql1);
        $count1 = $ReqLog1->num_rows;
        if ($count1 != 0) {
            // AFFICHAGE TABLEAU DES DEMANDES EN COURS
            echo "<h3>" . _('resp_traite_demandes_titre_tableau_1') . "</h3>\n";
            echo "<table cellpadding=\"2\" class=\"tablo\">\n";
            echo '<thead>';
            echo '<tr>';
            echo '<th>' . _('divers_nom_maj_1') . "<br>" . _('divers_prenom_maj_1') . '</th>';
            echo '<th>' . _('divers_quotite_maj_1') . '</th>';
            echo '<th>' . _('divers_debut_maj_1') . '</th>';
            echo '<th>' . _('divers_fin_maj_1') . '</th>';
            echo '<th>' . _('divers_comment_maj_1') . '</th>';
            echo '<th>' . _('resp_traite_demandes_nb_jours') . '</th>';
            foreach ($tab_type_conges as $id_conges => $libelle) {
                echo '<th>' . _('divers_solde_maj_1') . "<br>{$libelle}</th>";
            }
            if ($_SESSION['config']['gestion_conges_exceptionnels']) {
                foreach ($tab_type_conges_exceptionnels as $id_conges => $libelle) {
                    echo '<th>' . _('divers_solde_maj_1') . "<br>{$libelle}</th>";
                }
            }
            echo '<th>' . _('divers_type_maj_1') . '</th>';
            echo '<th>' . _('divers_accepter_maj_1') . '</th>';
            echo '<th>' . _('divers_refuser_maj_1') . '</th>';
            echo '<th>' . _('resp_traite_demandes_attente') . '</th>';
            echo '<th>' . _('resp_traite_demandes_motif_refus') . '</th>';
            if ($_SESSION['config']['affiche_date_traitement']) {
                echo '<th>' . _('divers_date_traitement') . '</th>';
            }
            echo '</tr>';
            echo '</thead>';
            echo '<tbody>';
            $i = true;
            $tab_bt_radio = array();
            while ($resultat1 = $ReqLog1->fetch_array()) {
                /** sur la ligne ,   **/
                /** le 1er bouton radio est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--OK"> */
                /**  et le 2ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--not_OK"> */
                /**  et le 3ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--RIEN"> */
                $sql_p_date_deb = $resultat1["p_date_deb"];
                $sql_p_date_fin = $resultat1["p_date_fin"];
                $sql_p_date_deb_fr = eng_date_to_fr($resultat1["p_date_deb"]);
                $sql_p_date_fin_fr = eng_date_to_fr($resultat1["p_date_fin"]);
                $sql_p_demi_jour_deb = $resultat1["p_demi_jour_deb"];
                $sql_p_demi_jour_fin = $resultat1["p_demi_jour_fin"];
                $sql_p_commentaire = $resultat1["p_commentaire"];
                $sql_p_num = $resultat1["p_num"];
                $sql_p_login = $resultat1["p_login"];
                $sql_p_nb_jours = affiche_decimal($resultat1["p_nb_jours"]);
                $sql_p_type = $resultat1["p_type"];
                $sql_p_date_demande = $resultat1["p_date_demande"];
                $sql_p_date_traitement = $resultat1["p_date_traitement"];
                if ($sql_p_demi_jour_deb == "am") {
                    $demi_j_deb = "mat";
                } else {
                    $demi_j_deb = "aprm";
                }
                if ($sql_p_demi_jour_fin == "am") {
                    $demi_j_fin = "mat";
                } else {
                    $demi_j_fin = "aprm";
                }
                // on construit la chaine qui servira de valeur à passer dans les boutons-radio
                $chaine_bouton_radio = "{$sql_p_login}--{$sql_p_nb_jours}--{$sql_p_type}--{$sql_p_date_deb}--{$sql_p_demi_jour_deb}--{$sql_p_date_fin}--{$sql_p_demi_jour_fin}";
                // si le user fait l'objet d'une double validation on a pas le meme resultat sur le bouton !
                if ($tab_all_users_du_resp[$sql_p_login]['double_valid'] == "Y") {
                    // si on est a la fois resp et grand resp
                    if (count($tab_all_users_du_grand_resp) != 0 && array_key_exists($sql_p_login, $tab_all_users_du_grand_resp)) {
                        $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">";
                    } else {
                        //on est QUe resp
                        $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--VALID\">";
                    }
                } else {
                    $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">";
                }
                $boutonradio2 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--not_OK\">";
                $boutonradio3 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--RIEN\" checked>";
                $text_refus = "<input type=\"text\" name=\"tab_text_refus[{$sql_p_num}]\" size=\"20\" max=\"100\">";
                echo '<tr class="' . ($i ? 'i' : 'p') . '">';
                echo "<td><b>" . $tab_all_users_du_resp[$sql_p_login]['nom'] . "</b><br>" . $tab_all_users_du_resp[$sql_p_login]['prenom'] . "</td><td>" . $tab_all_users_du_resp[$sql_p_login]['quotite'] . "%</td>";
                echo "<td>{$sql_p_date_deb_fr} _ {$demi_j_deb}</td><td>{$sql_p_date_fin_fr} _ {$demi_j_fin}</td><td>{$sql_p_commentaire}</td><td><b>{$sql_p_nb_jours}</b></td>";
                $tab_conges = $tab_all_users_du_resp[$sql_p_login]['conges'];
                foreach ($tab_type_conges as $id_conges => $libelle) {
                    echo '<td>' . $tab_conges[$libelle]['solde'] . '</td>';
                }
                if ($_SESSION['config']['gestion_conges_exceptionnels']) {
                    foreach ($tab_type_conges_exceptionnels as $id_conges => $libelle) {
                        echo '<td>' . $tab_conges[$libelle]['solde'] . '</td>';
                    }
                }
                echo '<td>' . $tab_type_all_abs[$sql_p_type]['libelle'] . '</td>';
                echo "<td>{$boutonradio1}</td><td>{$boutonradio2}</td><td>{$boutonradio3}</td><td>{$text_refus}</td>\n";
                if ($_SESSION['config']['affiche_date_traitement']) {
                    echo "<td class=\"histo-left\">" . _('divers_demande') . " : {$sql_p_date_demande}<br>" . _('divers_traitement') . " : {$sql_p_date_traitement}</td>\n";
                }
                echo '</tr>';
                $i = !$i;
            }
            // while
            echo '</tbody>';
            echo '</table>';
        }
        //if($count1!=0)
    }
    //if( count($tab_all_users_du_resp)!=0 )
    /*********************************/
    /* TABLEAU DES DEMANDES DES USERS DONT ON EST LE GRAND RESP */
    /*********************************/
    if ($_SESSION['config']['double_validation_conges']) {
        // si tableau des users du grand resp n'est pas vide
        if (count($tab_all_users_du_grand_resp) != 0) {
            // Récup des demandes en cours pour les users dont $_SESSION['userlogin'] est GRAND responsable :
            $sql2 = "SELECT p_num, p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_date_demande, p_date_traitement FROM conges_periode ";
            $sql2 = $sql2 . " WHERE p_etat =\"valid\" ";
            $sql2 = $sql2 . " AND p_login IN ({$list_users_du_grand_resp}) ";
            $sql2 = $sql2 . " ORDER BY p_num";
            $ReqLog2 = SQL::query($sql2);
            $count2 = $ReqLog2->num_rows;
            if ($count2 != 0) {
                // AFFICHAGE TABLEAU DES DEMANDES EN COURS POUR DEUXIEME VALIDATION
                echo "<h3>" . _('resp_traite_demandes_titre_tableau_2') . "</h3>\n";
                echo "<table cellpadding=\"2\" class=\"tablo\">\n";
                echo '<thead>';
                echo '<tr>';
                echo "<th><b>" . _('divers_nom_maj_1') . "</b><br>" . _('divers_prenom_maj_1') . '</th>';
                echo '<th>' . _('divers_quotite_maj_1') . '</th>';
                echo '<th>' . _('divers_debut_maj_1') . '</th>';
                echo '<th>' . _('divers_fin_maj_1') . '</th>';
                echo '<th>' . _('divers_comment_maj_1') . '</th>';
                echo '<th>' . _('resp_traite_demandes_nb_jours') . '</th>';
                foreach ($tab_type_conges as $id_conges => $libelle) {
                    echo '<th>' . _('divers_solde_maj_1') . "<br>{$libelle}</th>";
                }
                echo '<th>' . _('divers_type_maj_1') . '</th>';
                echo '<th>' . _('divers_accepter_maj_1') . '</th>';
                echo '<th>' . _('divers_refuser_maj_1') . '</th>';
                echo '<th>' . _('resp_traite_demandes_attente') . '</th>';
                echo '<th>' . _('resp_traite_demandes_motif_refus') . '</th>';
                if ($_SESSION['config']['affiche_date_traitement']) {
                    echo '<th>' . _('divers_date_traitement') . '</th>';
                }
                echo '</tr>';
                echo '</thead>';
                echo '<tbody>';
                $tab_bt_radio = array();
                $i = true;
                while ($resultat2 = $ReqLog2->fetch_array()) {
                    /** sur la ligne ,   **/
                    /** le 1er bouton radio est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--OK"> */
                    /**  et le 2ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--not_OK"> */
                    /**  et le 3ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--RIEN"> */
                    $sql_p_date_deb = $resultat2["p_date_deb"];
                    $sql_p_date_fin = $resultat2["p_date_fin"];
                    $sql_p_date_deb_fr = eng_date_to_fr($resultat2["p_date_deb"]);
                    $sql_p_date_fin_fr = eng_date_to_fr($resultat2["p_date_fin"]);
                    $sql_p_demi_jour_deb = $resultat2["p_demi_jour_deb"];
                    $sql_p_demi_jour_fin = $resultat2["p_demi_jour_fin"];
                    $sql_p_commentaire = $resultat2["p_commentaire"];
                    $sql_p_num = $resultat2["p_num"];
                    $sql_p_login = $resultat2["p_login"];
                    $sql_p_nb_jours = affiche_decimal($resultat2["p_nb_jours"]);
                    $sql_p_type = $resultat2["p_type"];
                    $sql_p_date_demande = $resultat2["p_date_demande"];
                    $sql_p_date_traitement = $resultat2["p_date_traitement"];
                    if ($sql_p_demi_jour_deb == "am") {
                        $demi_j_deb = "mat";
                    } else {
                        $demi_j_deb = "aprm";
                    }
                    if ($sql_p_demi_jour_fin == "am") {
                        $demi_j_fin = "mat";
                    } else {
                        $demi_j_fin = "aprm";
                    }
                    // on construit la chaine qui servira de valeur à passer dans les boutons-radio
                    $chaine_bouton_radio = "{$sql_p_login}--{$sql_p_nb_jours}--{$sql_p_type}--{$sql_p_date_deb}--{$sql_p_demi_jour_deb}--{$sql_p_date_fin}--{$sql_p_demi_jour_fin}";
                    $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">";
                    $boutonradio2 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--not_OK\">";
                    $boutonradio3 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--RIEN\" checked>";
                    $text_refus = "<input type=\"text\" name=\"tab_text_refus[{$sql_p_num}]\" size=\"20\" max=\"100\">";
                    echo '<tr class="' . ($i ? 'i' : 'p') . '">';
                    echo "<td><b>" . $tab_all_users_du_grand_resp[$sql_p_login]['nom'] . "</b><br>" . $tab_all_users_du_grand_resp[$sql_p_login]['prenom'] . "</td><td>" . $tab_all_users_du_grand_resp[$sql_p_login]['quotite'] . "%</td>";
                    echo "<td>{$sql_p_date_deb_fr} _ {$demi_j_deb}</td><td>{$sql_p_date_fin_fr} _ {$demi_j_fin}</td><td>{$sql_p_commentaire}</td><td><b>{$sql_p_nb_jours}</b></td>";
                    $tab_conges = $tab_all_users_du_grand_resp[$sql_p_login]['conges'];
                    foreach ($tab_type_conges as $id_conges => $libelle) {
                        echo '<td>' . $tab_conges[$libelle]['solde'] . '</td>';
                    }
                    echo '<td>' . $tab_type_all_abs[$sql_p_type]['libelle'] . '</td>';
                    echo "<td>{$boutonradio1}</td><td>{$boutonradio2}</td><td>{$boutonradio3}</td><td>{$text_refus}</td>\n";
                    if ($_SESSION['config']['affiche_date_traitement']) {
                        echo "<td class=\"histo-left\">" . _('divers_demande') . " : {$sql_p_date_demande}<br>" . _('divers_traitement') . " : {$sql_p_date_traitement}</td>\n";
                    }
                    echo '</tr>';
                    $i = !$i;
                }
                //while
                echo '</tbody>';
                echo '</table>';
            }
            //if($count2!=0)
        }
        //if( count($tab_all_users_du_grand_resp)!=0 )
    }
    //if($_SESSION['config']['double_validation_conges'])
    echo "<br>\n";
    if ($count1 == 0 && $count2 == 0) {
        echo "<b>" . _('resp_traite_demandes_aucune_demande') . "</b><br><br><br>\n";
    } else {
        echo "<input type=\"submit\" value=\"" . _('form_submit') . "\">\n";
    }
    echo " </form> \n";
}
Example #3
0
function cloture_globale($tab_type_conges, $DEBUG = FALSE)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    // 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
    $tab_all_users_du_hr = recup_infos_all_users_du_hr($_SESSION['userlogin']);
    $tab_all_users_du_grand_resp = recup_infos_all_users_du_grand_resp($_SESSION['userlogin']);
    if ($DEBUG) {
        echo "tab_all_users_du_hr =<br>\n";
        print_r($tab_all_users_du_hr);
        echo "<br>\n";
    }
    if ($DEBUG) {
        echo "tab_all_users_du_grand_resp =<br>\n";
        print_r($tab_all_users_du_grand_resp);
        echo "<br>\n";
    }
    if ($DEBUG) {
        echo "tab_type_conges =<br>\n";
        print_r($tab_type_conges);
        echo "<br>\n";
    }
    $comment_cloture = _('resp_cloture_exercice_commentaire') . " " . date("m/Y");
    if (count($tab_all_users_du_hr) != 0 || count($tab_all_users_du_grand_resp) != 0) {
        // traitement des users dont on est responsable :
        foreach ($tab_all_users_du_hr as $current_login => $tab_current_user) {
            cloture_current_year_for_login($current_login, $tab_current_user, $tab_type_conges, $comment_cloture, $DEBUG);
        }
    }
}
function cloture_globale($tab_type_conges,  $DEBUG=FALSE)
{
	$PHP_SELF=$_SERVER['PHP_SELF'];
	$session=session_id(); 

	// 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
	$tab_all_users_du_resp=recup_infos_all_users_du_resp($_SESSION['userlogin']);
	$tab_all_users_du_grand_resp=recup_infos_all_users_du_grand_resp($_SESSION['userlogin']);
	if( $DEBUG ) { echo "tab_all_users_du_resp =<br>\n"; print_r($tab_all_users_du_resp); echo "<br>\n"; }
	if( $DEBUG ) { echo "tab_all_users_du_grand_resp =<br>\n"; print_r($tab_all_users_du_grand_resp); echo "<br>\n"; }
	if( $DEBUG ) { echo "tab_type_conges =<br>\n"; print_r($tab_type_conges); echo "<br>\n"; }
	
	$comment_cloture =  _('resp_cloture_exercice_commentaire') ." ".date("m/Y");

	if( (count($tab_all_users_du_resp)!=0) || (count($tab_all_users_du_grand_resp)!=0) )
	{
		// traitement des users dont on est responsable :
		foreach($tab_all_users_du_resp as $current_login => $tab_current_user)
		{		
			cloture_current_year_for_login($current_login, $tab_current_user, $tab_type_conges, $comment_cloture,  $DEBUG);
		}
		// traitement des users dont on est grand responsable :
		if( ($_SESSION['config']['double_validation_conges']) && ($_SESSION['config']['grand_resp_ajout_conges']) )
		{
			foreach($tab_all_users_du_grand_resp as $current_login => $tab_current_user)
			{		
				cloture_current_year_for_login($current_login, $tab_current_user, $tab_type_conges, $comment_cloture,  $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 */
		echo "<META HTTP-EQUIV=REFRESH CONTENT=\"2; URL=$PHP_SELF?session=$session\">";
	}

}
Example #5
0
 public static function affiche_all_demandes_en_cours($tab_type_conges)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $session = session_id();
     $count1 = 0;
     $count2 = 0;
     $return = '';
     $tab_type_all_abs = recup_tableau_tout_types_abs();
     // recup du tableau des types de conges (seulement les conges exceptionnels)
     $tab_type_conges_exceptionnels = array();
     if ($_SESSION['config']['gestion_conges_exceptionnels']) {
         $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels();
     }
     /*********************************/
     // Récupération des informations
     /*********************************/
     // Récup dans un tableau de tableau des informations de tous les users dont $_SESSION['userlogin'] est responsable
     $tab_all_users_du_resp = recup_infos_all_users_du_resp($_SESSION['userlogin']);
     // si tableau des users du resp n'est pas vide
     if (count($tab_all_users_du_resp) != 0) {
         // constitution de la liste (séparé par des virgules) des logins ...
         $list_users_du_resp = "";
         foreach ($tab_all_users_du_resp as $current_login => $tab_current_user) {
             if ($list_users_du_resp == "") {
                 $list_users_du_resp = "'{$current_login}'";
             } else {
                 $list_users_du_resp = $list_users_du_resp . ", '{$current_login}'";
             }
         }
     }
     // Récup dans un tableau de tableau des informations de tous les users dont $_SESSION['userlogin'] est GRAND responsable
     if ($_SESSION['config']['double_validation_conges']) {
         $tab_all_users_du_grand_resp = recup_infos_all_users_du_grand_resp($_SESSION['userlogin']);
         // si tableau des users du grand resp n'est pas vide
         if (count($tab_all_users_du_grand_resp) != 0) {
             // constitution de la liste (séparé par des virgules) des logins ...
             $list_users_du_grand_resp = "";
             foreach ($tab_all_users_du_grand_resp as $current_login => $tab_current_user) {
                 if ($list_users_du_grand_resp == "") {
                     $list_users_du_grand_resp = "'{$current_login}'";
                 } else {
                     $list_users_du_grand_resp = $list_users_du_grand_resp . ", '{$current_login}'";
                 }
             }
         }
     }
     /*********************************/
     $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '&onglet=traitement_demandes" method="POST">';
     /*********************************/
     /* TABLEAU DES DEMANDES DES USERS DONT ON EST LE RESP */
     /*********************************/
     // si tableau des users du resp n'est pas vide
     if (count($tab_all_users_du_resp) != 0) {
         // Récup des demandes en cours pour les users dont $_SESSION['userlogin'] est responsable :
         $sql1 = "SELECT p_num, p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_date_demande, p_date_traitement FROM conges_periode ";
         $sql1 = $sql1 . " WHERE p_etat =\"demande\" ";
         $sql1 = $sql1 . " AND p_login IN ({$list_users_du_resp})  ";
         $sql1 = $sql1 . " ORDER BY p_num";
         $ReqLog1 = \includes\SQL::query($sql1);
         $count1 = $ReqLog1->num_rows;
         if ($count1 != 0) {
             // AFFICHAGE TABLEAU DES DEMANDES EN COURS
             $return .= '<h3>' . _('resp_traite_demandes_titre_tableau_1') . '</h3>';
             $return .= '<table cellpadding="2" class="table table-hover table-responsive table-condensed table-striped">';
             $return .= '<thead>';
             $return .= '<tr>';
             $return .= '<th>' . _('divers_nom_maj_1') . '<br>' . _('divers_prenom_maj_1') . '</th>';
             $return .= '<th>' . _('divers_quotite_maj_1') . '</th>';
             $return .= '<th>' . _('divers_type_maj_1') . '</th>';
             $return .= '<th>' . _('divers_debut_maj_1') . '</th>';
             $return .= '<th>' . _('divers_fin_maj_1') . '</th>';
             $return .= '<th>' . _('divers_comment_maj_1') . '</th>';
             $return .= '<th>' . _('resp_traite_demandes_nb_jours') . '</th>';
             // foreach($tab_type_conges as $id_conges => $libelle)
             // {
             // 	echo "<th>". _('divers_solde_maj_1') ."<br>$libelle</th>" ;
             // }
             // if ($_SESSION['config']['gestion_conges_exceptionnels'])
             // foreach($tab_type_conges_exceptionnels as $id_conges => $libelle)
             // {
             // 	echo "<th>". _('divers_solde_maj_1') ."<br>$libelle</th>" ;
             // }
             $return .= '<th>' . _('divers_solde') . '</th>';
             $return .= '<th>' . _('divers_accepter_maj_1') . '</th>';
             $return .= '<th>' . _('divers_refuser_maj_1') . '</th>';
             $return .= '<th>' . _('resp_traite_demandes_attente') . '</th>';
             $return .= '<th>' . _('resp_traite_demandes_motif_refus') . '</th>';
             if ($_SESSION['config']['affiche_date_traitement']) {
                 $return .= '<th>' . _('divers_date_traitement') . '</th>';
             }
             $return .= '</tr>';
             $return .= '</thead>';
             $return .= '<tbody>';
             $i = true;
             $tab_bt_radio = array();
             while ($resultat1 = $ReqLog1->fetch_array()) {
                 /** sur la ligne ,   **/
                 /** le 1er bouton radio est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--OK"> */
                 /**  et le 2ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--not_OK"> */
                 /**  et le 3ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--RIEN"> */
                 $sql_p_date_deb = $resultat1["p_date_deb"];
                 $sql_p_date_deb_fr = eng_date_to_fr($resultat1["p_date_deb"]);
                 $sql_p_demi_jour_deb = $resultat1["p_demi_jour_deb"];
                 if ($sql_p_demi_jour_deb == "am") {
                     $demi_j_deb = "matin";
                 } else {
                     $demi_j_deb = "après-midi";
                 }
                 $sql_p_date_fin = $resultat1["p_date_fin"];
                 $sql_p_date_fin_fr = eng_date_to_fr($resultat1["p_date_fin"]);
                 $sql_p_demi_jour_fin = $resultat1["p_demi_jour_fin"];
                 if ($sql_p_demi_jour_fin == "am") {
                     $demi_j_fin = "matin";
                 } else {
                     $demi_j_fin = "après-midi";
                 }
                 $sql_p_commentaire = $resultat1["p_commentaire"];
                 $sql_p_num = $resultat1["p_num"];
                 $sql_p_login = $resultat1["p_login"];
                 $sql_p_nb_jours = affiche_decimal($resultat1["p_nb_jours"]);
                 $sql_p_type = $resultat1["p_type"];
                 $sql_p_date_demande = $resultat1["p_date_demande"];
                 $sql_p_date_traitement = $resultat1["p_date_traitement"];
                 // on construit la chaine qui servira de valeur à passer dans les boutons-radio
                 $chaine_bouton_radio = "{$sql_p_login}--{$sql_p_nb_jours}--{$sql_p_type}--{$sql_p_date_deb}--{$sql_p_demi_jour_deb}--{$sql_p_date_fin}--{$sql_p_demi_jour_fin}";
                 // si le user fait l'objet d'une double validation on a pas le meme resultat sur le bouton !
                 if ($tab_all_users_du_resp[$sql_p_login]['double_valid'] == "Y") {
                     // si on est a la fois resp et grand resp
                     if (count($tab_all_users_du_grand_resp) != 0 && array_key_exists($sql_p_login, $tab_all_users_du_grand_resp)) {
                         $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">";
                     } else {
                         //on est QUe resp
                         $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--VALID\">";
                     }
                 } else {
                     $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">";
                 }
                 $boutonradio2 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--not_OK\">";
                 $boutonradio3 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--RIEN\" checked>";
                 $text_refus = "<input class=\"form-control\" type=\"text\" name=\"tab_text_refus[{$sql_p_num}]\" size=\"20\" max=\"100\">";
                 $return .= '<tr class="' . ($i ? 'i' : 'p') . '">';
                 $return .= '<td><b>' . $tab_all_users_du_resp[$sql_p_login]['nom'] . '</b><br>' . $tab_all_users_du_resp[$sql_p_login]['prenom'] . '</td><td>' . $tab_all_users_du_resp[$sql_p_login]['quotite'] . '%</td>';
                 $return .= '<td>' . $tab_type_all_abs[$sql_p_type]['libelle'] . '</td>';
                 $return .= '<td>' . $sql_p_date_deb_fr . '<span class="demi">' . $demi_j_deb . '</span></td><td>' . $sql_p_date_fin_fr . '<span class="demi">' . $demi_j_fin . '</span></td><td>' . $sql_p_commentaire . '</td><td><b>' . $sql_p_nb_jours . '</b></td>';
                 $tab_conges = $tab_all_users_du_resp[$sql_p_login]['conges'];
                 $return .= '<td>' . $tab_conges[$tab_type_all_abs[$sql_p_type]['libelle']]['solde'] . '</td>';
                 // foreach($tab_type_conges as $id_conges => $libelle)
                 // {
                 // 	echo "<td>".$tab_conges[$libelle]['solde']."</td>";
                 // }
                 // if ($_SESSION['config']['gestion_conges_exceptionnels'])
                 // foreach($tab_type_conges_exceptionnels as $id_conges => $libelle)
                 // {
                 // 	echo "<td>".$tab_conges[$libelle]['solde']."</td>";
                 // }
                 // echo "<td>".$tab_type_all_abs[$sql_p_type]['libelle']."</td>\n";
                 $return .= '<td>' . $boutonradio1 . '</td><td>' . $boutonradio2 . '</td><td>' . $boutonradio3 . '</td><td>' . $text_refus . '</td>';
                 if ($_SESSION['config']['affiche_date_traitement']) {
                     if ($sql_p_date_demande == NULL) {
                         $return .= '<td class="histo-left">' . _('divers_demande') . ' : ' . $sql_p_date_demande . '<br>' . _('divers_traitement') . ' : ' . $sql_p_date_traitement . '</td>';
                     } else {
                         $return .= '<td class="histo-left">' . _('divers_demande') . ' : ' . $sql_p_date_demande . '<br>' . _('divers_traitement') . ' : pas traité</td>';
                     }
                 }
                 $return .= '</tr>';
                 $i = !$i;
             }
             // while
             $return .= '</tbody>';
             $return .= '</table>';
         }
         //if($count1!=0)
     }
     //if( count($tab_all_users_du_resp)!=0 )
     /*********************************/
     /* TABLEAU DES DEMANDES DES USERS DONT ON EST LE GRAND RESP */
     /*********************************/
     if ($_SESSION['config']['double_validation_conges']) {
         // si tableau des users du grand resp n'est pas vide
         if (count($tab_all_users_du_grand_resp) != 0) {
             // Récup des demandes en cours pour les users dont $_SESSION['userlogin'] est GRAND responsable :
             $sql2 = "SELECT p_num, p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_date_demande, p_date_traitement FROM conges_periode ";
             $sql2 = $sql2 . " WHERE p_etat =\"valid\" ";
             $sql2 = $sql2 . " AND p_login IN ({$list_users_du_grand_resp}) ";
             $sql2 = $sql2 . " ORDER BY p_num";
             $ReqLog2 = \includes\SQL::query($sql2);
             $count2 = $ReqLog2->num_rows;
             if ($count2 != 0) {
                 // AFFICHAGE TABLEAU DES DEMANDES EN COURS POUR DEUXIEME VALIDATION
                 $return .= '<h3>' . _('resp_traite_demandes_titre_tableau_2') . '</h3>';
                 $return .= '<table class="table table-hover table-responsive table-condensed table-striped">';
                 $return .= '<thead>';
                 $return .= '<tr>';
                 $return .= '<th><b>' . _('divers_nom_maj_1') . '</b><br>' . _('divers_prenom_maj_1') . '</th>';
                 $return .= '<th>' . _('divers_quotite_maj_1') . '</th>';
                 $return .= '<th>' . _('divers_debut_maj_1') . '</th>';
                 $return .= '<th>' . _('divers_fin_maj_1') . '</th>';
                 $return .= '<th>' . _('divers_comment_maj_1') . '</th>';
                 $return .= '<th>' . _('resp_traite_demandes_nb_jours') . '</th>';
                 foreach ($tab_type_conges as $id_conges => $libelle) {
                     $return .= '<th>' . _('divers_solde_maj_1') . '<br>' . $libelle . '</th>';
                 }
                 $return .= '<th>' . _('divers_type_maj_1') . '</th>';
                 $return .= '<th>' . _('divers_accepter_maj_1') . '</th>';
                 $return .= '<th>' . _('divers_refuser_maj_1') . '</th>';
                 $return .= '<th>' . _('resp_traite_demandes_attente') . '</th>';
                 $return .= '<th>' . _('resp_traite_demandes_motif_refus') . '</th>';
                 if ($_SESSION['config']['affiche_date_traitement']) {
                     $return .= '<th>' . _('divers_date_traitement') . '</th>';
                 }
                 $return .= '</tr>';
                 $return .= '</thead>';
                 $return .= '<tbody>';
                 $i = true;
                 $tab_bt_radio = array();
                 while ($resultat2 = $ReqLog2->fetch_array()) {
                     /** sur la ligne ,   **/
                     /** le 1er bouton radio est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--OK"> */
                     /**  et le 2ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--not_OK"> */
                     /**  et le 3ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--RIEN"> */
                     $sql_p_date_deb = $resultat2["p_date_deb"];
                     $sql_p_date_deb_fr = eng_date_to_fr($resultat2["p_date_deb"]);
                     $sql_p_demi_jour_deb = $resultat2["p_demi_jour_deb"];
                     if ($sql_p_demi_jour_deb == "am") {
                         $demi_j_deb = "matin";
                     } else {
                         $demi_j_deb = "après-midi";
                     }
                     $sql_p_date_fin = $resultat2["p_date_fin"];
                     $sql_p_date_fin_fr = eng_date_to_fr($resultat2["p_date_fin"]);
                     $sql_p_demi_jour_fin = $resultat2["p_demi_jour_fin"];
                     if ($sql_p_demi_jour_fin == "am") {
                         $demi_j_fin = "matin";
                     } else {
                         $demi_j_fin = "après-midi";
                     }
                     $sql_p_commentaire = $resultat2["p_commentaire"];
                     $sql_p_num = $resultat2["p_num"];
                     $sql_p_login = $resultat2["p_login"];
                     $sql_p_nb_jours = affiche_decimal($resultat2["p_nb_jours"]);
                     $sql_p_type = $resultat2["p_type"];
                     $sql_p_date_demande = $resultat2["p_date_demande"];
                     $sql_p_date_traitement = $resultat2["p_date_traitement"];
                     // on construit la chaine qui servira de valeur à passer dans les boutons-radio
                     $chaine_bouton_radio = "{$sql_p_login}--{$sql_p_nb_jours}--{$sql_p_type}--{$sql_p_date_deb}--{$sql_p_demi_jour_deb}--{$sql_p_date_fin}--{$sql_p_demi_jour_fin}";
                     $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">";
                     $boutonradio2 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--not_OK\">";
                     $boutonradio3 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--RIEN\" checked>";
                     $text_refus = "<input class=\"form-control\" type=\"text\" name=\"tab_text_refus[{$sql_p_num}]\" size=\"20\" max=\"100\">";
                     $return .= '<tr class="' . ($i ? 'i' : 'p') . '">';
                     $return .= '<td><strong>' . $tab_all_users_du_grand_resp[$sql_p_login]['nom'] . '</strong><br>' . $tab_all_users_du_grand_resp[$sql_p_login]['prenom'] . '</td><td>' . $tab_all_users_du_grand_resp[$sql_p_login]['quotite'] . '%</td>';
                     $return .= '<td>' . $sql_p_date_deb_fr . '<span class="demi">' . $demi_j_deb . '<span></td><td>' . $sql_p_date_fin_fr . '<span class="demi">' . $demi_j_fin . '</span></td><td>' . $sql_p_commentaire . '</td><td><b>' . $sql_p_nb_jours . '</b></td>';
                     $tab_conges = $tab_all_users_du_grand_resp[$sql_p_login]['conges'];
                     foreach ($tab_type_conges as $id_conges => $libelle) {
                         $return .= '<td>' . $tab_conges[$libelle]['solde'] . '</td>';
                     }
                     $return .= '<td>' . $tab_type_all_abs[$sql_p_type]['libelle'] . '</td>';
                     $return .= '<td>' . $boutonradio1 . '</td><td>' . $boutonradio2 . '</td><td>' . $boutonradio3 . '</td><td>' . $text_refus . '</td>';
                     if ($_SESSION['config']['affiche_date_traitement']) {
                         $return .= '<td class="histo-left">' . _('divers_demande') . ' : ' . $sql_p_date_demande . '<br>' . _('divers_traitement') . ' : ' . $sql_p_date_traitement . '</td>';
                     }
                     $return .= '</tr>';
                     $i = !$i;
                 }
                 //while
                 $return .= '</tbody>';
                 $return .= '</table>';
             }
             //if($count2!=0)
         }
         //if( count($tab_all_users_du_grand_resp)!=0 )
     }
     //if($_SESSION['config']['double_validation_conges'])
     $return .= '<br>';
     if ($count1 == 0 && $count2 == 0) {
         $return .= '<strong>' . _('resp_traite_demandes_aucune_demande') . '</strong>';
     } else {
         $return .= '<hr/>';
         $return .= '<input class="btn btn-success" type="submit" value="' . _('form_submit') . '">';
     }
     $return .= '</form>';
     return $return;
 }
Example #6
0
 public static function saisie_cloture($tab_type_conges)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $session = session_id();
     $return = '';
     // 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
     $tab_all_users_du_hr = \hr\Fonctions::recup_infos_all_users_du_hr($_SESSION['userlogin']);
     $tab_all_users_du_grand_resp = recup_infos_all_users_du_grand_resp($_SESSION['userlogin']);
     if (count($tab_all_users_du_hr) != 0 || count($tab_all_users_du_grand_resp) != 0) {
         /************************************************************/
         /* SAISIE GLOBALE pour tous les utilisateurs du responsable */
         $return .= \hr\Fonctions::affichage_cloture_globale_pour_tous($tab_type_conges);
         $return .= '<br>';
         /***********************************************************************/
         /* SAISIE GROUPE pour tous les utilisateurs d'un groupe du responsable */
         if ($_SESSION['config']['gestion_groupes']) {
             $return .= \hr\Fonctions::affichage_cloture_globale_groupe($tab_type_conges);
         }
         $return .= '<br>';
         /************************************************************/
         /* SAISIE USER PAR USER pour tous les utilisateurs du responsable */
         $return .= \hr\Fonctions::affichage_cloture_user_par_user($tab_type_conges, $tab_all_users_du_hr, $tab_all_users_du_grand_resp);
         $return .= '<br>';
     } else {
         $return .= _('resp_etat_aucun_user') . '<br>';
     }
     return $return;
 }
                }
            }
            echo "<td>{$text_affich_user}</td>\n";
            if ($_SESSION['config']['editions_papier']) {
                echo "<td>{$text_edit_papier}</td>";
            }
            echo "</tr>\n";
            $i = !$i;
        }
    }
}
/***********************************/
// AFFICHAGE DE USERS DONT LE RESP EST GRAND RESP
if ($_SESSION['config']['double_validation_conges']) {
    // Récup dans un tableau de tableau des informations de tous les users dont $_SESSION['userlogin'] est GRAND responsable
    $tab_all_users_2 = recup_infos_all_users_du_grand_resp($_SESSION['userlogin'], $DEBUG);
    if ($DEBUG) {
        echo "tab_all_users_2 :<br>\n";
        print_r($tab_all_users_2);
        echo "<br>\n";
    }
    $compteur = 0;
    // compteur de ligne a afficher en dessous (dés que passe à 1 : on affiche une ligne de titre)
    $i = true;
    foreach ($tab_all_users_2 as $current_login_2 => $tab_current_user_2) {
        if (!array_key_exists($current_login_2, $tab_all_users)) {
            $compteur++;
            if ($compteur == 1) {
                $nb_colspan = 9;
                if ($_SESSION['config']['gestion_conges_exceptionnels']) {
                    $nb_colspan = 10;