コード例 #1
0
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";
}
コード例 #2
0
ファイル: calendrier-pdf.php プロジェクト: VV666/Libertempo
// GET / POST
$selected = getpost_variable('selected');
$printable = getpost_variable('printable', 0);
$year = getpost_variable('year', date("Y"));
$mois = getpost_variable('mois', date("n"));
$first_jour = getpost_variable('first_jour', 1);
//	$first_load    = getpost_variable('first_load', "Y") ;
$select_groupe = getpost_variable('select_groupe', 0);
/*************************************/
// 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($_SESSION["tab_j_feries"]);   // verif DEBUG
}
// renvoit un tableau de tableau contenant les infos des types de conges et absences
$tab_type_absence = recup_tableau_tout_types_abs($DEBUG);
//	$content .= "<hr align=\"center\" size=\"2\" width=\"90%\"> \n";
$jour_today = date("j");
$mois_today = date("m");
$year_today = date("Y");
$timestamp_today = mktime(0, 0, 0, $mois_today, $jour_today, $year_today);
$mois_timestamp = mktime(0, 0, 0, $mois, 1, $year);
$nom_mois = date_fr("F", $mois_timestamp);
$group_names = get_groups_name();
// AFFICHAGE PAGE
$content .= '<div style="width: 2540px; text-align: right;"></div>';
$content .= "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n";
$content .= "<tr>\n";
$content .= "   <td align=\"center\">\n";
$content .= "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n";
$content .= "<tr>\n";
コード例 #3
0
function edition($user_login, $edit_id, $session, $DEBUG = FALSE)
{
    $tab_info_user = recup_info_user_pour_edition($user_login, $DEBUG);
    // recup infos de l'édition
    $tab_info_edition = recup_info_edition($edit_id, $DEBUG);
    // recup du tableau des types de conges exceptionnels (seulement les conge sexceptionnels )
    $tab_type_cong = recup_tableau_types_conges($DEBUG);
    // recup du tableau des types de conges (seulement les conges)
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG);
    } else {
        $tab_type_conges_exceptionnels = array();
    }
    // recup du tableau de tous les types de conges
    $tab_type_all_cong = recup_tableau_tout_types_abs($DEBUG);
    head_ed($tab_info_user, $tab_info_edition, $tab_type_cong, $tab_type_conges_exceptionnels, $edit_id, $DEBUG);
    if ($DEBUG) {
        echo "tab_info_user :<br>\n";
        print_r($tab_info_user);
        echo "<br><br>\n";
        echo "tab_info_edition :<br>\n";
        print_r($tab_info_edition);
        echo "<br><br>\n";
        echo "tab_type_cong :<br>\n";
        print_r($tab_type_cong);
        echo "<br><br>\n";
        echo "tab_type_conges_exceptionnels :<br>\n";
        print_r($tab_type_conges_exceptionnels);
        echo "<br><br>\n";
        echo "tab_type_all_cong :<br>\n";
        print_r($tab_type_all_cong);
        echo "<br><br>\n";
        echo "numero edition = {$edit_id}<br>\n";
    }
    /*********************************************/
    /* Tableau Historique des Conges et demandes */
    /*********************************************/
    echo "\n<!-- Tableau Historique des Conges et demandes -->\n";
    echo "<tr align=\"center\">\n";
    echo "<td>\n";
    // Récupération des informations
    // on ne recup QUE les periodes de l'edition choisie
    $sql2 = "SELECT p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_etat, p_date_demande, p_date_traitement ";
    $sql2 = $sql2 . "FROM conges_periode ";
    $sql2 = $sql2 . "WHERE p_edition_id = {$edit_id} ";
    $sql2 = $sql2 . "ORDER BY p_date_deb ASC ";
    $ReqLog2 = SQL::query($sql2);
    $count2 = $ReqLog2->num_rows;
    if ($count2 == 0) {
        echo "<b>" . _('editions_aucun_conges') . "</b><br>\n";
    } else {
        // AFFICHAGE TABLEAU
        if ($_SESSION['config']['affiche_date_traitement']) {
            echo "<table cellpadding=\"2\" class=\"tablo-edit\" width=\"850\">\n";
        } else {
            echo "<table cellpadding=\"2\" class=\"tablo-edit\" width=\"750\">\n";
        }
        /*************************************/
        /* affichage anciens soldes          */
        /*************************************/
        echo "\n<!-- affichage anciens soldes -->\n";
        echo "<tr>\n";
        echo "<td colspan=\"5\">\n";
        $edition_precedente_id = get_id_edition_precedente_user($user_login, $edit_id, $DEBUG);
        if ($edition_precedente_id == 0) {
            echo "<b>" . _('editions_soldes_precedents_inconnus') . " !... ";
        } else {
            $tab_edition_precedente = recup_info_edition($edition_precedente_id, $DEBUG);
            foreach ($tab_type_cong as $id_abs => $libelle) {
                echo _('editions_solde_precedent') . " <b>{$libelle} : " . $tab_edition_precedente['conges'][$id_abs] . "</b><br>\n";
            }
            foreach ($tab_type_conges_exceptionnels as $id_abs => $libelle) {
                echo _('editions_solde_precedent') . " <b>{$libelle} : " . $tab_edition_precedente['conges'][$id_abs] . "</b><br>\n";
            }
        }
        echo "<td>\n";
        echo "</tr>\n";
        /*************************************/
        /* affichage lignes de l'edition     */
        /*************************************/
        echo "\n<!-- affichage lignes de l'edition -->\n";
        echo "<tr>\n";
        echo " <td class=\"titre-edit\">" . _('divers_type_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_etat_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_nb_jours_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_debut_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_fin_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_comment_maj_1') . "</td>\n";
        if ($_SESSION['config']['affiche_date_traitement']) {
            echo "<td class=\"titre-edit\">" . _('divers_date_traitement') . "</td>\n";
        }
        echo "</tr>\n";
        while ($resultat2 = $ReqLog2->fetch_array()) {
            $sql_p_date_deb = 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 = _('divers_am_short');
            } else {
                $demi_j_deb = _('divers_pm_short');
            }
            $sql_p_date_fin = 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 = _('divers_am_short');
            } else {
                $demi_j_fin = _('divers_pm_short');
            }
            $sql_p_nb_jours = $resultat2["p_nb_jours"];
            $sql_p_commentaire = $resultat2["p_commentaire"];
            $sql_p_type = $resultat2["p_type"];
            $sql_p_etat = $resultat2["p_etat"];
            $sql_p_date_demande = $resultat2["p_date_demande"];
            $sql_p_date_traitement = $resultat2["p_date_traitement"];
            echo "<tr>\n";
            echo "<td class=\"histo-edit\">" . $tab_type_all_cong[$sql_p_type]['libelle'] . "</td>\n";
            echo "<td class=\"histo-edit\">";
            if ($sql_p_etat == "refus") {
                echo _('divers_refuse');
            } elseif ($sql_p_etat == "annul") {
                echo _('divers_annule');
            } else {
                echo "{$sql_p_etat}";
            }
            echo "</td>\n";
            if ($sql_p_etat == "ok") {
                echo "<td class=\"histo-big\"> -{$sql_p_nb_jours}</td>";
            } elseif ($sql_p_etat == "ajout") {
                echo "<td class=\"histo-big\"> +{$sql_p_nb_jours}</td>";
            } else {
                echo "<td> {$sql_p_nb_jours}</td>";
            }
            echo "<td class=\"histo-edit\">{$sql_p_date_deb} _ {$demi_j_deb}</td>";
            echo "<td class=\"histo-edit\">{$sql_p_date_fin} _ {$demi_j_fin}</td>";
            echo "<td class=\"histo-edit\">{$sql_p_commentaire}</td>";
            if ($_SESSION['config']['affiche_date_traitement']) {
                if ($sql_p_date_demande == NULL) {
                    echo "<td class=\"histo-left\">" . _('divers_demande') . " : {$sql_p_date_demande}<br>" . _('divers_traitement') . " : {$sql_p_date_traitement}</td>\n";
                } else {
                    echo "<td class=\"histo-left\">" . _('divers_demande') . " : {$sql_p_date_demande}<br>" . _('divers_traitement') . " : pas traité</td>\n";
                }
            }
            echo "</tr>\n";
        }
        /*************************************/
        /* affichage nouveaux soldes         */
        /*************************************/
        echo "\n<!-- affichage nouveaux soldes -->\n";
        echo "<tr>\n";
        echo "<td colspan=\"5\">\n";
        foreach ($tab_type_cong as $id_abs => $libelle) {
            echo _('editions_nouveau_solde') . " <b>{$libelle} : " . $tab_info_edition['conges'][$id_abs] . "</b><br>\n";
        }
        echo "<td>\n";
        echo "</tr>\n";
        echo "</table>\n\n";
    }
    echo "<br><br>\n";
    echo "</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    bottom_ed();
}
コード例 #4
0
ファイル: calendrier.php プロジェクト: VV666/Libertempo
function affichage_calendrier($year, $mois, $first_jour, $timestamp_today, $printable, $selected, $tab_type_absence, $select_groupe, $DEBUG = FALSE)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    $nb_day = date('t', mktime(1, 1, 1, $mois, 1, $year));
    // recup du tableau des types de conges (seulement les conges)
    $tab_type_cong = recup_tableau_types_conges($DEBUG);
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_cong_excep = recup_tableau_types_conges_exceptionnels($DEBUG);
    }
    /*****************************************/
    /** Récupération des users à afficher:  **/
    $tab_all_users = recup_tableau_des_users_a_afficher($select_groupe, $DEBUG);
    if ($_SESSION['config']['gestion_groupes'] && $select_groupe != 0) {
        $tab_logins = array_keys($tab_all_users);
        $tab_logins = array_map("SQL::quote", $tab_logins);
    } else {
        $tab_logins = false;
    }
    /** FIN de Récupération des users à afficher:  **/
    /************************************************/
    /*************************/
    /**  AFFICHAGE TABLEAU  **/
    if ($printable != 1) {
        // si version ecran :
        echo "<table class=\"calendar table table-responsive table-bordered table-stripped\">\n";
    } else {
        // si version imprimable :
        echo "<table>\n";
    }
    echo "<tr><th colspan=\"2\"></th><th colspan=\"{$nb_day}\">" . _('divers_semaine') . "</th><th colspan=\"8\">Solde</th></tr>\n";
    /*************************************/
    // affichage premiere ligne (semaines)
    echo "<tr align=\"center\">\n";
    // affichage nom prenom quotité
    $nb_colonnes = 3;
    echo "\t<th rowspan=\"2\">Utilisateur</th>\n\n";
    // echo "	<td class=\"cal-user\" rowspan=\"2\">". _('divers_prenom_maj') ."</td>\n\n";
    echo "\t<th rowspan=\"2\">Quotité</th>";
    // affichage des semaines
    // ... du premier jour voulu à la fin du mois
    for ($j = $first_jour; checkdate($mois, $j, $year); $j++) {
        $j_timestamp = mktime(0, 0, 0, $mois, $j, $year);
        $j_num_semaine = date_fr("W", $j_timestamp);
        // attention date_fr("w", $j_timestamp) renvoit 0 pour dimanche !
        if (date_fr("w", $j_timestamp) == 0) {
            $j_num_jour_semaine = 7;
        } else {
            $j_num_jour_semaine = date_fr("w", $j_timestamp);
        }
        //DEBUG : echo "<td class=\"cal-day\" >$j_num_jour_semaine / $j_num_semaine</td>";
        if ($j == $first_jour) {
            $colspan = 8 - $j_num_jour_semaine;
            echo "<th class=\"cal-day-first\" colspan=\"{$colspan}\" >{$j_num_semaine}</th>\n";
        } else {
            $month_rest = $nb_day - $j;
            $colspan = 7;
            if ($month_rest < 6) {
                $colspan = $month_rest + 1;
            }
            // on affiche que les lundi
            if ($j_num_jour_semaine == 1) {
                echo "<th class=\"cal-day\" colspan=\"{$colspan}\" >{$j_num_semaine}</th>\n";
            }
        }
    }
    // ... si le premier jour voulu n'etait pas le premier du mois, on va jusqu'à la meme date du mois suivant.
    if ($first_jour != 1) {
        for ($j = 1; $j < $first_jour; $j++) {
            if ($mois == 12) {
                $mois_select = 1;
                $year_select = $year + 1;
            } else {
                $mois_select = $mois + 1;
                $year_select = $year;
            }
            $j_timestamp = mktime(0, 0, 0, $mois_select, $j, $year_select);
            $j_num_jour_semaine = date_fr("w", $j_timestamp);
            $j_num_semaine = date_fr("W", $j_timestamp);
            // attention date_fr("w", $j_timestamp) renvoit 0 pour dimanche !
            if (date_fr("w", $j_timestamp) == 0) {
                $j_num_jour_semaine = 7;
            } else {
                $j_num_jour_semaine = date_fr("w", $j_timestamp);
            }
            //DEBUG : echo "<td class=\"cal-day\" >$j_num_jour_semaine / $j_num_semaine</td>";
            if ($j == $first_jour) {
                $colspan = 8 - $j_num_jour_semaine;
                echo "<td class=\"cal-day-first\" colspan=\"{$colspan}\" >{$j_num_semaine}</td>\n";
            } else {
                // on affiche que les lundi
                if ($j_num_jour_semaine == 1) {
                    echo "<td class=\"cal-day\" colspan=\"7\" >{$j_num_semaine}</td>\n";
                }
            }
        }
    }
    if ($_SESSION['config']['affiche_soldes_calendrier'] || is_resp($_SESSION['userlogin']) || is_hr($_SESSION['userlogin']) || is_admin($_SESSION['userlogin'])) {
        // affichage des libellé des conges
        $abs_libelle = recup_tableau_tout_types_abs();
        foreach ($tab_type_cong as $id => $libelle) {
            echo "<th rowspan=\"2\">" . $abs_libelle[$id]['short_libelle'] . "</th>\n";
            $nb_colonnes = $nb_colonnes + 1;
        }
        if ($_SESSION['config']['gestion_conges_exceptionnels']) {
            foreach ($tab_type_cong_excep as $id => $libelle) {
                echo "<th rowspan=\"2\">" . $abs_libelle[$id]['short_libelle'] . "</th>\n";
                $nb_colonnes = $nb_colonnes + 1;
            }
        }
    }
    echo "</tr>\n\n";
    /*************************************/
    // affichage 2ieme ligne (dates)
    echo "<tr>\n";
    // on affiche pas car on a fait de "rowspan" à la ligne supérieure
    // affichage d'une cellule vide sous les titres
    //echo "	<td class=\"cal-user\" colspan=\"$nb_colonnes\">&nbsp;</td>\n";
    //dernier jour = dimanche ?
    $last = 7;
    // affichage des dates
    // ... du premier jour voulu à la fin du mois
    for ($j = $first_jour; checkdate($mois, $j, $year); $j++) {
        $j_timestamp = mktime(0, 0, 0, $mois, $j, $year);
        // $j_name=date_fr("D", $j_timestamp);
        $j_name = substr(date_fr("D", $j_timestamp), 0, 1);
        $last = date("N", $j_timestamp);
        $j_date_fr = date_fr("d-m-Y", $j_timestamp);
        $j_num_semaine = date_fr("W", $j_timestamp);
        $td_second_class = get_td_class_of_the_day_in_the_week($j_timestamp);
        // on affiche en gras le jour d'aujourd'hui
        if ($j_timestamp == $timestamp_today) {
            $text_titre_date = "<b>{$j_name} <br/>{$j}</b>";
        } else {
            $text_titre_date = "{$j_name} <br/>{$j}";
        }
        // on regarde si c'est la premiere cellule ou non
        if ($j == $first_jour) {
            $cal_day = "cal-day-first";
        } else {
            $cal_day = "cal-day";
        }
        // on affiche le titre -date (la date du jour)
        echo "<td class=\"{$cal_day} {$td_second_class}\" title=\"{$j_date_fr} / " . _('divers_semaine') . " {$j_num_semaine}\">{$text_titre_date}</td>";
    }
    // ... si le premier jour voulu n'etait pas le premier du mois, on va jusqu'à la meme date du mois suivant.
    if ($first_jour != 1) {
        for ($j = 1; $j < $first_jour; $j++) {
            if ($mois == 12) {
                $mois_select = 1;
                $year_select = $year + 1;
            } else {
                $mois_select = $mois + 1;
                $year_select = $year;
            }
            $j_timestamp = mktime(0, 0, 0, $mois_select, $j, $year_select);
            $last = date("N", $j_timestamp);
            // $j_name=date_fr("D", $j_timestamp);
            $j_name = substr(date_fr("D", $j_timestamp), 0, 1);
            $j_date_fr = date_fr("d-m-Y", $j_timestamp);
            $j_num_semaine = date_fr("W", $j_timestamp);
            $td_second_class = get_td_class_of_the_day_in_the_week($j_timestamp);
            // on affiche en gras le jour d'aujourd'hui
            if ($j_timestamp == $timestamp_today) {
                echo "<td class=\"cal-day {$td_second_class}\" title=\"{$j_date_fr} / " . _('divers_semaine') . " {$j_num_semaine}\"><strong>{$j_name} {$j}</strong></td>";
            } else {
                echo "<td class=\"cal-day {$td_second_class}\" title=\"{$j_date_fr} / " . _('divers_semaine') . " {$j_num_semaine}\">{$j_name} {$j}</td>";
            }
            // echo "<td class=\"cal-day $td_second_class\" title=\"$j_date_fr / ". _('divers_semaine') ." $j_num_semaine\">$j_name $j/$mois_select</td>";
        }
    }
    // if ($last < 7)
    // for ($i = $last; $i <7; $i ++)
    // 	echo '<td></td>';
    // echo "</tr>\n";
    /**************************************************/
    /**************************************************/
    /* recup des info de chaque jour pour tous les users et stockage dans 1 tableau de tableaux */
    $tab_calendrier = recup_tableau_periodes($mois, $first_jour, $year, $tab_logins);
    /**************************************************/
    /* recup des rtt de chaque jour pour tous les users et stockage dans 2 tableaux de tableaux */
    /**************************************************/
    //$tab_rtt_echange  //tableau indexé dont la clé est la date sous forme yyyy-mm-dd
    //il contient pour chaque clé (chaque jour): un tableau indéxé ($tab_jour_rtt_echange) (clé= login)
    // qui contient lui même un tableau ($tab_echange) contenant les infos des echanges de rtt pour ce
    // jour et ce login (valeur du matin + valeur de l'apres midi ('Y' si rtt, 'N' sinon) )
    //$tab_rtt_planifiees=array();  //tableau indexé dont la clé est le login_user
    // il contient pour chaque clé login : un tableau ($tab_user_grille) indexé dont la
    // clé est la date_fin_grille.
    // qui contient lui meme pour chaque clé : un tableau ($tab_user_rtt) qui contient enfin
    // les infos pour le matin et l'après midi ('Y' si rtt, 'N' sinon) sur 2 semaines
    // ( du sem_imp_lu_am au sem_p_ve_pm ) + la date de début et de fin de la grille
    $tab_rtt_echange = recup_tableau_rtt_echange($mois, $first_jour, $year, $tab_logins);
    $tab_rtt_planifiees = recup_tableau_rtt_planifiees($mois, $first_jour, $year, $tab_logins);
    $tab_cong_users = recup_tableau_conges_for_users(false, $tab_logins);
    /**************************************************/
    /**************************************************/
    // affichage lignes suivantes (users)
    // pour chaque user :
    foreach ($tab_all_users as $sql_login => $tab_current_user) {
        $sql_nom = $tab_current_user["nom"];
        $sql_prenom = $tab_current_user["prenom"];
        $sql_quotite = $tab_current_user["quotite"];
        // nb de jour pris dans le mois en cours (pour un type d'absence donné)
        $nb_jours_current_month = array();
        // recup dans un tableau de tableaux les nb et soldes de conges d'un user (indicé par id de conges)
        $tab_cong_user = $tab_cong_users[$sql_login];
        if ($printable == 1) {
            echo "<tr align=\"center\" class=\"cal-ligne-user-edit\">\n";
        } elseif ($selected == $sql_login) {
            echo "<tr align=\"center\" class=\"cal-ligne-user-selected\">\n";
        } else {
            echo "<tr align=\"center\" class=\"cal-ligne-user\">\n";
        }
        if ($printable == 1) {
            $text_nom = "<strong>{$sql_nom}</strong>";
        } else {
            $text_nom = "<a href=\"{$PHP_SELF}?session={$session}&selected={$sql_login}&year={$year}&mois={$mois}&first_jour={$first_jour}&printable={$printable}&select_groupe={$select_groupe}\" method=\"GET\">{$sql_nom} {$sql_prenom}</a>";
        }
        // affichage nom prenom quotité
        echo "<td class=\"cal-user\">{$text_nom}</td><td class=\"cal-percent\">{$sql_quotite} %</td>";
        // pour chaque jour : (du premier jour demandé à la fin du mois ...)
        for ($j = $first_jour; checkdate($mois, $j, $year); $j++) {
            $j_timestamp = mktime(0, 0, 0, $mois, $j, $year);
            $td_second_class = get_td_class_of_the_day_in_the_week($j_timestamp);
            $mois_select = $mois;
            $year_select = $year;
            // affichage de la cellule correspondant au jour et au user considéré
            $t_nb_j_type_abs = affiche_cellule_jour_user($sql_login, $j_timestamp, $year, $mois_select, $j, $td_second_class, $printable, $tab_calendrier, $tab_rtt_echange, $tab_rtt_planifiees, $tab_type_absence);
            foreach ($t_nb_j_type_abs as $id_type_abs => $nb_j_pris) {
                if (isset($nb_jours_current_month[$id_type_abs])) {
                    $nb_jours_current_month[$id_type_abs] += $nb_j_pris;
                } else {
                    $nb_jours_current_month[$id_type_abs] = $nb_j_pris;
                }
            }
        }
        // si le premier jour demandé n'est pas le 1ier du mois , on va jusqu'à la meme date le mois suivant :
        if ($first_jour != 1) {
            // pour chaque jour jusqu'a la date voulue : (meme num de jour le mois suivant)
            for ($j = 1; $j < $first_jour; $j++) {
                $j_timestamp = mktime(0, 0, 0, $mois + 1, $j, $year);
                $td_second_class = get_td_class_of_the_day_in_the_week($j_timestamp);
                if ($mois == 12) {
                    $mois_select = 1;
                    $year_select = $year + 1;
                } else {
                    $mois_select = $mois + 1;
                    $year_select = $year;
                }
                // affichage de la cellule correspondant au jour et au user considéré
                $t_nb_j_type_abs = affiche_cellule_jour_user($sql_login, $j_timestamp, $year, $mois_select, $j, $td_second_class, $printable, $tab_calendrier, $tab_rtt_echange, $tab_rtt_planifiees, $tab_type_absence);
                foreach ($t_nb_j_type_abs as $id_type_abs => $nb_j_pris) {
                    if (isset($nb_jours_current_month[$id_type_abs])) {
                        $nb_jours_current_month[$id_type_abs] += $nb_j_pris;
                    } else {
                        $nb_jours_current_month[$id_type_abs] = $nb_j_pris;
                    }
                }
            }
        }
        //if ($last < 7)
        //for ($i = $last; $i <7; $i ++)
        //	echo '<td></td>';
        if ($_SESSION['config']['affiche_soldes_calendrier'] || is_resp($_SESSION['userlogin']) || is_hr($_SESSION['userlogin']) || is_admin($_SESSION['userlogin'])) {
            // affichage des divers soldes
            foreach ($tab_cong_user as $id => $tab_conges) {
                // si des jours ont été pris durant le mois affiché, on indique combien :
                if (isset($nb_jours_current_month[$id]) && $_SESSION['config']['affiche_jours_current_month_calendrier']) {
                    echo "<td class=\"cal-user\">" . $tab_conges['solde'] . "&nbsp;(" . $nb_jours_current_month[$id] . ")</td>";
                } else {
                    echo "<td class=\"cal-user\">" . $tab_conges['solde'] . "</td>";
                }
            }
        }
        echo "\n</tr>\n";
    }
    echo "</table>\n\n";
}
コード例 #5
0
function new_conges($user_login, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type_id,  $DEBUG=FALSE)
{
    $PHP_SELF=$_SERVER['PHP_SELF'];
    $session=session_id();

    // verif validité des valeurs saisies
    $valid=verif_saisie_new_demande($new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment);

    if($valid)
    {
        echo "$user_login---$new_debut _ $new_demi_jour_deb---$new_fin _ $new_demi_jour_fin---$new_nb_jours---$new_comment---$new_type_id<br>\n";

        // recup dans un tableau de tableau les infos des types de conges et absences
        $tab_tout_type_abs = recup_tableau_tout_types_abs( $DEBUG);

        /**********************************/
        /* insert dans conges_periode     */
        /**********************************/
        $new_etat="ok";
        $result=insert_dans_periode($user_login, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type_id, $new_etat, 0, $DEBUG);

        /************************************************/
        /* UPDATE table "conges_solde_user" (jours restants) */
        // on retranche les jours seulement pour des conges pris (pas pour les absences)
        // donc seulement si le type de l'absence qu'on annule est un "conges"
        if(isset($tab_tout_type_abs[$new_type_id]['type']) && $tab_tout_type_abs[$new_type_id]['type']=="conges")
        {
            $user_nb_jours_pris_float=(float) $new_nb_jours ;
            soustrait_solde_et_reliquat_user($user_login, "", $user_nb_jours_pris_float, $new_type_id, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin , $DEBUG);

        }

        $comment_log = "saisie conges par le responsable pour $user_login ($new_nb_jours jour(s)) type_conges = $new_type_id ( de $new_debut $new_demi_jour_deb a $new_fin $new_demi_jour_fin) ($new_comment)";
        log_action(0, "", $user_login, $comment_log,  $DEBUG);

        if($result)
            echo  _('form_modif_ok') ."<br><br> \n";
        else
            echo  _('form_modif_not_ok') ."<br><br> \n";
    }
    else
    {
            echo  _('resp_traite_user_valeurs_not_ok') ."<br><br> \n";
    }

    /* APPEL D'UNE AUTRE PAGE */
    echo "<form action=\"$PHP_SELF?session=$session&onglet=traite_user&user_login=$user_login\" method=\"POST\"> \n";
    echo "<input type=\"submit\" value=\"". _('form_retour') ."\">\n";
    echo "</form> \n";

}
コード例 #6
0
function supprimer($session, $id_to_update, $DEBUG = FALSE)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    if ($session == "") {
        $URL = "{$PHP_SELF}";
    } else {
        $URL = "{$PHP_SELF}?session={$session}";
    }
    // verif si pas de periode de ce type de conges !!!
    //requête qui récupère les informations de la table conges_periode
    $sql1 = 'SELECT p_num FROM conges_periode WHERE p_type=\'' . SQL::quote($id_to_update) . '\'';
    $ReqLog1 = SQL::query($sql1);
    $count = $ReqLog1->num_rows;
    if ($count != 0) {
        echo "<center>\n";
        echo "<br> " . _('config_abs_suppr_impossible') . "<br>\n" . _('config_abs_already_used') . " <br>\n";
        echo "<br>\n";
        echo "<form action=\"{$URL}\" method=\"POST\"> \n";
        echo "<input type=\"submit\" value=\"" . _('form_redo') . "\" >\n";
        echo "</form>\n";
        echo "<br><br>\n";
        echo "</center>\n";
    } else {
        // recup dans un tableau de tableau les infos des types de conges et absences
        $tab_type_abs = recup_tableau_tout_types_abs($DEBUG);
        echo "<center>\n";
        echo "<br>\n";
        echo _('config_abs_confirm_suppr_of') . "  <b>\" " . $tab_type_abs[$id_to_update]['libelle'] . " \"</b>\n";
        echo "<br>\n";
        echo "<form action=\"{$URL}\" method=\"POST\"> \n";
        echo "<input type=\"hidden\" name=\"action\" value=\"commit_suppr\">\n";
        echo "<input type=\"hidden\" name=\"id_to_update\" value=\"{$id_to_update}\">\n";
        echo "<input type=\"submit\"  value=\"" . _('form_supprim') . "\">\n";
        echo "</form>\n";
        echo "<br>\n";
        echo "<form action=\"{$URL}\" method=\"POST\"> \n";
        echo "<input type=\"submit\" value=\"" . _('form_annul') . "\" >\n";
        echo "</form>\n";
        echo "<br><br>\n";
        echo "</center>\n";
    }
}
コード例 #7
0
ファイル: Fonctions.php プロジェクト: TexGG/Libertempo
 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;
 }
