function enregistrement_edition($login, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $tab_solde_user = array(); $sql1 = 'SELECT su_abs_id, su_solde FROM conges_solde_user where su_login = \'' . SQL::quote($login) . '\''; $ReqLog1 = SQL::query($sql1); while ($resultat1 = $ReqLog1->fetch_array()) { $sql_id = $resultat1["su_abs_id"]; $tab_solde_user[$sql_id] = $resultat1["su_solde"]; } $new_edition_id = get_last_edition_id() + 1; $aujourdhui = date("Y-m-d"); $num_for_user = get_num_last_edition_user($login) + 1; /*************************************************/ /* Insertion dans le table conges_edition_papier */ /*************************************************/ $sql_insert = "INSERT INTO conges_edition_papier\n\t\t\tSET ep_id={$new_edition_id}, ep_login='******', ep_date='{$aujourdhui}', ep_num_for_user={$num_for_user} "; $result_insert = SQL::query($sql_insert); /*************************************************/ /* Insertion dans le table conges_solde_edition */ /*************************************************/ // recup du tableau des types de conges (seulement les conges) $tab_type_cong = recup_tableau_types_conges($DEBUG); foreach ($tab_type_cong as $id_abs => $libelle) { $sql_insert_2 = "INSERT INTO conges_solde_edition\n\t\t\t\tSET se_id_edition={$new_edition_id}, se_id_absence={$id_abs}, se_solde={$tab_solde_user[$id_abs]} "; $result_insert_2 = SQL::query($sql_insert_2); } if ($_SESSION['config']['gestion_conges_exceptionnels']) { $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG); foreach ($tab_type_conges_exceptionnels as $id_abs => $libelle) { $sql_insert_3 = "INSERT INTO conges_solde_edition SET se_id_edition={$new_edition_id}, se_id_absence={$id_abs}, se_solde={$tab_solde_user[$id_abs]} "; $result_insert_3 = SQL::query($sql_insert_3); } } /********************************************************************************************/ /* Update du num edition dans la table periode pour les Conges et demandes de cette edition */ /********************************************************************************************/ // recup de la liste des id des absence de type conges ! $sql_list = "SELECT ta_id FROM conges_type_absence WHERE ta_type='conges' OR ta_type='conges_exceptionnels'"; $ReqLog_list = SQL::query($sql_list); $list_abs_id = ""; while ($resultat_list = $ReqLog_list->fetch_array()) { if ($list_abs_id == "") { $list_abs_id = $resultat_list['ta_id']; } else { $list_abs_id = $list_abs_id . ", " . $resultat_list['ta_id']; } } $sql_update = 'UPDATE conges_periode SET p_edition_id=\'' . $new_edition_id . '\' WHERE p_login = \'' . $login . '\' AND p_edition_id IS NULL AND (p_type IN (\'' . $list_abs_id . '\') ) AND (p_etat!=\'demande\') '; $ReqLog_update = SQL::query($sql_update); return $new_edition_id; }
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"; } }
/*********************************/ /* COMPOSITION DU HEADER... */ /*********************************/ $add_css = '<style>#onglet_menu .onglet{ width: ' . str_replace(',', '.', 100 / count($onglets)) . '% ;}</style>'; header_menu('admin', $_SESSION['config']['titre_admin_index'], $add_css); /*********************************/ /* AFFICHAGE DES ONGLETS... */ /*********************************/ echo '<div id="onglet_menu">'; foreach ($onglets as $key => $title) { echo '<div class="onglet ' . ($onglet == $key ? ' active' : '') . '" > <a href="' . $PHP_SELF . '?session=' . $session . '&onglet=' . $key . '">' . $title . '</a> </div>'; } echo '</div>'; /*********************************/ /* AFFICHAGE DE L'ONGLET ... */ /*********************************/ /** initialisation des tableaux des types de conges/absences **/ // recup du tableau des types de conges (seulement les conges) $tab_type_cong = recup_tableau_types_conges($DEBUG); // recup du tableau des types de conges exceptionnels (seulement les conges exceptionnels) $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG); echo '<div class="' . $onglet . ' main-content">'; include ROOT_PATH . 'admin/admin_' . $onglet . '.php'; echo '</div>'; /*********************************/ /* AFFICHAGE DU BOTTOM ... */ /*********************************/ bottom(); exit;
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(); global $content; // 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 : $content .= "<table cellpadding=\"1\" class=\"tablo-cal\" width=\"80%\">\n"; } else { // si version imprimable : $content .= "<table cellpadding=\"1\" cellspacing=\"0\" border=\"1\" width=\"80%\">\n"; } /*************************************/ // affichage premiere ligne (semaines) $content .= "<tr align=\"center\">\n"; // affichage nom prenom quotité $nb_colonnes = 3; $content .= "\t<td class=\"cal-user\" rowspan=\"2\">" . _('divers_nom_maj') . "</td>\n\n"; $content .= "\t<td class=\"cal-user\" rowspan=\"2\">" . _('divers_prenom_maj') . "</td>\n\n"; $content .= "\t<td class=\"cal-user\" rowspan=\"2\">%</td>"; // 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 : $content .= "<td class=\"cal-day\" >$j_num_jour_semaine / $j_num_semaine</td>"; if ($j == $first_jour) { $colspan = 8 - $j_num_jour_semaine; $content .= "<td class=\"cal-day-first\" colspan=\"{$colspan}\" >" . _('divers_semaine') . " {$j_num_semaine}</td>\n"; } else { // on affiche que les lundi if ($j_num_jour_semaine == 1) { $content .= "<td class=\"cal-day\" colspan=\"7\" >" . _('divers_semaine') . " {$j_num_semaine}</td>\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 : $content .= "<td class=\"cal-day\" >$j_num_jour_semaine / $j_num_semaine</td>"; if ($j == $first_jour) { $colspan = 8 - $j_num_jour_semaine; $content .= "<td class=\"cal-day-first\" colspan=\"{$colspan}\" >" . _('divers_semaine') . " {$j_num_semaine}</td>\n"; } else { // on affiche que les lundi if ($j_num_jour_semaine == 1) { $content .= "<td class=\"cal-day\" colspan=\"7\" >" . _('divers_semaine') . " {$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 // foreach($tab_type_cong as $id => $libelle) // { // $content .= "<td class=\"cal-user\" rowspan=\"2\">". _('divers_solde') ." $libelle</td>\n"; // $nb_colonnes=$nb_colonnes+1; // } // // // if ($_SESSION['config']['gestion_conges_exceptionnels']) // { // foreach($tab_type_cong_excep as $id => $libelle) // { // $content .= "<td class=\"cal-user\" rowspan=\"2\">". _('divers_solde') ." $libelle</td>\n"; // $nb_colonnes=$nb_colonnes+1; // } // } // } $content .= "</tr>\n\n"; /*************************************/ // affichage 2ieme ligne (dates) $content .= "<tr align=\"center\">\n"; // on affiche pas car on a fait de "rowspan" à la ligne supérieure // affichage d'une cellule vide sous les titres //$content .= " <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); $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) $content .= "<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_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) { $content .= "<td class=\"cal-day {$td_second_class}\" title=\"{$j_date_fr} / " . _('divers_semaine') . " {$j_num_semaine}\"><b>{$j_name} {$j}/{$mois_select}</b></td>"; } else { $content .= "<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++) { $content .= '<td></td>'; } } $content .= "</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) { $content .= "<tr align=\"center\" class=\"cal-ligne-user-edit\">\n"; } elseif ($selected == $sql_login) { $content .= "<tr align=\"center\" class=\"cal-ligne-user-selected\">\n"; } else { $content .= "<tr align=\"center\" class=\"cal-ligne-user\">\n"; } if ($printable == 1) { $text_nom = "<b>{$sql_nom}</b>"; } 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}</a>"; } // affichage nom prenom quotité $content .= "<td class=\"cal-user\">{$text_nom}</td><td class=\"cal-user\">{$sql_prenom}</td><td class=\"cal-user\">{$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++) { $content .= '<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']) ) // //$content .= "<td class=\"cal-user\">"./*$tab_conges['solde'].*/" ("./*$nb_jours_current_month[$id].*/")</td>"; // else // //$content .= "<td class=\"cal-user\">"./*$tab_conges['solde'].*/"</td>"; // } // } $content .= "\n</tr>\n"; } $content .= "</table>\n\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 commit_update($u_login_to_update, &$tab_new_user, &$tab_new_jours_an, &$tab_new_solde, &$tab_new_reliquat, $tab_checkbox_sem_imp, $tab_checkbox_sem_p, $DEBUG = FALSE) { //$DEBUG=TRUE; $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $result = TRUE; // recup du tableau des types de conges (seulement les conges) $tab_type_conges = recup_tableau_types_conges($DEBUG); $tab_type_conges_excep = array(); if ($_SESSION['config']['gestion_conges_exceptionnels']) { $tab_type_conges_excep = recup_tableau_types_conges_exceptionnels($DEBUG); } if ($DEBUG) { echo "tab_new_jours_an = <br>\n"; print_r($tab_new_jours_an); echo "<br>\n"; echo "tab_new_solde = <br>\n"; print_r($tab_new_solde); echo "<br>\n"; echo "tab_new_reliquat = <br>\n"; print_r($tab_new_reliquat); echo "<br>\n"; echo "tab_type_conges = <br>\n"; print_r($tab_type_conges); echo "<br>\n"; echo "tab_type_conges_excep = <br>\n"; print_r($tab_type_conges_excep); echo "<br>\n"; } echo "{$u_login_to_update}---" . $tab_new_user['nom'] . "---" . $tab_new_user['prenom'] . "---" . $tab_new_user['quotite'] . "---" . $tab_new_user['is_resp'] . "---" . $tab_new_user['resp_login'] . "---" . $tab_new_user['is_admin'] . "---" . $tab_new_user['is_hr'] . "---" . $tab_new_user['is_active'] . "---" . $tab_new_user['see_all'] . "---" . $tab_new_user['email'] . "---" . $tab_new_user['login'] . "<br>\n"; $valid_1 = TRUE; $valid_2 = TRUE; $valid_3 = TRUE; $valid_reliquat = TRUE; // verification de la validite de la saisie du nombre de jours annuels et du solde pour chaque type de conges foreach ($tab_type_conges as $id_conges => $libelle) { $valid_1 = $valid_1 && verif_saisie_decimal($tab_new_jours_an[$id_conges], $DEBUG); //verif la bonne saisie du nombre d?cimal $valid_2 = $valid_2 && verif_saisie_decimal($tab_new_solde[$id_conges], $DEBUG); //verif la bonne saisie du nombre d?cimal $valid_reliquat = $valid_reliquat && verif_saisie_decimal($tab_new_reliquat[$id_conges], $DEBUG); //verif la bonne saisie du nombre d?cimal } // si l'application gere les conges exceptionnels ET si des types de conges exceptionnels ont été définis if ($_SESSION['config']['gestion_conges_exceptionnels'] && count($tab_type_conges_excep) > 0) { $valid_3 = TRUE; // vérification de la validité de la saisie du nombre de jours annuels et du solde pour chaque type de conges exceptionnels foreach ($tab_type_conges_excep as $id_conges => $libelle) { $valid_3 = $valid_3 && verif_saisie_decimal($tab_new_solde[$id_conges], $DEBUG); //verif la bonne saisie du nombre décimal } } else { $valid_3 = TRUE; } if ($DEBUG) { echo "valid_1 = {$valid_1} // valid_2 = {$valid_2} // valid_3 = {$valid_3} // valid_reliquat = {$valid_reliquat} <br>\n"; } // si aucune erreur de saisie n'a ete commise if ($valid_1 && $valid_2 && $valid_3 && $valid_reliquat) { // UPDATE de la table conges_users $sql = 'UPDATE conges_users SET u_nom=\'' . SQL::quote($tab_new_user['nom']) . '\', u_prenom=\'' . SQL::quote($tab_new_user['prenom']) . '\', u_is_resp=\'' . SQL::quote($tab_new_user['is_resp']) . '\', u_resp_login=\'' . SQL::quote($tab_new_user['resp_login']) . '\',u_is_admin=\'' . SQL::quote($tab_new_user['is_admin']) . '\',u_is_hr=\'' . SQL::quote($tab_new_user['is_hr']) . '\',u_is_active=\'' . SQL::quote($tab_new_user['is_active']) . '\',u_see_all=\'' . SQL::quote($tab_new_user['see_all']) . '\',u_login=\'' . SQL::quote($tab_new_user['login']) . '\',u_quotite=\'' . SQL::quote($tab_new_user['quotite']) . '\',u_email=\'' . SQL::quote($tab_new_user['email']) . '\' WHERE u_login=\'' . SQL::quote($u_login_to_update) . '\''; SQL::query($sql); /*************************************/ /* Mise a jour de la table conges_solde_user */ foreach ($tab_type_conges as $id_conges => $libelle) { $sql = 'REPLACE INTO conges_solde_user SET su_nb_an=\'' . strtr(round_to_half($tab_new_jours_an[$id_conges]), ",", ".") . '\',su_solde=\'' . strtr(round_to_half($tab_new_solde[$id_conges]), ",", ".") . '\',su_reliquat=\'' . strtr(round_to_half($tab_new_reliquat[$id_conges]), ",", ".") . '\',su_login=\'' . SQL::quote($u_login_to_update) . '\',su_abs_id=' . intval($id_conges) . ';'; echo $sql; SQL::query($sql); } if ($_SESSION['config']['gestion_conges_exceptionnels']) { foreach ($tab_type_conges_excep as $id_conges => $libelle) { $sql = 'REPLACE INTO conges_solde_user SET su_nb_an=0, su_solde=\'' . strtr(round_to_half($tab_new_solde[$id_conges]), ",", ".") . '\', su_reliquat=\'' . strtr(round_to_half($tab_new_reliquat[$id_conges]), ",", ".") . '\', su_login=\'' . SQL::quote($u_login_to_update) . '\', su_abs_id=' . intval($id_conges) . ';'; echo $sql; SQL::query($sql); } } /*************************************/ /* Mise a jour de la table artt si besoin : */ $tab_grille_rtt_actuelle = get_current_grille_rtt($u_login_to_update, $DEBUG); $tab_new_grille_rtt = tab_grille_rtt_from_checkbox($tab_checkbox_sem_imp, $tab_checkbox_sem_p, $DEBUG); if ($tab_grille_rtt_actuelle != $tab_new_grille_rtt) { /* if($tab_grille_rtt_actuelle==$tab_new_grille_rtt) { // on ne touche pas à la table artt } else { */ $new_date_deb_grille = $tab_new_user['year'] . "-" . $tab_new_user['mois'] . "-" . $tab_new_user['jour']; /****************************/ /*** phase 1 : ***/ // si la derniere grille est ancienne, on l'update (on update la date de fin de grille) // sinon, si la derniere grille date d'aujourd'hui, on la supprime // on regarde si la grille artt a deja été modifiée aujourd'hui : $sql = 'SELECT a_date_fin_grille FROM conges_artt WHERE a_login=\'' . SQL::quote($u_login_to_update) . '\' AND a_date_debut_grille=\'' . SQL::quote($new_date_deb_grille) . '\';'; $result_grille = SQL::query($sql); $count_grille = $result_grille->num_rows; if ($count_grille == 0) { // date de fin de la grille précedent : // $new_date_fin_grille = $new_date_deb_grille -1 jour ! $new_jour_num = (int) $tab_new_user['jour']; $new_mois_num = (int) $tab_new_user['mois']; $new_year_num = (int) $tab_new_user['year']; $new_date_fin_grille = date("Y-m-d", mktime(0, 0, 0, $new_mois_num, $new_jour_num - 1, $new_year_num)); // int mktime(int hour, int minute, int second, int month, int day, int year ) // UPDATE de la table conges_artt // en fait, on update la dernière grille (on update la date de fin de grille), et on ajoute une nouvelle // grille (avec sa date de début de grille) // on update la dernière grille (on update la date de fin de grille) $sql = 'UPDATE conges_artt SET a_date_fin_grille=\'' . SQL::quote($new_date_fin_grille) . '\' WHERE a_login=\'' . SQL::quote($u_login_to_update) . '\' AND a_date_fin_grille=\'9999-12-31\' '; SQL::query($sql); } else { $sql = 'DELETE FROM conges_artt WHERE a_login=\'' . SQL::quote($u_login_to_update) . '\' AND a_date_debut_grille=\'' . SQL::quote($new_date_deb_grille); SQL::query($sql); } /****************************/ /*** phase 2 : ***/ // on Insert la nouvelle grille (celle qui commence aujourd'hui) // on met à 'Y' les demi-journées de rtt (et seulement celles là) $list_columns = ""; $list_valeurs = ""; $i = 0; if ($tab_checkbox_sem_imp != "") { while (list($key, $val) = each($tab_checkbox_sem_imp)) { if ($i != 0) { $list_columns = $list_columns . ", "; $list_valeurs = $list_valeurs . ", "; } $list_columns = $list_columns . " {$key} "; $list_valeurs = $list_valeurs . " '{$val}' "; $i = $i + 1; } } if ($tab_checkbox_sem_p != "") { while (list($key, $val) = each($tab_checkbox_sem_p)) { if ($i != 0) { $list_columns = $list_columns . ", "; $list_valeurs = $list_valeurs . ", "; } $list_columns = $list_columns . " {$key} "; $list_valeurs = $list_valeurs . " '{$val}' "; $i = $i + 1; } } if ($list_columns != "" && $list_valeurs != "") { $sql = "INSERT INTO conges_artt (a_login, {$list_columns}, a_date_debut_grille ) VALUES ('{$u_login_to_update}', {$list_valeurs}, '{$new_date_deb_grille}') "; SQL::query($sql); } } // Si changement du login, (on a dèja updaté la table users (mais pas les responsables !!!)) on update toutes les autres tables // (les grilles artt, les periodes de conges et les échanges de rtt, etc ....) avec le nouveau login if ($tab_new_user['login'] != $u_login_to_update) { // update table artt $sql = 'UPDATE conges_artt SET a_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE a_login=\'' . SQL::quote($u_login_to_update) . '\' '; SQL::query($sql); // update table echange_rtt $sql = 'UPDATE conges_echange_rtt SET e_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE e_login=\'' . SQL::quote($u_login_to_update) . '\' '; SQL::query($sql); // update table edition_papier $sql = 'UPDATE conges_edition_papier SET ep_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE ep_login=\'' . SQL::quote($u_login_to_update) . '\' '; SQL::query($sql); // update table groupe_grd_resp $sql = 'UPDATE conges_groupe_grd_resp SET ggr_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE ggr_login=\'' . SQL::quote($u_login_to_update) . '\' '; SQL::query($sql); // update table groupe_resp $sql = 'UPDATE conges_groupe_resp SET gr_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE gr_login=\'' . SQL::quote($u_login_to_update) . '\' '; SQL::query($sql); // update table conges_groupe_users $sql = 'UPDATE conges_groupe_users SET gu_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE gu_login=\'' . SQL::quote($u_login_to_update) . '\' '; SQL::query($sql); // update table periode $sql = 'UPDATE conges_periode SET p_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE p_login=\'' . SQL::quote($u_login_to_update) . '\' '; SQL::query($sql); // update table conges_solde_user $sql = 'UPDATE conges_solde_user SET su_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE su_login=\'' . SQL::quote($u_login_to_update) . '\' '; SQL::query($sql); // update table conges_users $sql = 'UPDATE conges_users SET u_resp_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE u_resp_login=\'' . SQL::quote($u_login_to_update) . '\' '; SQL::query($sql); } if ($tab_new_user['login'] != $u_login_to_update) { $comment_log = "modif_user (old_login = {$u_login_to_update}) new_login = "******"modif_user login = {$u_login_to_update}"; } log_action(0, "", $u_login_to_update, $comment_log, $DEBUG); echo _('form_modif_ok') . " !<br><br> \n"; } else { echo _('form_modif_not_ok') . " !<br><br> \n"; } }
function affiche_formulaire_ajout_user(&$tab_new_user, &$tab_new_jours_an, &$tab_new_solde, $onglet, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); // recup du tableau des types de conges (seulement les conges) $tab_type_conges = recup_tableau_types_conges($DEBUG); // 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); } if ($DEBUG) { echo "tab_type_conges = <br>\n"; print_r($tab_type_conges); echo "<br>\n"; } /*********************/ /* Ajout Utilisateur */ /*********************/ // TITRE echo "<h1>" . _('admin_new_users_titre') . "</h1>\n"; echo '<form action="' . $PHP_SELF . '?session=' . $session . '&onglet=' . $onglet . '" method="POST">'; /****************************************/ // tableau des infos de user echo "<table class=\"table table-hover table-responsive table-condensed table-striped\" >\n"; echo "<thead>\n"; echo "<tr>\n"; if ($_SESSION['config']['export_users_from_ldap']) { echo "<th>" . _('divers_nom_maj_1') . " " . _('divers_prenom_maj_1') . "</th>\n"; } else { echo "<th>" . _('divers_login_maj_1') . "</th>\n"; echo "<th>" . _('divers_nom_maj_1') . "</th>\n"; echo "<th>" . _('divers_prenom_maj_1') . "</th>\n"; } echo "<th>" . _('divers_quotite_maj_1') . "</th>\n"; echo "<th>" . _('admin_new_users_is_resp') . "</th>\n"; echo "<th>" . _('divers_responsable_maj_1') . "</th>\n"; echo "<th>" . _('admin_new_users_is_admin') . "</th>\n"; echo "<th>" . _('admin_new_users_is_hr') . "</th>\n"; echo "<th>" . _('admin_new_users_see_all') . "</th>\n"; if (!$_SESSION['config']['export_users_from_ldap']) { echo "<th>" . _('admin_users_mail') . "</th>\n"; } if ($_SESSION['config']['how_to_connect_user'] == "dbconges") { echo "<th>" . _('admin_new_users_password') . "</th>\n"; echo "<th>" . _('admin_new_users_password') . "</th>\n"; } echo "</tr>\n"; echo "</thead>\n"; echo "<tbody>\n"; $text_nom = "<input class=\"form-control\" type=\"text\" name=\"new_nom\" size=\"10\" maxlength=\"30\" value=\"" . $tab_new_user['nom'] . "\">"; $text_prenom = "<input class=\"form-control\" type=\"text\" name=\"new_prenom\" size=\"10\" maxlength=\"30\" value=\"" . $tab_new_user['prenom'] . "\">"; if (!isset($tab_new_user['quotite']) || $tab_new_user['quotite'] == "") { $tab_new_user['quotite'] = 100; } $text_quotite = "<input class=\"form-control\" type=\"text\" name=\"new_quotite\" size=\"3\" maxlength=\"3\" value=\"" . $tab_new_user['quotite'] . "\">"; $text_is_resp = "<select class=\"form-control\" name=\"new_is_resp\" ><option value=\"N\">N</option><option value=\"Y\">Y</option></select>"; // PREPARATION DES OPTIONS DU SELECT du resp_login $text_resp_login = "******"form-control\" name=\"new_resp_login\" id=\"resp_login_id\" ><option value=\"no_resp\">" . _('admin_users_no_resp') . "</option>"; $sql2 = "SELECT u_login, u_nom, u_prenom FROM conges_users WHERE u_is_resp = \"Y\" ORDER BY u_nom, u_prenom"; $ReqLog2 = SQL::query($sql2); while ($resultat2 = $ReqLog2->fetch_array()) { $current_resp_login = $resultat2["u_login"]; if ($tab_new_user['resp_login'] == $current_resp_login) { $text_resp_login = $text_resp_login . "<option value=\"{$current_resp_login}\" selected>" . $resultat2["u_nom"] . " " . $resultat2["u_prenom"] . "</option>"; } else { $text_resp_login = $text_resp_login . "<option value=\"{$current_resp_login}\">" . $resultat2["u_nom"] . " " . $resultat2["u_prenom"] . "</option>"; } } $text_resp_login = $text_resp_login . "</select>"; $text_is_admin = "<select class=\"form-control\" name=\"new_is_admin\" ><option value=\"N\">N</option><option value=\"Y\">Y</option></select>"; $text_is_hr = "<select class=\"form-control\" name=\"new_is_hr\" ><option value=\"N\">N</option><option value=\"Y\">Y</option></select>"; $text_see_all = "<select class=\"form-control\" name=\"new_see_all\" ><option value=\"N\">N</option><option value=\"Y\">Y</option></select>"; $text_email = "<input class=\"form-control\" type=\"text\" name=\"new_email\" size=\"10\" maxlength=\"99\" value=\"" . $tab_new_user['email'] . "\">"; $text_password1 = "<input class=\"form-control\" type=\"password\" name=\"new_password1\" size=\"10\" maxlength=\"15\" value=\"\" autocomplete=\"off\" >"; $text_password2 = "<input class=\"form-control\" type=\"password\" name=\"new_password2\" size=\"10\" maxlength=\"15\" value=\"\" autocomplete=\"off\" >"; $text_login = "******"form-control\" type=\"text\" name=\"new_login\" size=\"10\" maxlength=\"98\" value=\"" . $tab_new_user['login'] . "\">"; // AFFICHAGE DE LA LIGNE DE SAISIE D'UN NOUVEAU USER echo "<tr class=\"update-line\">\n"; // Aj. D.Chabaud - Université d'Auvergne - Sept. 2005 if ($_SESSION['config']['export_users_from_ldap']) { // Récupération de la liste des utilisateurs via un ldap : // on crée 2 tableaux (1 avec les noms + prénoms, 1 avec les login) // afin de pouvoir construire une liste déroulante dans le formulaire qui suit... $tab_ldap = array(); $tab_login = array(); recup_users_from_ldap($tab_ldap, $tab_login, $DEBUG); // construction de la liste des users récupérés du ldap ... array_multisort($tab_ldap, $tab_login); // on trie les utilisateurs par le nom $lst_users = "<select multiple size=9 name=new_ldap_user[]><option>------------------</option>\n"; $i = 0; foreach ($tab_login as $login) { $lst_users .= "<option value={$tab_login[$i]}>{$tab_ldap[$i]}</option>\n"; $i++; } $lst_users .= "</select>\n"; echo "<td>{$lst_users}</td>\n"; } else { echo "<td>{$text_login}</td>\n"; echo "<td>{$text_nom}</td>\n"; echo "<td>{$text_prenom}</td>\n"; } echo "<td>{$text_quotite}</td>\n"; echo "<td>{$text_is_resp}</td>\n"; echo "<td>{$text_resp_login}</td>\n"; echo "<td>{$text_is_admin}</td>\n"; echo "<td>{$text_is_hr}</td>\n"; echo "<td>{$text_see_all}</td>\n"; if (!$_SESSION['config']['export_users_from_ldap']) { echo "<td>{$text_email}</td>\n"; } if ($_SESSION['config']['how_to_connect_user'] == "dbconges") { echo "<td>{$text_password1}</td>\n"; echo "<td>{$text_password2}</td>\n"; } echo "</tr>\n"; echo "</tbody>\n"; echo "</table>\n"; echo "<br>\n"; /****************************************/ //tableau des conges annuels et soldes echo "<table class=\"table table-hover table-responsive table-condensed table-striped\" >\n"; // ligne de titres echo "<thead>\n"; echo "<tr>\n"; echo "<th></th>\n"; echo "<th>" . _('admin_new_users_nb_par_an') . "</th>\n"; echo "<th>" . _('divers_solde') . "</th>\n"; echo "</tr>\n"; echo "</thead>\n"; echo "<tbody>\n"; $i = true; // ligne de saisie des valeurs foreach ($tab_type_conges as $id_type_cong => $libelle) { echo '<tr class="' . ($i ? 'i' : 'p') . '">'; $value_jours_an = isset($tab_new_jours_an[$id_type_cong]) ? $tab_new_jours_an[$id_type_cong] : 0; $value_solde_jours = isset($tab_new_solde[$id_type_cong]) ? $tab_new_solde[$id_type_cong] : 0; $text_jours_an = "<input class=\"form-control\" type=\"text\" name=\"tab_new_jours_an[{$id_type_cong}]\" size=\"5\" maxlength=\"5\" value=\"{$value_jours_an}\">"; $text_solde_jours = "<input class=\"form-control\" type=\"text\" name=\"tab_new_solde[{$id_type_cong}]\" size=\"5\" maxlength=\"5\" value=\"{$value_solde_jours}\">"; echo "<td>{$libelle}</td>\n"; echo "<td>{$text_jours_an}</td>\n"; echo "<td>{$text_solde_jours}</td>\n"; echo "</tr>\n"; $i = !$i; } if ($_SESSION['config']['gestion_conges_exceptionnels']) { foreach ($tab_type_conges_exceptionnels as $id_type_cong => $libelle) { echo '<tr class="' . ($i ? 'i' : 'p') . '">'; $value_solde_jours = isset($tab_new_solde[$id_type_cong]) ? $tab_new_solde[$id_type_cong] : 0; $text_jours_an = "<input type=\"hidden\" name=\"tab_new_jours_an[{$id_type_cong}]\" size=\"5\" maxlength=\"5\" value=\"0\"> "; $text_solde_jours = "<input class=\"form-control\" type=\"text\" name=\"tab_new_solde[{$id_type_cong}]\" size=\"5\" maxlength=\"5\" value=\"{$value_solde_jours}\">"; echo "<td>{$libelle}</td>\n"; echo "<td>{$text_jours_an}</td>\n"; echo "<td>{$text_solde_jours}</td>\n"; echo "</tr>\n"; $i = !$i; } } echo "</tbody>\n"; echo "</table>\n"; echo "<br>\n\n"; // saisie de la grille des jours d'abscence ARTT ou temps partiel: saisie_jours_absence_temps_partiel($tab_new_user['login'], $DEBUG); // si gestion des groupes : affichage des groupe pour y affecter le user if ($_SESSION['config']['gestion_groupes']) { echo "<br>\n"; affiche_tableau_affectation_user_groupes("", $DEBUG); } echo "<hr>\n"; echo "<input type=\"hidden\" name=\"saisie_user\" value=\"ok\">\n"; echo "<input class=\"btn btn-success\" type=\"submit\" value=\"" . _('form_submit') . "\">\n"; echo "<a class=\"btn\" href=\"{$PHP_SELF}?session={$session}\">" . _('form_cancel') . "</a>\n"; echo "</form>\n"; }
function affiche_tableau_bilan_conges_user($login) { $request = 'SELECT u_quotite FROM conges_users where u_login = "******";'; $ReqLog = \includes\SQL::query($request); $resultat = $ReqLog->fetch_array(); $sql_quotite = $resultat['u_quotite']; $return = ''; // recup dans un tableau de tableaux les nb et soldes de conges d'un user $tab_cong_user = recup_tableau_conges_for_user($login, true); // 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(); } $return .= '<table class="table table-hover table-responsive table-condensed table-bordered">'; $return .= '<thead>'; $return .= '<tr><td></td><td colspan="' . count($tab_cong_user) * 2 . '">SOLDES</td></tr>'; $return .= '<tr>'; $return .= '<th class="titre">' . _('divers_quotite') . '</th>'; foreach ($tab_cong_user as $id => $val) { if ($_SESSION['config']['gestion_conges_exceptionnels'] && in_array($id, $tab_type_conges_exceptionnels)) { $return .= '<th class="solde">' . $id . '</th>'; } else { $return .= '<th class="annuel">' . $id . ' / ' . _('divers_an_maj') . '</th><th class="solde">' . $id . '</th>'; } } $return .= '</tr>'; $return .= '</thead>'; $return .= '<tbody>'; $return .= '<tr>'; $return .= '<td class="quotite">' . $sql_quotite . '%</td>'; foreach ($tab_cong_user as $id => $val) { if ($_SESSION['config']['gestion_conges_exceptionnels'] && in_array($id, $tab_type_conges_exceptionnels)) { $return .= '<td class="solde">' . $val['solde'] . ($val['reliquat'] > 0 ? ' (' . _('dont_reliquat') . ' ' . $val['reliquat'] . ')' : '') . '</td>'; } else { $return .= '<td class="annuel">' . $val['nb_an'] . '</td><td class="solde">' . $val['solde'] . ($val['reliquat'] > 0 ? ' (' . _('dont_reliquat') . ' ' . $val['reliquat'] . ')' : '') . '</td>'; } } $return .= '</tr>'; $return .= '</tbody>'; $return .= '</table>'; return $return; }
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 affiche_tableau_bilan_conges_user($login, $DEBUG = FALSE) { $request = 'SELECT u_quotite FROM conges_users where u_login = \'' . SQL::quote($login) . '\';'; $ReqLog = SQL::query($request); $resultat = $ReqLog->fetch_array(); $sql_quotite = $resultat['u_quotite']; // recup dans un tableau de tableaux les nb et soldes de conges d'un user $tab_cong_user = recup_tableau_conges_for_user($login, true, $DEBUG); // 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); } echo '<table class="bilan_conges_user">'; echo '<thead>'; echo '<tr>'; echo '<td class="titre">' . _('divers_quotite') . '</td>'; foreach ($tab_cong_user as $id => $val) { if ($_SESSION['config']['gestion_conges_exceptionnels'] && in_array($id, $tab_type_conges_exceptionnels)) { echo '<td class="solde">' . _('divers_solde_maj') . ' ' . $id . '</td>'; } else { echo '<td class="annuel">' . $id . ' / ' . _('divers_an_maj') . '</td><td class="solde">' . _('divers_solde_maj') . ' ' . $id . '</td>'; } } echo '</tr>'; echo '</thead>'; echo '<tbody>'; echo '<tr>'; echo '<td class="quotite">' . $sql_quotite . '%</td>'; foreach ($tab_cong_user as $id => $val) { if ($_SESSION['config']['gestion_conges_exceptionnels'] && in_array($id, $tab_type_conges_exceptionnels)) { echo '<td class="solde">' . $val['solde'] . ($val['reliquat'] > 0 ? ' (' . _('dont_reliquat') . ' ' . $val['reliquat'] . ')' : '') . '</td>'; } else { echo '<td class="annuel">' . $val['nb_an'] . '</td><td class="solde">' . $val['solde'] . ($val['reliquat'] > 0 ? ' (' . _('dont_reliquat') . ' ' . $val['reliquat'] . ')' : '') . '</td>'; } } echo '</tr>'; echo '</tbody>'; echo '</table>'; }
$cloture_groupe = getpost_variable('cloture_groupe'); $tab_cloture_users = getpost_variable('tab_cloture_users'); $tab_commentaire_saisie = getpost_variable('tab_commentaire_saisie'); /*************************************/ header_popup( $_SESSION['config']['titre_resp_index'] ); /*************************************/ /*** suite de la page ***/ /*************************************/ /** initialisation des tableaux des types de conges/absences **/ // recup du tableau des types de conges (conges et congesexceptionnels) // on concatene les 2 tableaux $tab_type_cong = ( recup_tableau_types_conges( $DEBUG) + recup_tableau_types_conges_exceptionnels( $DEBUG) ); // titre echo "<H2>". _('resp_cloture_exercice_titre') ."</H2>\n\n"; if($cloture_users=="TRUE") { cloture_users($tab_type_cong, $tab_cloture_users, $tab_commentaire_saisie, $DEBUG); } elseif($cloture_globale=="TRUE") { cloture_globale($tab_type_cong, $DEBUG); } elseif($cloture_groupe=="TRUE") { cloture_globale_groupe($choix_groupe, $tab_type_cong, $DEBUG);
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; }
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"; }
function affiche_select_conges_id($DEBUG = FALSE) { $tab_conges = recup_tableau_types_conges($DEBUG); $tab_conges_except = recup_tableau_types_conges_exceptionnels($DEBUG); foreach ($tab_conges as $id => $libelle) { if ($libelle == 1) { echo "<option value=\"{$id}\" selected>{$libelle}</option>\n"; } else { echo "<option value=\"{$id}\">{$libelle}</option>\n"; } } if (count($tab_conges_except) != 0) { foreach ($tab_conges_except as $id => $libelle) { if ($libelle == 1) { echo "<option value=\"{$id}\" selected>{$libelle}</option>\n"; } else { echo "<option value=\"{$id}\">{$libelle}</option>\n"; } } } }
public static function affiche_select_conges_id() { $tab_conges = recup_tableau_types_conges(); $tab_conges_except = recup_tableau_types_conges_exceptionnels(); $return = ''; foreach ($tab_conges as $id => $libelle) { if ($libelle == 1) { $return .= '<option value="' . $id . '" selected>' . $libelle . '</option>'; } else { $return .= '<option value="' . $id . '">' . $libelle . '</option>'; } } if (count($tab_conges_except) != 0) { foreach ($tab_conges_except as $id => $libelle) { if ($libelle == 1) { $return .= '<option value="' . $id . '" selected>' . $libelle . '</option>'; } else { $return .= '<option value="' . $id . '">' . $libelle . '</option>'; } } } return $return; }
public static function affichage_calendrier($year, $mois, $first_jour, $timestamp_today, $printable, $selected, $tab_type_absence, $select_groupe) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $nb_day = date('t', mktime(1, 1, 1, $mois, 1, $year)); $return = ''; // recup du tableau des types de conges (seulement les conges) $tab_type_cong = recup_tableau_types_conges(); if ($_SESSION['config']['gestion_conges_exceptionnels']) { $tab_type_cong_excep = recup_tableau_types_conges_exceptionnels(); } /*****************************************/ /** Récupération des users à afficher: **/ $tab_all_users = \calendrier\Fonctions::recup_tableau_des_users_a_afficher($select_groupe); if ($_SESSION['config']['gestion_groupes'] && $select_groupe != 0) { $tab_logins = array_keys($tab_all_users); $tab_logins = array_map("\\includes\\SQL::quote", $tab_logins); } else { $tab_logins = false; } /** FIN de Récupération des users à afficher: **/ /************************************************/ /*************************/ /** AFFICHAGE TABLEAU **/ if ($printable != 1) { // si version ecran : $return .= '<table class="calendar table table-responsive table-bordered table-stripped">'; } else { // si version imprimable : $return .= '<table>'; } $return .= '<tr><th colspan="2"></th><th colspan="' . $nb_day . '">' . _('divers_semaine') . '</th><th colspan="8">Solde</th></tr>'; /*************************************/ // affichage premiere ligne (semaines) $return .= '<tr align="center">'; // affichage nom prenom quotité $nb_colonnes = 3; $return .= '<th rowspan="2">Utilisateur</th>'; $return .= '<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); } if ($j == $first_jour) { $colspan = 8 - $j_num_jour_semaine; $return .= '<th class="cal-day-first" colspan="' . $colspan . '" >' . $j_num_semaine . '</th>'; } 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) { $return .= '<th class="cal-day" colspan="' . $colspan . '" >' . $j_num_semaine . '</th>'; } } } // ... 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); } if ($j == $first_jour) { $colspan = 8 - $j_num_jour_semaine; $return .= '<td class="cal-day-first" colspan="' . $colspan . '">' . $j_num_semaine . '</td>'; } else { // on affiche que les lundi if ($j_num_jour_semaine == 1) { $return .= '<td class="cal-day" colspan="7" >' . $j_num_semaine . '</td>'; } } } } 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) { $return .= '<th rowspan="2">' . $abs_libelle[$id]['short_libelle'] . '</th>'; $nb_colonnes = $nb_colonnes + 1; } if ($_SESSION['config']['gestion_conges_exceptionnels']) { foreach ($tab_type_cong_excep as $id => $libelle) { $return .= '<th rowspan="2">' . $abs_libelle[$id]['short_libelle'] . '</th>'; $nb_colonnes = $nb_colonnes + 1; } } } $return .= '</tr>'; /*************************************/ // affichage 2ieme ligne (dates) $return .= '<tr>'; // 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) $return .= '<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) { $return .= '<td class="cal-day ' . $td_second_class . '" title="' . $j_date_fr . ' / ' . _('divers_semaine') . ' ' . $j_num_semaine . '"><strong>' . $j_name . ' ' . $j . '</strong></td>'; // echo "<td class=\"cal-day $td_second_class\" title=\"$j_date_fr / ". _('divers_semaine') ." $j_num_semaine\"><b>$j_name $j/$mois_select</b></td>"; } else { $return .= '<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 = \calendrier\Fonctions::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 = isset($tab_cong_users[$sql_login]) ? $tab_cong_users[$sql_login] : []; if ($printable == 1) { $return .= '<tr align="center" class="cal-ligne-user-edit">'; } elseif ($selected == $sql_login) { $return .= '<tr align="center" class="cal-ligne-user-selected">'; } else { $return .= '<tr align="center" class="cal-ligne-user">'; } 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é $return .= '<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 = \calendrier\Fonctions::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, $return); 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 = \calendrier\Fonctions::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, $return); 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']) { $return .= '<td class="cal-user">' . $tab_conges['solde'] . ' (' . $nb_jours_current_month[$id] . ')</td>'; } else { $return .= '<td class="cal-user">' . $tab_conges['solde'] . '</td>'; } } } $return .= '</tr>'; } $return .= '</table>'; return $return; }