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"; }
// 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";
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(); }
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\"> </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'] . " (" . $nb_jours_current_month[$id] . ")</td>"; } else { echo "<td class=\"cal-user\">" . $tab_conges['solde'] . "</td>"; } } } echo "\n</tr>\n"; } echo "</table>\n\n"; }
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"; }
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"; } }
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; }
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; }
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"; } }
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') . " : {$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> </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> </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> </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"; }
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') . '"> <input type="reset" value="' . _('form_cancel') . '">'; $return .= '<a class="btn" href="' . $PHP_SELF . '?session=' . $session . '">' . _('form_cancel') . '</a>'; $return .= '</form>'; } return $return; }
$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 */
/** * 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; }
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"; }
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(); } }