コード例 #8
0
ファイル: Fonctions.php プロジェクト: TexGG/Libertempo
 public static function supprimer($session, $id_to_update)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $return = '';
     if ($session == "") {
         $URL = "{$PHP_SELF}?onglet=type_absence";
     } else {
         $URL = "{$PHP_SELF}?session={$session}&onglet=type_absence";
     }
     // verif si pas de periode de ce type de conges !!!
     //requête qui récupère les informations de la table conges_periode
     $sql1 = 'SELECT p_num FROM conges_periode WHERE p_type="' . \includes\SQL::quote($id_to_update) . '"';
     $ReqLog1 = \includes\SQL::query($sql1);
     $count = $ReqLog1->num_rows;
     if ($count != 0) {
         $return .= '<center>';
         $return .= '<br>' . _('config_abs_suppr_impossible') . '<br>' . _('config_abs_already_used') . '<br>';
         $return .= '<br>';
         $return .= '<form action="' . $URL . '" method="POST">';
         $return .= '<input type="submit" value="' . _('form_redo') . '" >';
         $return .= '</form>';
         $return .= '<br><br>';
         $return .= '</center>';
     } else {
         // recup dans un tableau de tableau les infos des types de conges et absences
         $tab_type_abs = recup_tableau_tout_types_abs();
         $return .= '<center>';
         $return .= '<br>';
         $return .= _('config_abs_confirm_suppr_of') . '<b>' . $tab_type_abs[$id_to_update]['libelle'] . '</b>';
         $return .= '<br>';
         $return .= '<form action="' . $URL . '" method="POST">';
         $return .= '<input type="hidden" name="action" value="commit_suppr">';
         $return .= '<input type="hidden" name="id_to_update" value="' . $id_to_update . '">';
         $return .= '<input type="submit"  value="' . _('form_supprim') . '">';
         $return .= '</form>';
         $return .= '<br>';
         $return .= '<form action="' . $URL . '" method="POST">';
         $return .= '<input type="submit" value="' . _('form_annul') . '" >';
         $return .= '</form>';
         $return .= '<br><br>';
         $return .= '</center>';
     }
     return $return;
 }
