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