コード例 #9
0
function export_vcal($user_login, $date_debut, $date_fin, $DEBUG = FALSE)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    //inverse l'ordre de la date jj-mm-yyyy --> yyy-mm-jj
    $good_date_debut = inverse_date($date_debut, $DEBUG);
    $good_date_fin = inverse_date($date_fin, $DEBUG);
    if ($good_date_debut > $good_date_fin) {
        // si $date_debut posterieure a $date_fin
        // redirige vers page de saisie
        echo "<META HTTP-EQUIV=REFRESH CONTENT=\"0; URL={$PHP_SELF}?session={$session}&date_debut={$date_debut}&date_fin={$date_fin}&choix_format=ical\">";
    } else {
        /********************************/
        // initialisation de variables communes a ttes les periodes
        // recup des infos du user
        $tab_infos_user = recup_infos_du_user($_SESSION['userlogin'], "", $DEBUG);
        $tab_types_abs = recup_tableau_tout_types_abs($DEBUG);
        if (function_exists("date_default_timezone_get")) {
            // car date_default_timezone_get() n'existe que depuis PHP 5.1
            $DTSTAMP = date("Ymd") . date_default_timezone_get();
        } else {
            $DTSTAMP = date("Ymd") . "T142816Z";
        }
        // copier depuis un fichier ical
        /********************************/
        // affichage dans un fichier non html !
        header("content-type: application/ics");
        header("Content-disposition: filename=php_conges.ics");
        echo "BEGIN:VCALENDAR\r\n" . "PRODID:-//php_conges " . $_SESSION['config']['installed_version'] . "\r\n" . "VERSION:1.0\r\n\r\n";
        // SELECT des periodes à exporter .....
        // on prend toutes les periodes de conges qui chevauchent la periode donnée par les dates demandées
        $sql_periodes = "SELECT p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_commentaire, p_type  " . 'FROM conges_periode WHERE p_login=\'' . SQL::quote($_SESSION['userlogin']) . '\' AND p_etat=\'ok\' AND (p_date_deb>=\'' . SQL::quote($good_date_debut) . '\' AND  p_date_deb<=\'' . SQL::quote($good_date_fin) . '\') OR (p_date_fin>=\'' . SQL::quote($good_date_debut) . '\' AND p_date_fin<=\'' . SQL::quote($good_date_fin) . '\')';
        $res_periodes = SQL::query($sql_periodes);
        if ($num_periodes = $res_periodes->num_rows != 0) {
            while ($result_periodes = $res_periodes->fetch_array()) {
                $sql_date_debut = $result_periodes['p_date_deb'];
                $sql_demi_jour_deb = $result_periodes['p_demi_jour_deb'];
                $sql_date_fin = $result_periodes['p_date_fin'];
                $sql_demi_jour_fin = $result_periodes['p_demi_jour_fin'];
                $sql_type = $result_periodes['p_type'];
                // PB : les fichiers ical et vcal doivent être encodés en UTF-8, or php ne gère pas l'utf-8
                // on remplace donc les caractères spéciaux de la chaine de caractères
                $sql_comment = remplace_accents($result_periodes['p_commentaire']);
                // même problème
                $type_abs = remplace_accents($tab_types_abs[$sql_type]['libelle']);
                $tab_date_deb = explode("-", $sql_date_debut);
                $tab_date_fin = explode("-", $sql_date_fin);
                if ($sql_demi_jour_deb == "am") {
                    $DTSTART = $tab_date_deb[0] . $tab_date_deb[1] . $tab_date_deb[2] . "T000000Z";
                } else {
                    $DTSTART = $tab_date_deb[0] . $tab_date_deb[1] . $tab_date_deb[2] . "T120000Z";
                }
                // .....
                if ($sql_demi_jour_fin == "am") {
                    $DTEND = $tab_date_fin[0] . $tab_date_fin[1] . $tab_date_fin[2] . "T120000Z";
                } else {
                    $DTEND = $tab_date_fin[0] . $tab_date_fin[1] . $tab_date_fin[2] . "T235900Z";
                }
                // .....
                echo "BEGIN:VEVENT\r\n" . "DTSTART:{$DTSTART}\r\n" . "DTEND:{$DTEND}\r\n" . "CREATED:{$DTSTAMP}\r\n" . "UID:php_conges\r\n" . "SEQUENCE:1\r\n" . "LAST-MODIFIED:{$DTSTAMP}\r\n" . "X-ORGANIZER;MAILTO:" . $tab_infos_user['email'] . "\r\n";
                if ($sql_comment != "") {
                    echo "DESCRIPTION:{$sql_comment}\r\n";
                }
                echo "SUMMARY:{$type_abs}\r\n" . "CLASS:PUBLIC\r\n" . "PRIORITY:1\r\n" . "TRANSP:0\r\n" . "END:VEVENT\r\n\r\n";
            }
        }
        echo "END:VCALENDAR\r\n";
    }
}
コード例 #10
0
ファイル: edition_papier.php プロジェクト: coz787/Libertempo
function edition($login, $edit_id, $DEBUG = FALSE)
{
    //$DEBUG = TRUE ;
    $session = session_id();
    // recup infos du user
    $tab_info_user = recup_info_user_pour_edition($login, $DEBUG);
    // recup infos de l'édition
    $tab_info_edition = recup_info_edition($edit_id, $DEBUG);
    // recup du tableau des types de conges exceptionnels (seulement les conge sexceptionnels )
    $tab_type_cong = recup_tableau_types_conges($DEBUG);
    // recup du tableau des types de conges (seulement les conges)
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG);
    } else {
        $tab_type_conges_exceptionnels = array();
    }
    // recup du tableau de tous les types de conges
    $tab_type_all_cong = recup_tableau_tout_types_abs($DEBUG);
    if ($DEBUG) {
        echo "tab_info_user :<br>\n";
        print_r($tab_info_user);
        echo "<br><br>\n";
        echo "tab_info_edition :<br>\n";
        print_r($tab_info_edition);
        echo "<br><br>\n";
        echo "tab_type_cong :<br>\n";
        print_r($tab_type_cong);
        echo "<br><br>\n";
        echo "tab_type_conges_exceptionnels :<br>\n";
        print_r($tab_type_conges_exceptionnels);
        echo "<br><br>\n";
        echo "tab_type_all_cong :<br>\n";
        print_r($tab_type_all_cong);
        echo "<br><br>\n";
        echo "numero edition = {$edit_id}<br>\n";
    }
    /**************************************/
    /* affichage du texte en haut de page */
    /**************************************/
    echo "\n<!-- affichage du texte en haut de page -->\n";
    echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"770\">\n";
    echo "<tr align=\"center\">\n";
    echo "<td>" . $_SESSION['config']['texte_haut_edition_papier'] . "<br><br></td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    /**************************************/
    /* affichage du TITRE                 */
    /**************************************/
    echo "\n<!-- affichage du TITRE -->\n";
    echo "<H1>" . $tab_info_user['nom'] . "  " . $tab_info_user['prenom'] . "</H1>\n\n";
    $tab_date = explode("-", $tab_info_edition['date']);
    echo "<H2>" . _('editions_bilan_au') . " {$tab_date['2']} / {$tab_date['1']} / {$tab_date['0']}</H2>\n\n";
    /****************************/
    /* tableau Bilan des Conges */
    /****************************/
    // affichage du tableau récapitulatif des solde de congés d'un user DE cette edition !
    affiche_tableau_bilan_conges_user_edition($tab_info_user, $tab_info_edition, $tab_type_cong, $tab_type_conges_exceptionnels, $DEBUG);
    $quotite = $tab_info_user['quotite'];
    echo "<h3> " . _('divers_quotite') . "&nbsp; : &nbsp;{$quotite} % </h3>\n";
    echo "<br><br><br>\n";
    if ($_SESSION['config']['affiche_date_traitement']) {
        echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"1\" width=\"870\">\n";
    } else {
        echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"1\" width=\"770\">\n";
    }
    echo "<tr align=\"center\">\n";
    echo "<td><h3>" . _('editions_historique') . " :</h3></td>\n";
    echo "</tr>\n";
    /*********************************************/
    /* Tableau Historique des Conges et demandes */
    /*********************************************/
    echo "\n<!-- Tableau Historique des Conges et demandes -->\n";
    echo "<tr align=\"center\">\n";
    echo "<td>\n";
    // Récupération des informations
    // on ne recup QUE les periodes de l'edition choisie
    $sql2 = "SELECT p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_etat, p_date_demande, p_date_traitement ";
    $sql2 = $sql2 . "FROM conges_periode ";
    $sql2 = $sql2 . "WHERE p_edition_id = {$edit_id} ";
    $sql2 = $sql2 . "ORDER BY p_date_deb ASC ";
    $ReqLog2 = SQL::query($sql2);
    $count2 = $ReqLog2->num_rows;
    if ($count2 == 0) {
        echo "<b>" . _('editions_aucun_conges') . "</b><br>\n";
    } else {
        // AFFICHAGE TABLEAU
        if ($_SESSION['config']['affiche_date_traitement']) {
            echo "<table cellpadding=\"2\" class=\"tablo-edit\" width=\"850\">\n";
        } else {
            echo "<table cellpadding=\"2\" class=\"tablo-edit\" width=\"750\">\n";
        }
        /*************************************/
        /* affichage anciens soldes          */
        /*************************************/
        echo "\n<!-- affichage anciens soldes -->\n";
        echo "<tr>\n";
        echo "<td colspan=\"5\">\n";
        $edition_precedente_id = get_id_edition_precedente_user($login, $edit_id, $DEBUG);
        if ($edition_precedente_id == 0) {
            echo "<b>" . _('editions_soldes_precedents_inconnus') . " !... ";
        } else {
            $tab_edition_precedente = recup_info_edition($edition_precedente_id, $DEBUG);
            foreach ($tab_type_cong as $id_abs => $libelle) {
                echo _('editions_solde_precedent') . " <b>{$libelle} : " . $tab_edition_precedente['conges'][$id_abs] . "</b><br>\n";
            }
            foreach ($tab_type_conges_exceptionnels as $id_abs => $libelle) {
                echo _('editions_solde_precedent') . " <b>{$libelle} : " . $tab_edition_precedente['conges'][$id_abs] . "</b><br>\n";
            }
        }
        echo "<td>\n";
        echo "</tr>\n";
        /*************************************/
        /* affichage lignes de l'edition     */
        /*************************************/
        echo "\n<!-- affichage lignes de l'edition -->\n";
        echo "<tr>\n";
        echo " <td class=\"titre-edit\">" . _('divers_type_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_etat_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_nb_jours_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_debut_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_fin_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_comment_maj_1') . "</td>\n";
        if ($_SESSION['config']['affiche_date_traitement']) {
            echo "<td class=\"titre-edit\">" . _('divers_date_traitement') . "</td>\n";
        }
        echo "</tr>\n";
        while ($resultat2 = $ReqLog2->fetch_array()) {
            $sql_p_date_deb = 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 = _('divers_am_short');
            } else {
                $demi_j_deb = _('divers_pm_short');
            }
            $sql_p_date_fin = 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 = _('divers_am_short');
            } else {
                $demi_j_fin = _('divers_pm_short');
            }
            $sql_p_nb_jours = $resultat2["p_nb_jours"];
            $sql_p_commentaire = $resultat2["p_commentaire"];
            $sql_p_type = $resultat2["p_type"];
            $sql_p_etat = $resultat2["p_etat"];
            $sql_p_date_demande = $resultat2["p_date_demande"];
            $sql_p_date_traitement = $resultat2["p_date_traitement"];
            echo "<tr>\n";
            echo "<td class=\"histo-edit\">" . $tab_type_all_cong[$sql_p_type]['libelle'] . "</td>\n";
            echo "<td class=\"histo-edit\">";
            if ($sql_p_etat == "refus") {
                echo _('divers_refuse');
            } elseif ($sql_p_etat == "annul") {
                echo _('divers_annule');
            } else {
                echo "{$sql_p_etat}";
            }
            echo "</td>\n";
            if ($sql_p_etat == "ok") {
                echo "<td class=\"histo-big\"> -{$sql_p_nb_jours}</td>";
            } elseif ($sql_p_etat == "ajout") {
                echo "<td class=\"histo-big\"> +{$sql_p_nb_jours}</td>";
            } else {
                echo "<td> {$sql_p_nb_jours}</td>";
            }
            echo "<td class=\"histo-edit\">{$sql_p_date_deb} _ {$demi_j_deb}</td>";
            echo "<td class=\"histo-edit\">{$sql_p_date_fin} _ {$demi_j_fin}</td>";
            echo "<td class=\"histo-edit\">{$sql_p_commentaire}</td>";
            if ($_SESSION['config']['affiche_date_traitement']) {
                if ($sql_p_date_demande == NULL) {
                    echo "<td class=\"histo-left\">" . _('divers_demande') . " : {$sql_p_date_demande}<br>" . _('divers_traitement') . " : {$sql_p_date_traitement}</td>\n";
                } else {
                    echo "<td class=\"histo-left\">" . _('divers_demande') . " : {$sql_p_date_demande}<br>" . _('divers_traitement') . " : pas traité</td>\n";
                }
            }
            echo "</tr>\n";
        }
        /*************************************/
        /* affichage nouveaux soldes         */
        /*************************************/
        echo "\n<!-- affichage nouveaux soldes -->\n";
        echo "<tr>\n";
        echo "<td colspan=\"5\">\n";
        foreach ($tab_type_cong as $id_abs => $libelle) {
            echo _('editions_nouveau_solde') . " <b>{$libelle} : " . $tab_info_edition['conges'][$id_abs] . "</b><br>\n";
        }
        echo "<td>\n";
        echo "</tr>\n";
        echo "</table>\n\n";
    }
    echo "<br><br>\n";
    echo "</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    /*************************************/
    /* affichage des zones de signature  */
    /*************************************/
    echo "\n<!-- affichage des zones de signature -->\n";
    echo "<br>\n";
    echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"770\">\n";
    echo "<tr align=\"center\">\n";
    echo "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n";
    echo "<td align=\"left\">\n";
    echo "<b>" . _('editions_date') . " : <br>" . _('editions_signature_1') . " :</b><br><br><br><br><br><br><br><br><br><br>\n";
    echo "</td>\n";
    echo "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n";
    echo "<td align=\"left\">\n";
    echo "<b>" . _('editions_date') . " : <br>" . _('editions_signature_2') . " :</b><br><i>(" . _('editions_cachet_etab') . ")</i><br><br><br><br><br><br><br><br><br>\n";
    echo "</td>\n";
    echo "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    /*************************************/
    /* affichage du texte en bas de page */
    /*************************************/
    echo "\n<!-- affichage du texte en bas de page -->\n";
    echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"770\">\n";
    echo "<tr align=\"center\">\n";
    echo "<td><br>" . $_SESSION['config']['texte_bas_edition_papier'] . "</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
}
コード例 #11
0
ファイル: Fonctions.php プロジェクト: TexGG/Libertempo
 public static function affiche_etat_demande_user_for_resp($user_login, $tab_user, $tab_grd_resp)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $session = session_id();
     $return = '';
     // Récupération des informations
     $sql2 = "SELECT 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, p_num " . "FROM conges_periode " . "WHERE p_login = '******' AND p_etat ='demande' " . "ORDER BY p_date_deb";
     $ReqLog2 = \includes\SQL::query($sql2);
     $count2 = $ReqLog2->num_rows;
     if ($count2 == 0) {
         $return .= '<b>' . _('resp_traite_user_aucune_demande') . '</b><br><br>';
     } else {
         // recup dans un tableau des types de conges
         $tab_type_all_abs = recup_tableau_tout_types_abs();
         // AFFICHAGE TABLEAU
         $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '&onglet=traite_user" method="POST">';
         $return .= '<table cellpadding="2" class="tablo">';
         $return .= '<thead>';
         $return .= '<tr>';
         $return .= '<th>' . _('divers_debut_maj_1') . '</th>';
         $return .= '<th>' . _('divers_fin_maj_1') . '</th>';
         $return .= '<th>' . _('divers_nb_jours_pris_maj_1') . '</th>';
         $return .= '<th>' . _('divers_comment_maj_1') . '</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_user_motif_refus') . '</th>';
         if ($_SESSION['config']['affiche_date_traitement']) {
             $return .= '<th>' . _('divers_date_traitement') . '</th>';
         }
         $return .= '</tr>';
         $return .= '</thead>';
         $return .= '<tbody>';
         $i = true;
         $tab_checkbox = array();
         while ($resultat2 = $ReqLog2->fetch_array()) {
             $sql_date_deb = $resultat2["p_date_deb"];
             $sql_date_fin = $resultat2["p_date_fin"];
             $sql_date_deb_fr = eng_date_to_fr($resultat2["p_date_deb"]);
             $sql_date_fin_fr = eng_date_to_fr($resultat2["p_date_fin"]);
             $sql_demi_jour_deb = $resultat2["p_demi_jour_deb"];
             $sql_demi_jour_fin = $resultat2["p_demi_jour_fin"];
             $sql_nb_jours = affiche_decimal($resultat2["p_nb_jours"]);
             $sql_commentaire = $resultat2["p_commentaire"];
             $sql_type = $resultat2["p_type"];
             $sql_date_demande = $resultat2["p_date_demande"];
             $sql_date_traitement = $resultat2["p_date_traitement"];
             $sql_num = $resultat2["p_num"];
             if ($sql_demi_jour_deb == "am") {
                 $demi_j_deb = _('divers_am_short');
             } else {
                 $demi_j_deb = _('divers_pm_short');
             }
             if ($sql_demi_jour_fin == "am") {
                 $demi_j_fin = _('divers_am_short');
             } else {
                 $demi_j_fin = _('divers_pm_short');
             }
             // on construit la chaine qui servira de valeur à passer dans les boutons-radio
             $chaine_bouton_radio = "{$user_login}--{$sql_nb_jours}--{$sql_type}--{$sql_date_deb}--{$sql_demi_jour_deb}--{$sql_date_fin}--{$sql_demi_jour_fin}";
             // si le user fait l'objet d'une double validation on a pas le meme resultat sur le bouton !
             if ($tab_user['double_valid'] == "Y") {
                 /*******************************/
                 /* 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
                     $boutonradio1 = "<input type=\"radio\" name=\"tab_radio_traite_demande[{$sql_num}]\" value=\"{$chaine_bouton_radio}--VALID\">";
                 } else {
                     $boutonradio1 = "<input type=\"radio\" name=\"tab_radio_traite_demande[{$sql_num}]\" value=\"{$chaine_bouton_radio}--ACCEPTE\">";
                 }
             } else {
                 $boutonradio1 = "<input type=\"radio\" name=\"tab_radio_traite_demande[{$sql_num}]\" value=\"{$chaine_bouton_radio}--ACCEPTE\">";
             }
             $boutonradio2 = "<input type=\"radio\" name=\"tab_radio_traite_demande[{$sql_num}]\" value=\"{$chaine_bouton_radio}--REFUSE\">";
             $text_refus = "<input type=\"text\" name=\"tab_text_refus[{$sql_num}]\" size=\"20\" max=\"100\">";
             $return .= '<tr class="' . ($i ? 'i' : 'p') . '">';
             $return .= '<td>' . $sql_date_deb_fr . '_' . $demi_j_deb . '</td>';
             $return .= '<td>' . $sql_date_fin_fr . '_' . $demi_j_fin . '</td>';
             $return .= '<td>' . $sql_nb_jours . '</td>';
             $return .= '<td>' . $sql_commentaire . '</td>';
             $return .= '<td>' . $tab_type_all_abs[$sql_type]['libelle'] . '</td>';
             $return .= '<td>' . $boutonradio1 . '</td>';
             $return .= '<td>' . $boutonradio2 . '</td>';
             $return .= '<td>' . $text_refus . '</td>';
             if ($_SESSION['config']['affiche_date_traitement']) {
                 if ($sql_date_traitement == NULL) {
                     $return .= '<td class="histo-left">' . _('divers_demande') . ' : ' . $sql_date_demande . '<br>' . _('divers_traitement') . ' : pas traité</td>';
                 } else {
                     $return .= '<td class="histo-left">' . _('divers_demande') . ' : ' . $sql_date_demande . '<br>' . _('divers_traitement') . ' : ' . $sql_date_traitement . '</td>';
                 }
             }
             $return .= '</tr>';
             $i = !$i;
         }
         $return .= '</tbody>';
         $return .= '</table>';
         $return .= '<input type="hidden" name="user_login" value="' . $user_login . '">';
         $return .= '<br><input class="btn btn-success" type="submit" value="' . _('form_submit') . '">  &nbsp;&nbsp;&nbsp;&nbsp;  <input type="reset" value="' . _('form_cancel') . '">';
         $return .= '<a class="btn" href="' . $PHP_SELF . '?session=' . $session . '">' . _('form_cancel') . '</a>';
         $return .= '</form>';
     }
     return $return;
 }
コード例 #12
0
ファイル: edition_pdf.php プロジェクト: kakargias/php-conges
         $this->SetFont('Times', '', 10);
         //$pdf->Cell(0,6, 'texte_haut_edition_papier',0,1,'C');
         $this->Cell(0, 3, $_SESSION['config']['texte_bas_edition_papier'], 0, 1, 'C');
         $this->Ln(10);
     }
 }
 // recup du tableau des types de conges (seulement les conges)
 $tab_type_cong = recup_tableau_types_conges();
 // recup du tableau des types de conges exceptionnels (seulement les conges exceptionnels)
 if ($_SESSION['config']['gestion_conges_exceptionnels']) {
     $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG);
 } else {
     $tab_type_conges_exceptionnels = array();
 }
 // recup du tableau de tous les types de conges
 $tab_type_all_cong = recup_tableau_tout_types_abs($DEBUG);
 // recup infos du user
 $tab_info_user = recup_info_user_pour_edition($login);
 // recup infos de l'édition
 $tab_info_edition = recup_info_edition($edit_id);
 /**************************************/
 /* on commence l'affichage ...        */
 /**************************************/
 header('content-type: application/pdf');
 //header('content-Disposition: attachement; filename="downloaded.pdf"');    // pour IE
 $pdf = new PDF('P', 'mm', 'A4', true, "UTF-8");
 //$pdf->Open();
 $pdf->AddPage();
 $pdf->SetFillColor(200);
 /**************************************/
 /* affichage du texte en haut de page */
コード例 #13
0
ファイル: Fonctions.php プロジェクト: TexGG/Libertempo
    /**
     * Encapsule le comportement du module calendrier
     *
     * @param string $session
     *
     * @return void
     * @access public
     * @static
     */
    public static function calendrierModule($session)
    {
        $return = '';
        if (substr($session, 0, 9) != "phpconges") {
            session_start();
            $_SESSION['config'] = init_config_tab();
            // on initialise le tableau des variables de config
            if ($_SESSION['config']['consult_calendrier_sans_auth'] == FALSE) {
                redirect(ROOT_PATH . 'index.php');
            }
        } else {
            include_once INCLUDE_PATH . 'session.php';
        }
        $script = '<script language=javascript>
        function afficher(id)
        {
            el = document.getElementById(id);
            el.style.display = "block";
        }

        function cacher(id)
        {
            el = document.getElementById(id);
            el.style.display = "none";
        }
        </script>';
        /*************************************/
        // recup des parametres reçus :
        // SERVER
        $PHP_SELF = $_SERVER['PHP_SELF'];
        // GET / POST
        $selected = getpost_variable('selected');
        $printable = getpost_variable('printable', 0);
        $year = getpost_variable('year', date("Y"));
        $mois = getpost_variable('mois', date("n"));
        $first_jour = getpost_variable('first_jour', 1);
        //    $first_load    = getpost_variable('first_load', "Y") ;
        $select_groupe = getpost_variable('select_groupe', 0);
        /*************************************/
        // 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();
        }
        // renvoit un tableau de tableau contenant les infos des types de conges et absences
        $tab_type_absence = recup_tableau_tout_types_abs();
        //    echo "<hr align=\"center\" size=\"2\" width=\"90%\"> \n";
        $jour_today = date("j");
        $mois_today = date("m");
        $year_today = date("Y");
        $timestamp_today = mktime(0, 0, 0, $mois_today, $jour_today, $year_today);
        $mois_timestamp = mktime(0, 0, 0, $mois, 1, $year);
        $nom_mois = date_fr("F", $mois_timestamp);
        $group_names = get_groups_name();
        // AFFICHAGE PAGE
        $return .= '<div id="main-calendar" class="main-content">';
        if ($_SESSION['config']['gestion_groupes'] && $printable != 1) {
            // affiche le select des groupes du user OU les groupes du resp (si user est resp) OU tous les groupes (si option de config ok)
            $return .= '<div class="pull-right">';
            $return .= \calendrier\Fonctions::affiche_select_groupe($select_groupe, $selected, $printable, $year, $mois, $first_jour, $group_names);
            $return .= '</div>';
        }
        $return .= '<h1>' . _('calendrier_titre') . '</h1>';
        if ($_SESSION['config']['gestion_groupes'] && $select_groupe != 0) {
            $return .= '<h2>' . _('divers_groupe') . ' : <strong>' . $group_names[$select_groupe] . '</strong></h2>';
        }
        $return .= '<hr/>';
        $return .= '<h3 class="current-month">' . $nom_mois . ' ' . $year . '</h3>';
        $return .= '<hr/>';
        /**********************/
        /* Boutons de defilement */
        if ($printable != 1) {
            $return .= \calendrier\Fonctions::affichage_boutons_defilement($first_jour, $mois, $year, $select_groupe);
        }
        /***********************************/
        /* AFFICHAGE  TABLEAU (CALENDRIER) */
        $return .= \calendrier\Fonctions::affichage_calendrier($year, $mois, $first_jour, $timestamp_today, $printable, $selected, $tab_type_absence, $select_groupe);
        /**********************/
        /* Boutons de defilement */
        if ($printable != 1) {
            $return .= '<tr>';
            $return .= '<td align="center">';
            $return .= \calendrier\Fonctions::affichage_boutons_defilement($first_jour, $mois, $year, $select_groupe);
            $return .= '</td>';
            $return .= '</tr>';
        }
        $return .= '<tr>';
        $return .= '</tr>';
        $return .= '</table>';
        if ($printable != 1) {
            $return .= '<br/><a href="' . $PHP_SELF . '?session=' . $session . '&printable=1&year=' . $year . '&mois=' . $mois . '&first_jour=' . $first_jour . '&select_groupe=' . $select_groupe . '" target="_blank" method="post">';
            $return .= '<i class="fa fa-print"></i>';
            $return .= _('calendrier_imprimable');
            $return .= '</a>';
            $return .= '<br><a href="calendrier-pdf.php?session=' . $session . '&printable=1&year=' . $year . '&mois=' . $mois . '&first_jour=' . $first_jour . '&select_groupe=' . $select_groupe . '" target="_blank" method="post">';
            $return .= '<img src="' . TEMPLATE_PATH . 'img/pdf_22x22_2.png" width="22" height="22" border="0" title="Version PDF">';
            $return .= 'PDF';
            $return .= '</a>';
        }
        $return .= '<br><br><table cellpadding="1" class="calendar table-responsive table-bordered table-stripped">';
        $return .= '<tr align="center">';
        $return .= '<td bgcolor="#FFFFFF" class="cal-legende"> - </td>';
        $return .= '<td class="cal-legende"> </td>';
        $return .= '</tr>';
        $return .= '<tr align="center">';
        $return .= '<td bgcolor="#DCDCDC" class="cal-legende"> - </td>';
        $return .= '<td class="cal-legende">' . _('calendrier_legende_we') . '</td>';
        $return .= '</tr>';
        $return .= '<tr align="center">';
        $return .= '<td bgcolor="#8addf2" class="cal-legende">abs</td>';
        $return .= '<td class="cal-legende">' . _('calendrier_legende_conges') . '</td>';
        $return .= '</tr>';
        $return .= '<tr align="center">';
        $return .= '<td bgcolor="#ffc1ff" class="cal-legende">abs</td>';
        $return .= '<td class="cal-legende">' . _('calendrier_legende_demande') . '</td>';
        $return .= '</tr>';
        $return .= '<tr align="center">';
        $return .= '<td bgcolor="#ffffad" class="cal-legende"> - </td>';
        $return .= '<td class="cal-legende">' . _('calendrier_legende_part_time') . '</td>';
        $return .= '</tr>';
        $return .= '<tr align="center">';
        $return .= '<td bgcolor="#C3C3C3" class="cal-legende">abs</td>';
        $return .= '<td class="cal-legende">' . _('calendrier_legende_abs') . '</td>';
        $return .= '</tr>';
        $return .= '<tr align="center">';
        $return .= '<td bgcolor="#CEB6FF" class="cal-legende">abs</td>';
        $return .= '<td class="cal-legende">' . _('divers_fermeture') . '</td>';
        $return .= '</tr>';
        $return .= '</table>';
        $return .= '</div>';
        /********************/
        /* bouton retour */
        /********************/
        if ($printable == 1) {
            // appel de la fenetre d'impression directe
            ?>
            <script type="text/javascript" language="javascript1.2">
            <!--
            // Do print the page
            if (typeof(window.print) != 'undefined') {
                window.print();
            }
            //-->
            </script>
            <?php 
        }
        return $return;
    }
コード例 #14
0
ファイル: Fonctions.php プロジェクト: TexGG/Libertempo
 public static function export_ical($user_login)
 {
     $good_date_debut = date("Y-m-d", strtotime("-1 year"));
     $good_date_fin = date("Y-m-d", strtotime('+1 year'));
     /********************************/
     // initialisation de variables communes a ttes les periodes
     // recup des infos du user
     $tab_infos_user = recup_infos_du_user($user_login, "");
     $tab_types_abs = recup_tableau_tout_types_abs();
     /********************************/
     // affichage dans un fichier non html !
     header("content-type: application/ics");
     header("Content-disposition: filename=libertempo.ics");
     echo "BEGIN:VCALENDAR\r\n" . "PRODID:-//Libertempo \r\n" . "VERSION:2.0\r\n\r\n";
     // SELECT des periodes à exporter .....
     // on prend toutes les periodes de conges qui chevauchent la periode donnée par les dates demandées
     $sql_periodes = "SELECT p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_commentaire, p_type, p_etat, p_date_demande  " . 'FROM conges_periode WHERE p_login=\'' . \includes\SQL::quote($user_login) . '\' AND ((p_date_deb>=\'' . \includes\SQL::quote($good_date_debut) . '\' AND  p_date_deb<=\'' . \includes\SQL::quote($good_date_fin) . '\') OR (p_date_fin>=\'' . \includes\SQL::quote($good_date_debut) . '\' AND p_date_fin<=\'' . \includes\SQL::quote($good_date_fin) . '\'))';
     $res_periodes = \includes\SQL::query($sql_periodes);
     if ($num_periodes = $res_periodes->num_rows != 0) {
         while ($result_periodes = $res_periodes->fetch_array()) {
             $sql_date_debut = $result_periodes['p_date_deb'];
             $sql_demi_jour_deb = $result_periodes['p_demi_jour_deb'];
             $sql_date_fin = $result_periodes['p_date_fin'];
             $sql_demi_jour_fin = $result_periodes['p_demi_jour_fin'];
             $sql_type = $result_periodes['p_type'];
             $sql_etat = $result_periodes['p_etat'];
             $sql_dateh_demande = $result_periodes['p_date_demande'];
             // PB : les fichiers ical et vcal doivent être encodés en UTF-8, or php ne gère pas l'utf-8
             // on remplace donc les caractères spéciaux de la chaine de caractères
             $sql_comment = \export\Fonctions::remplace_accents($result_periodes['p_commentaire']);
             // même problème
             $type_abs = \export\Fonctions::remplace_accents($tab_types_abs[$sql_type]['libelle']);
             //conversion format date
             $replaceThis = array('-' => '', ':' => '', ' ' => 'T');
             $sql_date_dem = str_replace(array_keys($replaceThis), $replaceThis, $sql_dateh_demande);
             $DTSTAMP = $sql_date_dem . "Z";
             $tab_date_deb = explode("-", $sql_date_debut);
             $tab_date_fin = explode("-", $sql_date_fin);
             //conversion etat demande en status
             switch ($sql_etat) {
                 case "ok":
                     $status = "CONFIRMED";
                     break;
                 case "refus":
                     $status = "CANCELLED";
                     break;
                 default:
                     $status = "TENTATIVE";
             }
             if ($sql_demi_jour_deb == "am") {
                 $DTSTART = $tab_date_deb[0] . $tab_date_deb[1] . $tab_date_deb[2] . "T070000Z";
             } else {
                 $DTSTART = $tab_date_deb[0] . $tab_date_deb[1] . $tab_date_deb[2] . "T120000Z";
             }
             // .....
             if ($sql_demi_jour_fin == "am") {
                 $DTEND = $tab_date_fin[0] . $tab_date_fin[1] . $tab_date_fin[2] . "T120000Z";
             } else {
                 $DTEND = $tab_date_fin[0] . $tab_date_fin[1] . $tab_date_fin[2] . "T210000Z";
             }
             // .....
             echo "BEGIN:VEVENT\r\n" . "DTSTAMP:{$DTSTAMP}\r\n" . "ORGANIZER:MAILTO:" . $tab_infos_user['email'] . "\r\n" . "CREATED:{$DTSTART}\r\n" . "STATUS:{$status}\r\n" . "UID:{$user_login}@Libertempo-{$sql_date_dem}\r\n";
             if ($sql_comment != "") {
                 echo "DESCRIPTION:{$sql_comment}\r\n";
             }
             echo "SUMMARY:{$type_abs}\r\n" . "CLASS:PUBLIC\r\n" . "PRIORITY:1\r\n" . "DTSTART:{$DTSTART}\r\n" . "DTEND:{$DTEND}\r\n" . "TRANSP:OPAQUE\r\n" . "END:VEVENT\r\n\r\n";
         }
     }
     echo "END:VCALENDAR\r\n";
 }
コード例 #15
0
ファイル: Fonctions.php プロジェクト: TexGG/Libertempo
 public static function edition_pdf($login, $edit_id)
 {
     $fpdf_filename = LIBRARY_PATH . 'tcpdf/tcpdf.php';
     // verif si la librairie fpdf est présente
     if (!is_readable($fpdf_filename)) {
         echo _('fpdf_not_valid') . "<br> !";
     } else {
         // recup du tableau des types de conges (seulement les conges)
         $tab_type_cong = recup_tableau_types_conges();
         // recup du tableau des types de conges exceptionnels (seulement les conges exceptionnels)
         if ($_SESSION['config']['gestion_conges_exceptionnels']) {
             $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels();
         } else {
             $tab_type_conges_exceptionnels = array();
         }
         // recup du tableau de tous les types de conges
         $tab_type_all_cong = recup_tableau_tout_types_abs();
         // recup infos du user
         $tab_info_user = \edition\Fonctions::recup_info_user_pour_edition($login);
         // recup infos de l'édition
         $tab_info_edition = \edition\Fonctions::recup_info_edition($edit_id);
         /**************************************/
         /* on commence l'affichage ...        */
         /**************************************/
         header('content-type: application/pdf');
         //header('content-Disposition: attachement; filename="downloaded.pdf"');    // pour IE
         $pdf = new \edition\PDF('P', 'mm', 'A4', true, "UTF-8");
         $pdf->AddPage();
         $pdf->SetFillColor(200);
         /**************************************/
         /* affichage du texte en haut de page */
         /**************************************/
         // fait dans le header de la classe (cf + haut)
         /**************************************/
         /* affichage du TITRE                 */
         /**************************************/
         $pdf->SetFont('Times', 'B', 18);
         $pdf->Cell(0, 5, $tab_info_user['nom'] . " " . $tab_info_user['prenom'], 0, 1, 'C');
         $pdf->Ln(5);
         $pdf->SetFont('Times', 'B', 13);
         $tab_date = explode("-", $tab_info_edition['date']);
         $pdf->Cell(0, 5, _('editions_bilan_au') . " " . $tab_date[2] . " / " . $tab_date[1] . " / " . $tab_date[0], 0, 1, 'C');
         $pdf->Ln(4);
         /****************************/
         /* tableau Bilan des Conges */
         /****************************/
         // affichage en pdf du tableau récapitulatif des solde de congés d'un user
         \edition\Fonctions::affiche_pdf_tableau_bilan_conges_user_edtion($pdf, $tab_info_user, $tab_info_edition, $tab_type_cong, $tab_type_conges_exceptionnels);
         // affichage de la quotité
         $pdf->SetFont('Times', 'B', 13);
         $quotite = $tab_info_user['quotite'];
         $pdf->Cell(0, 5, _('divers_quotite') . "  :  {$quotite} % ", 0, 1, 'C');
         $pdf->Ln(4);
         $pdf->Ln(8);
         $pdf->SetFont('Times', 'BU', 11);
         $pdf->Cell(0, 5, _('editions_historique') . " :", 0, 1, 'C');
         $pdf->Ln(5);
         /*********************************************/
         /* Tableau Historique des Conges et demandes */
         /*********************************************/
         $pdf->SetFont('Times', 'B', 10);
         //test d'une ligne à 120 caractères
         //$ligne120="123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";
         //$pdf->Cell(0, 5, $ligne120 ,0,1,'C');
         // Récupération des informations
         // on ne recup QUE les periodes de l'edition choisie
         $sql2 = "SELECT p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_etat, p_date_demande, p_date_traitement ";
         $sql2 = $sql2 . "FROM conges_periode ";
         $sql2 = $sql2 . "WHERE p_edition_id = {$edit_id} ";
         $sql2 = $sql2 . "ORDER BY p_date_deb ASC ";
         $ReqLog2 = \includes\SQL::query($sql2);
         $count2 = $ReqLog2->num_rows;
         if ($count2 == 0) {
             $pdf->Cell(0, 5, _('editions_aucun_conges') . " ...", 0, 1, 'C');
             $pdf->Ln(5);
         } else {
             // AFFICHAGE TABLEAU
             // decalage pour centrer
             $decalage = 5;
             /*************************************/
             /* affichage anciens soldes          */
             /*************************************/
             // affichage en pdf des anciens soldes de congés d'un user
             \edition\Fonctions::affiche_pdf_ancien_solde($pdf, $login, $edit_id, $tab_type_cong, $tab_type_conges_exceptionnels, $decalage);
             $pdf->Ln(2);
             // (largeur totale page = 210 ( - 2x10 de marge))
             // tailles des cellules du tableau
             if ($_SESSION['config']['affiche_date_traitement']) {
                 \edition\Fonctions::affiche_tableau_conges_avec_date_traitement($pdf, $ReqLog2, $decalage, $tab_type_all_cong);
             } else {
                 \edition\Fonctions::affiche_tableau_conges_normal($pdf, $ReqLog2, $decalage, $tab_type_all_cong);
             }
             $pdf->Ln(2);
             /*************************************/
             /* affichage nouveaux soldes         */
             /*************************************/
             // affichage en pdf des nouveaux soldes de congés d'un user
             \edition\Fonctions::affiche_pdf_nouveau_solde($pdf, $login, $tab_info_edition, $tab_type_cong, $tab_type_conges_exceptionnels, $decalage);
         }
         $pdf->Ln(8);
         /*************************************/
         /* affichage des zones de signature  */
         /*************************************/
         $pdf->SetFont('Times', 'B', 10);
         // decalage pour centrer
         $pdf->Cell(20);
         $pdf->Cell(70, 5, _('editions_date') . " :", 0, 0);
         $pdf->Cell(70, 5, _('editions_date') . " :", 0, 1);
         // decalage pour centrer
         $pdf->Cell(20);
         $pdf->Cell(70, 5, _('editions_signature_1') . " :", 0, 0);
         $pdf->Cell(70, 5, _('editions_signature_2') . " :", 0, 1);
         $pdf->SetFont('Times', 'I', 10);
         // decalage pour centrer
         $pdf->Cell(20);
         $pdf->Cell(70, 5, "", 0, 0);
         $pdf->Cell(70, 5, "(" . _('editions_cachet_etab') . ")", 0, 1);
         $pdf->Ln(30);
         /*************************************/
         /* affichage du texte en bas de page */
         /*************************************/
         // fait dans le footer de la classe (cf + haut)
         $pdf->Output();
     }
 }