private function change_user_id($emp_id) { $returner = ""; $checker = FALSE; $headman_level = 0; if ($emp_id !== "") { //check can see this profile is_your_headman or is_hr $user_detail = getEmployeeDetail($emp_id); list($checker, $headman_level) = is_your_headman($user_detail["UserID"], $this->user_id); if ($checker || is_hr()) { $this->emp_id = $emp_id; $this->user_id = $user_detail["UserID"]; $returner = $emp_id; } } return $returner; }
function affiche_select_groupe($select_groupe, $selected, $printable, $year, $mois, $first_jour, $group_names) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); // quelle liste de groupes recuperer ? //if( ($_SESSION['config']['consult_calendrier_sans_auth']) && (!isset($_SESSION['userlogin'])) ) if (is_hr($_SESSION['userlogin'])) { $list_groupes = get_list_all_groupes(); } elseif ($_SESSION['config']['calendrier_select_all_groups']) { $list_groupes = get_list_all_groupes(); } elseif (is_resp($_SESSION['userlogin'])) { // on propose la liste des groupes dont user est resp + groupes dont user est membre $list_groupes_1 = get_list_groupes_du_resp($_SESSION['userlogin']); $list_groupes_2 = get_list_groupes_du_user($_SESSION['userlogin']); if ($list_groupes_1 == '' || $list_groupes_2 == '') { $list_groupes = $list_groupes_1 . $list_groupes_2; } else { $list_groupes = $list_groupes_1 . "," . $list_groupes_2; } if ($_SESSION['config']['double_validation_conges']) { $list_groupes_3 = get_list_groupes_du_grand_resp($_SESSION['userlogin']); if ($list_groupes == '' || $list_groupes_3 == '') { $list_groupes = $list_groupes . $list_groupes_3; } else { $list_groupes = $list_groupes . "," . $list_groupes_3; } } } else { $list_groupes = get_list_groupes_du_user($_SESSION['userlogin']); } $content .= "<form action=\"{$PHP_SELF}?session={$session}&printable={$printable}&selected={$selected}&year={$year}&mois={$mois}&first_jour={$first_jour}\" method=\"POST\">\n"; if (trim($list_groupes) == '') { $tab_groupes = array(); } else { $tab_groupes = array_unique(explode(",", $list_groupes)); } $content .= _('calendrier_afficher_groupe') . " : "; $content .= "<select name=select_groupe>\n"; $tmp = false; foreach ($tab_groupes as $grp) { $grp = trim($grp); if ($grp == $select_groupe) { $content .= "<option value=\"{$grp}\" selected=\"selected\">" . $group_names[$grp] . "</option>\n"; $tmp = true; } else { $content .= "<option value=\"{$grp}\">" . $group_names[$grp] . "</option>\n"; } } //option pour retour a l'affichage normal ... if ($tmp) { $content .= "<option value=\"0\">" . _('divers_normal_maj_1') . "</option>\n"; } else { $content .= "<option value=\"0\" selected=\"selected\">" . _('divers_normal_maj_1') . "</option>\n"; } $content .= "</select>\n"; $content .= "<input type=\"submit\" value=\"ok\">\n"; $content .= "</form>\n"; }
function saisie_nouveau_conges2($user_login, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin, $onglet) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $new_date_fin = date('d/m/Y'); $return = ''; $return .= '<form NAME="dem_conges" action="' . $PHP_SELF . '?session=' . $session . '&onglet=' . $onglet . '" method="POST"> <div class="row"> <div class="col-md-6"> <div class="form-inline">'; $return .= '<div class="form-group"><label for="new_deb">' . _('divers_date_debut') . '</label><input type="text" class="form-control date" name="new_debut" value="' . $new_date_fin . '"></div>'; $return .= '<input type="radio" name="new_demi_jour_deb" '; if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) { // attention : IE6 : bug avec les "OnChange" sur les boutons radio!!! (on remplace par OnClick) if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE') != FALSE) { $return .= 'onClick="compter_jours();return true;"'; } else { $return .= 'onChange="compter_jours();return false;"'; } } $return .= 'value="am" checked> ' . _('form_am'); $return .= '<input type="radio" name="new_demi_jour_deb" '; if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) { if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE') != FALSE) { $return .= 'onClick="compter_jours();return true;"'; } else { $return .= 'onChange="compter_jours();return false;"'; } } $return .= 'value="pm"> ' . _('form_pm'); $return .= '</div>'; $return .= '</div>'; $return .= '<div class="col-md-6">'; $return .= '<div class="form-inline">'; $return .= '<div class="form-group">'; $return .= '<label for="new_fin">' . _('divers_date_fin') . '</label><input type="text" class="form-control date" name="new_fin" value="' . $new_date_fin . '">'; $return .= '</div>'; $return .= '<input type="radio" name="new_demi_jour_fin" '; if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) { // attention : IE6 : bug avec les "OnChange" sur les boutons radio!!! (on remplace par OnClick) if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE') != FALSE) { $return .= 'onClick="compter_jours();return true;"'; } else { $return .= 'onChange="compter_jours();return false;"'; } } $return .= 'value="am"> ' . _('form_am'); $return .= '<input class="form-controm" type="radio" name="new_demi_jour_fin" '; if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) { if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE') != FALSE) { $return .= 'onClick="compter_jours();return true;"'; } else { $return .= 'onChange="compter_jours();return false;"'; } } $return .= 'value="pm" checked> ' . _('form_pm'); $return .= '</div>'; $return .= '</div>'; $return .= '</div>'; $return .= '<hr/>'; /*****************/ /* boutons radio */ /*****************/ // recup du tableau des types de conges $tab_type_conges = recup_tableau_types_conges(); // recup du tableau des types d'absence $tab_type_absence = recup_tableau_types_absence(); // recup d tableau des types de conges exceptionnels $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels(); $already_checked = false; $return .= '<div class="row type-conges">'; // si le user a droit de saisir une demande de conges ET si on est PAS dans une fenetre de responsable // OU si le user n'a pas droit de saisir une demande de conges ET si on est dans une fenetre de responsable // OU si le user est un RH ou un admin if ($_SESSION['config']['user_saisie_demande'] && $user_login == $_SESSION['userlogin'] || $_SESSION['config']['user_saisie_demande'] == FALSE && $user_login != $_SESSION['userlogin'] || is_hr($_SESSION['userlogin']) || is_admin($_SESSION['userlogin'])) { // congés $return .= '<div class="col-md-4">'; $return .= '<label>' . _('divers_conges') . '</label>'; foreach ($tab_type_conges as $id => $libelle) { if ($id == 1) { $return .= '<input type="radio" name="new_type" value="' . $id . '" checked>' . $libelle . '<br>'; $already_checked = true; } else { $return .= '<input type="radio" name="new_type" value="' . $id . '">' . $libelle . '<br>'; } } $return .= '</div>'; } // si le user a droit de saisir une mission ET si on est PAS dans une fenetre de responsable // OU si le resp a droit de saisir une mission ET si on est PAS dans une fenetre dd'utilisateur // OU si le resp a droit de saisir une mission ET si le resp est resp de lui meme if ($_SESSION['config']['user_saisie_mission'] && $user_login == $_SESSION['userlogin'] || $_SESSION['config']['resp_saisie_mission'] && $user_login != $_SESSION['userlogin'] || $_SESSION['config']['resp_saisie_mission'] && is_resp_of_user($_SESSION['userlogin'], $user_login)) { // absences $return .= '<div class="col-md-4">'; $return .= '<label>' . _('divers_absences') . '</label>'; foreach ($tab_type_absence as $id => $libelle) { if (!$already_checked) { $return .= '<input type="radio" name="new_type" value="' . $id . '" checked>' . $libelle . '<br>'; $already_checked = true; } else { $return .= '<input type="radio" name="new_type" value="' . $id . '">' . $libelle . '<br>'; } } $return .= '</div>'; } // si le user a droit de saisir une demande de conges ET si on est PAS dans une fenetre de responsable // OU si le user n'a pas droit de saisir une demande de conges ET si on est dans une fenetre de responsable if ($_SESSION['config']['gestion_conges_exceptionnels'] && ($_SESSION['config']['user_saisie_demande'] && $user_login == $_SESSION['userlogin'] || $_SESSION['config']['user_saisie_demande'] == FALSE && $user_login != $_SESSION['userlogin'])) { // congés exceptionnels $return .= '<div class="col-md-4">'; $return .= '<label>' . _('divers_conges_exceptionnels') . '</label>'; foreach ($tab_type_conges_exceptionnels as $id => $libelle) { if ($id == 1) { $return .= '<input type="radio" name="new_type" value="' . $id . '" checked> ' . $libelle . '<br>'; } else { $return .= '<input type="radio" name="new_type" value="' . $id . '">' . $libelle . '<br>'; } } $return .= '</div>'; } $return .= '</div>'; $return .= '<hr/>'; $return .= '<label>' . _('divers_comment_maj_1') . '</label><input class="form-control" type="text" name="new_comment" size="25" maxlength="30" value="">'; // zones de texte $return .= '<label>' . _('saisie_conges_nb_jours') . ' </label>'; if ($_SESSION['config']['disable_saise_champ_nb_jours_pris']) { // zone de texte en readonly et grisée $text_nb_jours = '<input type="text" name="new_nb_jours" size="10" maxlength="30" value="" style="background-color: #D4D4D4; " readonly="readonly">'; } else { $text_nb_jours = '<input type="text" name="new_nb_jours" size="10" maxlength="3" value="">'; } $return .= $text_nb_jours; if ($_SESSION['config']['affiche_bouton_calcul_nb_jours_pris']) { $return .= '<input type="button" class="btn btn-success" onclick="compter_jours();return false;" value="' . _('saisie_conges_compter_jours') . '">'; } $return .= '<p id="comment_nbj" style="color:red"> </p>'; $return .= '<br>'; $return .= '<input type="hidden" name="user_login" value="' . $user_login . '">'; $return .= '<input type="hidden" name="new_demande_conges" value=1>'; $return .= '<input type="hidden" name="session" value="' . $session . '">'; // boutons du formulaire $return .= '<input type="submit" class="btn btn-success" value="' . _('form_submit') . '">'; $return .= '<a class="btn" href="' . $PHP_SELF . '?session=' . $session . '">' . _('form_cancel') . '</a>'; $return .= '</form>'; return $return; }
<a href="<?php echo ROOT_PATH; ?> admin/admin_index.php?session=<?php echo $session; ?> " <?php print $tmp == 'admin' || $tmp == 'config' ? 'active' : ''; ?> >Administration</a> </li> <?php } ?> <?php if (is_hr($_SESSION['userlogin'])) { ?> <li> <a href="<?php echo ROOT_PATH; ?> hr/hr_index.php?session=<?php echo $session; ?> " <?php print $tmp == 'hr' ? 'active' : ''; ?> >RH</a> </li> <?php }
public static function affiche_formulaire_ajout_user(&$tab_new_user, &$tab_new_jours_an, &$tab_new_solde, $onglet) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $return = ''; // recup du tableau des types de conges (seulement les conges) $tab_type_conges = recup_tableau_types_conges(); // recup du tableau des types de conges exceptionnels (seulement les conges exceptionnels) if ($_SESSION['config']['gestion_conges_exceptionnels']) { $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels(); } /*********************/ /* Ajout Utilisateur */ /*********************/ // TITRE $return .= '<h1>' . _('admin_new_users_titre') . '</h1>'; $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '&onglet=' . $onglet . '" method="POST">'; /****************************************/ // tableau des infos de user $return .= '<table class="table table-hover table-responsive table-condensed table-striped" >'; $return .= '<thead>'; $return .= '<tr>'; if ($_SESSION['config']['export_users_from_ldap']) { $return .= '<th>' . _('divers_nom_maj_1') . ' ' . _('divers_prenom_maj_1') . '</th>'; } else { $return .= '<th>' . _('divers_login_maj_1') . '</th>'; $return .= '<th>' . _('divers_nom_maj_1') . '</th>'; $return .= '<th>' . _('divers_prenom_maj_1') . '</th>'; } $return .= '<th>' . _('divers_quotite_maj_1') . '</th>'; $return .= '<th>' . _('admin_new_users_is_resp') . '</th>'; $return .= '<th>' . _('divers_responsable_maj_1') . '</th>'; $return .= '<th>' . _('admin_new_users_is_admin') . '</th>'; $return .= '<th>' . _('admin_new_users_is_hr') . '</th>'; $return .= '<th>' . _('admin_new_users_see_all') . '</th>'; if (!$_SESSION['config']['export_users_from_ldap']) { $return .= '<th>' . _('admin_users_mail') . '</th>'; } if ($_SESSION['config']['how_to_connect_user'] == "dbconges") { $return .= '<th>' . _('admin_new_users_password') . '</th>'; $return .= '<th>' . _('admin_new_users_password') . '</th>'; } $return .= '</tr></thead><tbody>'; $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>"; if ($_SESSION['config']['admin_see_all'] || $_SESSION['userlogin'] == "admin" || is_hr($_SESSION['userlogin'])) { $sql2 = "SELECT u_login, u_nom, u_prenom FROM conges_users WHERE u_is_resp = \"Y\" ORDER BY u_nom, u_prenom"; } else { $sql2 = "SELECT u_login, u_nom, u_prenom FROM conges_users WHERE u_is_resp = \"Y\" AND u_login=\"" . $_SESSION['userlogin'] . "\" ORDER BY u_nom, u_prenom"; } $ReqLog2 = \includes\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 $return .= '<tr class="update-line">'; // 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(); \admin\Fonctions::recup_users_from_ldap($tab_ldap, $tab_login); // 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"; $return .= '<td>' . $lst_users . '</td>'; } else { $return .= '<td>' . $text_login . '</td>'; $return .= '<td>' . $text_nom . '</td>'; $return .= '<td>' . $text_prenom . '</td>'; } $return .= '<td>' . $text_quotite . '</td>'; $return .= '<td>' . $text_is_resp . '</td>'; $return .= '<td>' . $text_resp_login . '</td>'; $return .= '<td>' . $text_is_admin . '</td>'; $return .= '<td>' . $text_is_hr . '</td>'; $return .= '<td>' . $text_see_all . '</td>'; if (!$_SESSION['config']['export_users_from_ldap']) { $return .= '<td>' . $text_email . '</td>'; } if ($_SESSION['config']['how_to_connect_user'] == "dbconges") { $return .= '<td>' . $text_password1 . '</td>'; $return .= '<td>' . $text_password2 . '</td>'; } $return .= '</tr></tbody></table><br>'; /****************************************/ //tableau des conges annuels et soldes $return .= '<table class="table table-hover table-responsive table-condensed table-striped">'; // ligne de titres $return .= '<thead>'; $return .= '<tr>'; $return .= '<th></th>'; $return .= '<th>' . _('admin_new_users_nb_par_an') . '</th>'; $return .= '<th>' . _('divers_solde') . '</th>'; $return .= '</tr>'; $return .= '</thead>'; $return .= '<tbody>'; $i = true; // ligne de saisie des valeurs foreach ($tab_type_conges as $id_type_cong => $libelle) { $return .= '<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}\">"; $return .= '<td>' . $libelle . '</td>'; $return .= '<td>' . $text_jours_an . '</td>'; $return .= '<td>' . $text_solde_jours . '</td>'; $return .= '</tr>'; $i = !$i; } if ($_SESSION['config']['gestion_conges_exceptionnels']) { foreach ($tab_type_conges_exceptionnels as $id_type_cong => $libelle) { $return .= '<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}\">"; $return .= '<td>' . $libelle . '</td>'; $return .= '<td>' . $text_jours_an . '</td>'; $return .= '<td>' . $text_solde_jours . '</td>'; $return .= '</tr>'; $i = !$i; } } $return .= '</tbody></table><br>'; // saisie de la grille des jours d'absence ARTT ou temps partiel: $return .= \admin\Fonctions::saisie_jours_absence_temps_partiel($tab_new_user['login']); // si gestion des groupes : affichage des groupe pour y affecter le user if ($_SESSION['config']['gestion_groupes']) { $return .= '<br>'; if ($_SESSION['config']['admin_see_all'] || $_SESSION['userlogin'] == "admin" || is_hr($_SESSION['userlogin'])) { $return .= \admin\Fonctions::affiche_tableau_affectation_user_groupes2(""); } else { $return .= \admin\Fonctions::affiche_tableau_affectation_user_groupes2($_SESSION['userlogin']); } } $return .= '<hr>'; $return .= '<input type="hidden" name="saisie_user" value="ok">'; $return .= '<input class="btn btn-success" type="submit" value="' . _('form_submit') . '">'; $return .= '<a class="btn" href="' . $PHP_SELF . '?session=' . $session . '">' . _('form_cancel') . '</a>'; $return .= '</form>'; return $return; }
include ROOT_PATH . 'define.php'; defined('_PHP_CONGES') or die('Restricted access'); $session = isset($_GET['session']) ? $_GET['session'] : (isset($_POST['session']) ? $_POST['session'] : session_id()); include 'fonctions_edition.php'; include ROOT_PATH . 'fonctions_conges.php'; include INCLUDE_PATH . 'fonction.php'; include INCLUDE_PATH . 'session.php'; //$DEBUG = TRUE ; $DEBUG = FALSE; /*************************************/ // recup des parametres reçus : // GET / POST $user_login = getpost_variable('user_login'); $edit_id = getpost_variable('edit_id', 0); /*************************************/ if ($user_login != $_SESSION['userlogin'] && !is_hr($_SESSION['userlogin']) && !is_resp_of_user($_SESSION['userlogin'], $user_login)) { redirect(ROOT_PATH . 'deconnexion.php'); exit; } /************************************/ $css = '<link href="' . TEMPLATE_PATH . 'style_calendar_edition.css" rel="stylesheet" type="text/css">'; header_popup(_('editions_etat_conges') . ' : ' . $user_login, $css); $session = session_id(); if ($edit_id == 0) { // si c'est une nouvelle édition, on insert dans la base avant d'éditer et on renvoit l'id de l'édition $edit_id = enregistrement_edition($user_login, $DEBUG); } if ($edit_id != "0101010") { edition($user_login, $edit_id, $session, $DEBUG); } else { edition_year($user_login, $edit_id, $session, $DEBUG);
} }); } }); } </script> </div> <?php } ?> <?php } elseif ((int) $leave_detail['L_WFID'] < 4) { ?> <?php if (is_hr()) { ?> <div> <textarea name="txt_remark_approve_hr" id="txt_remark_approve_hr" cols="30" rows="10"></textarea> <br> <a href="javascript:void(0);" onclick="approveThis('<?php echo $leave_id; ?> ');">อนุมัติ</a> <a href="javascript:void(0);" onclick="disApproveThis('<?php echo $leave_id; ?> ');">ไม่อนุมัติ</a> <script type="text/javascript"> function approveThis(ID) {
function saisie_nouveau_conges($user_login, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin, $onglet, $DEBUG = FALSE) { //$DEBUG=TRUE; if ($DEBUG) { echo 'user_login = '******', year_calendrier_saisie_debut = ' . $year_calendrier_saisie_debut . ', mois_calendrier_saisie_debut = ' . $mois_calendrier_saisie_debut . ', year_calendrier_saisie_fin = ' . $year_calendrier_saisie_fin . ', mois_calendrier_saisie_fin = ' . $mois_calendrier_saisie_fin . ', onglet = ' . $onglet . '<br>'; } $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $mois_calendrier_saisie_debut_prec = 0; $year_calendrier_saisie_debut_prec = 0; $mois_calendrier_saisie_debut_suiv = 0; $year_calendrier_saisie_debut_suiv = 0; $mois_calendrier_saisie_fin_prec = 0; $year_calendrier_saisie_fin_prec = 0; $mois_calendrier_saisie_fin_suiv = 0; $year_calendrier_saisie_fin_suiv = 0; init_tab_jours_fermeture($user_login); echo '<form name="form1" action="' . $PHP_SELF . '?session=' . $session . '&onglet=' . $onglet . '" method="POST">'; // il faut indiquer le champ de formulaire 'login_user' car il est récupéré par le javascript qui apelle le calcul automatique. echo '<table cellpadding="0" cellspacing="5" border="0">'; echo '<tr align="center">'; echo '<td>'; echo '<table cellpadding="0" cellspacing="0" border="0">'; echo '<tr align="center">'; echo '<td>'; echo '<fieldset class="cal_saisie">'; echo '<table cellpadding="0" cellspacing="0" border="0">'; echo '<tr align="center">'; echo "<td>\n"; /******************************************************************/ // affichage du calendrier de saisie de la date de DEBUT de congès /******************************************************************/ echo '<table cellpadding="0" cellspacing="0" width="250" border="0">'; echo '<tr>'; init_var_navigation_mois_year($mois_calendrier_saisie_debut, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut_prec, $year_calendrier_saisie_debut_prec, $mois_calendrier_saisie_debut_suiv, $year_calendrier_saisie_debut_suiv, $mois_calendrier_saisie_fin, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin_prec, $year_calendrier_saisie_fin_prec, $mois_calendrier_saisie_fin_suiv, $year_calendrier_saisie_fin_suiv); // affichage des boutons de défilement // recul du mois saisie début echo '<td align="center" class="big">'; echo '<a href="' . $PHP_SELF . '?session=' . $session . '&year_calendrier_saisie_debut=' . $year_calendrier_saisie_debut_prec . '&mois_calendrier_saisie_debut=' . $mois_calendrier_saisie_debut_prec . '&year_calendrier_saisie_fin=' . $year_calendrier_saisie_fin . '&mois_calendrier_saisie_fin=' . $mois_calendrier_saisie_fin . '&user_login='******'&onglet=' . $onglet . '">'; echo ' <img src="' . TEMPLATE_PATH . 'img/simfirs.gif" width="16" height="16" border="0" alt="' . _('divers_mois_precedent') . '" title="' . _('divers_mois_precedent') . '"> '; echo '</a>'; echo '</td>'; echo '<td align="center" class="big">' . _('divers_debut_maj') . ' :</td>'; // affichage des boutons de défilement // avance du mois saisie début // si le mois de saisie fin est antérieur ou égal au mois de saisie début, on avance les 2 , sinon on avance que le mois de saisie début if ($year_calendrier_saisie_debut_suiv == $year_calendrier_saisie_fin && $mois_calendrier_saisie_debut_suiv >= $mois_calendrier_saisie_fin || $year_calendrier_saisie_debut_suiv > $year_calendrier_saisie_fin) { $lien_mois_debut_suivant = $PHP_SELF . '?session=' . $session . '&year_calendrier_saisie_debut=' . $year_calendrier_saisie_debut_suiv . '&mois_calendrier_saisie_debut=' . $mois_calendrier_saisie_debut_suiv . '&year_calendrier_saisie_fin=' . $year_calendrier_saisie_debut_suiv . '&mois_calendrier_saisie_fin=' . $mois_calendrier_saisie_debut_suiv . '&user_login='******'&onglet=' . $onglet; } else { $lien_mois_debut_suivant = $PHP_SELF . '?session=' . $session . '&year_calendrier_saisie_debut=' . $year_calendrier_saisie_debut_suiv . '&mois_calendrier_saisie_debut=' . $mois_calendrier_saisie_debut_suiv . '&year_calendrier_saisie_fin=' . $year_calendrier_saisie_fin . '&mois_calendrier_saisie_fin=' . $mois_calendrier_saisie_fin . '&user_login='******'&onglet=' . $onglet; } echo '<td align="center" class="big">'; echo '<a href="' . $lien_mois_debut_suivant . '">'; echo ' <img src="' . TEMPLATE_PATH . 'img/simlast.gif" width="16" height="16" border="0" alt="' . _('divers_mois_suivant') . '" title="' . _('divers_mois_suivant') . '"> '; echo '</a>'; echo '</td>'; echo '</tr>'; echo '</table>'; /*** calendrier saisie date debut ***/ affiche_calendrier_saisie_date($user_login, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut, 'new_debut', $DEBUG); echo '</td>'; /**************************************************/ /* cellule 2 : boutons radio matin ou après midi */ echo '<td align="left">'; echo '<input type="radio" name="new_demi_jour_deb" '; if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) { // attention : IE6 : bug avec les "OnChange" sur les boutons radio!!! (on remplace par OnClick) if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE') != FALSE) { echo 'onClick="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return true;"'; } else { echo 'onChange="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return false;"'; } } echo 'value="am" checked><b><u>' . _('form_am') . '</u></b><br><br>'; echo '<input type="radio" name="new_demi_jour_deb" '; if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) { if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE') != FALSE) { echo 'onClick="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return true;"'; } else { echo 'onChange="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return false;"'; } } echo 'value="pm"><b><u>' . _('form_pm') . '</u></b><br><br>'; echo '</td>'; /**************************************************/ echo '</tr>'; echo '</table>'; echo '</fieldset>'; echo '</td>'; echo '</tr>'; echo '<tr align="center">'; echo '<td><img src="' . TEMPLATE_PATH . 'img/shim.gif" width="15" height="10" border="0" vspace="0" hspace="0"></td>'; echo '</tr>'; echo '<tr align="center">'; echo '<td>'; echo '<fieldset class="cal_saisie">'; echo '<table cellpadding="0" cellspacing="0" border="0">'; echo '<tr align="center">'; echo '<td>'; /******************************************************************/ // affichage du calendrier de saisie de la date de FIN de congès /******************************************************************/ echo '<table cellpadding="0" cellspacing="0" width="250" border="0">'; echo '<tr>'; $mois_calendrier_saisie_fin_prec = $mois_calendrier_saisie_fin == 1 ? 12 : $mois_calendrier_saisie_fin - 1; $mois_calendrier_saisie_fin_suiv = $mois_calendrier_saisie_fin == 12 ? 1 : $mois_calendrier_saisie_fin + 1; // affichage des boutons de défilement // recul du mois saisie fin // si le mois de saisie fin est antérieur ou égal au mois de saisie début, on recule les 2 , sinon on recule que le mois de saisie fin if ($year_calendrier_saisie_debut == $year_calendrier_saisie_fin_prec && $mois_calendrier_saisie_debut >= $mois_calendrier_saisie_fin_prec || $year_calendrier_saisie_debut > $year_calendrier_saisie_fin_prec) { $lien_mois_fin_precedent = '' . $PHP_SELF . '?session=' . $session . '&year_calendrier_saisie_debut=' . $year_calendrier_saisie_fin_prec . '&mois_calendrier_saisie_debut=' . $mois_calendrier_saisie_fin_prec . '&year_calendrier_saisie_fin=' . $year_calendrier_saisie_fin_prec . '&mois_calendrier_saisie_fin=' . $mois_calendrier_saisie_fin_prec . '&user_login='******'&onglet=' . $onglet; } else { $lien_mois_fin_precedent = '' . $PHP_SELF . '?session=' . $session . '&year_calendrier_saisie_debut=' . $year_calendrier_saisie_debut . '&mois_calendrier_saisie_debut=' . $mois_calendrier_saisie_debut . '&year_calendrier_saisie_fin=' . $year_calendrier_saisie_fin_prec . '&mois_calendrier_saisie_fin=' . $mois_calendrier_saisie_fin_prec . '&user_login='******'&onglet=' . $onglet; } echo '<td align="center" class="big">'; echo '<a href="' . $lien_mois_fin_precedent . '">'; echo ' <img src="' . TEMPLATE_PATH . 'img/simfirs.gif" width="16" height="16" border="0" alt="' . _('divers_mois_precedent') . '" title="' . _('divers_mois_precedent') . '">'; echo ' </a>'; echo '</td>'; echo '<td align="center" class="big">' . _('divers_fin_maj') . ' :</td>'; // affichage des boutons de défilement // avance du mois saisie fin echo '<td align="center" class="big">'; echo '<a href="' . $PHP_SELF . '?session=' . $session . '&year_calendrier_saisie_debut=' . $year_calendrier_saisie_debut . '&mois_calendrier_saisie_debut=' . $mois_calendrier_saisie_debut . '&year_calendrier_saisie_fin=' . $year_calendrier_saisie_fin_suiv . '&mois_calendrier_saisie_fin=' . $mois_calendrier_saisie_fin_suiv . '&user_login='******'&onglet=' . $onglet . '">'; echo ' <img src="' . TEMPLATE_PATH . 'img/simlast.gif" width="16" height="16" border="0" alt="' . _('divers_mois_suivant') . '" title="' . _('divers_mois_suivant') . '"> '; echo '</a>'; echo '</td>'; echo '</tr>'; echo '</table>'; /*** calendrier saisie date fin ***/ affiche_calendrier_saisie_date($user_login, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin, 'new_fin', $DEBUG); echo '</td>'; /**************************************************/ /* cellule 2 : boutons radio matin ou après midi */ echo '<td align="left">'; echo '<input type="radio" name="new_demi_jour_fin" '; if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) { // attention : IE6 : bug avec les "OnChange" sur les boutons radio!!! (on remplace par OnClick) if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE') != FALSE) { echo 'onClick="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return true;"'; } else { echo 'onChange="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return false;"'; } } echo 'value="am"><b><u>' . _('form_am') . '</u></b><br><br>'; echo '<input type="radio" name="new_demi_jour_fin" '; if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) { if (isset($_SERVER['HTTP_USER_AGENT']) && stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE') != FALSE) { echo 'onClick="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return true;"'; } else { echo 'onChange="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return false;"'; } } echo 'value="pm" checked><b><u>' . _('form_pm') . '</u></b><br><br>'; echo '</td>'; /**************************************************/ echo '</tr>'; echo '</table>'; echo '</fieldset>'; echo '</td>'; echo '</tr>'; echo '</table>'; echo '</td>'; echo '<td><img src="' . TEMPLATE_PATH . 'img/shim.gif" width="15" height="2" border="0" vspace="0" hspace="0"></td>'; echo '<td>'; /*******************/ /* formulaire */ /*******************/ echo '<table cellpadding="0" cellspacing="2" border="0" >'; echo '<tr>'; echo '<td valign="top">'; echo '<table cellpadding="2" cellspacing="3" border="0" >'; // echo '<input type="hidden" name="login_user" value="'.'.$_SESSION['userlogin'].'.'">'; echo '<input type="hidden" name="login_user" value="' . $user_login . '">'; echo '<input type="hidden" name="session" value="' . $session . '">'; // bouton 'compter les jours' if ($_SESSION['config']['affiche_bouton_calcul_nb_jours_pris']) { echo '<tr><td colspan="2">'; echo '<input type="button" onclick="compter_jours(new_debut, new_fin, login_user, new_demi_jour_deb, new_demi_jour_fin);return false;" value="' . _('saisie_conges_compter_jours') . '">'; echo '</td></tr>'; } // zones de texte echo '<tr align="center"><td><b>' . _('saisie_conges_nb_jours') . '</b></td><td><b>' . _('divers_comment_maj_1') . '</b></td></tr>'; if ($_SESSION['config']['disable_saise_champ_nb_jours_pris']) { // zone de texte en readonly et grisée $text_nb_jours = '<input type="text" name="new_nb_jours" size="10" maxlength="30" value="" style="background-color: #D4D4D4; " readonly="readonly">'; } else { $text_nb_jours = '<input type="text" name="new_nb_jours" size="10" maxlength="30" value="">'; } $text_commentaire = '<input type="text" name="new_comment" size="25" maxlength="30" value="">'; echo '<tr align="center">'; echo '<td>' . $text_nb_jours . '</td><td>' . $text_commentaire . '</td>'; echo '</tr>'; echo '<tr align="center"><td><img src="' . TEMPLATE_PATH . 'img/shim.gif" width="15" height="10" border="0" vspace="0" hspace="0"></td><td></td></tr>'; echo '<tr align="center">'; echo '<td colspan=2>'; echo '<input type="hidden" name="user_login" value="' . $user_login . '">'; echo '<input type="hidden" name="new_demande_conges" value=1>'; // boutons du formulaire // les classes "button_type_submit" et "button_type_cancel" // servent à choisir leur position (droite gauche) dans vos feuilles de style (voir style.css) echo '<input type="submit" class="button_type_submit" value="' . _('form_submit') . '"> <input type="reset" class="button_type_cancel" value="' . _('form_cancel') . '">'; echo '</td>'; echo '</tr>'; echo '</table>'; echo '</td>'; /*****************/ /* boutons radio */ /*****************/ // recup d tableau des types de conges $tab_type_conges = recup_tableau_types_conges($DEBUG); // recup du tableau des types d'absence $tab_type_absence = recup_tableau_types_absence($DEBUG); // recup d tableau des types de conges exceptionnels $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG); $already_checked = false; echo '<td align="left" valign="top">'; // si le user a droit de saisir une demande de conges ET si on est PAS dans une fenetre de responsable // OU si le user n'a pas droit de saisir une demande de conges ET si on est dans une fenetre de responsable // OU si le user est un RH ou un admin if ($_SESSION['config']['user_saisie_demande'] && $user_login == $_SESSION['userlogin'] || $_SESSION['config']['user_saisie_demande'] == FALSE && $user_login != $_SESSION['userlogin'] || is_hr($_SESSION['userlogin']) || is_admin($_SESSION['userlogin'])) { // congés echo '<b><i><u>' . _('divers_conges') . ' :</u></i></b><br>'; foreach ($tab_type_conges as $id => $libelle) { if ($id == 1) { echo '<input type="radio" name="new_type" value="' . $id . '" checked> ' . $libelle . '<br>'; $already_checked = true; } else { echo '<input type="radio" name="new_type" value="' . $id . '"> ' . $libelle . '<br>'; } } } // si le user a droit de saisir une mission ET si on est PAS dans une fenetre de responsable // OU si le resp a droit de saisir une mission ET si on est PAS dans une fenetre dd'utilisateur // OU si le resp a droit de saisir une mission ET si le resp est resp de lui meme if ($_SESSION['config']['user_saisie_mission'] && $user_login == $_SESSION['userlogin'] || $_SESSION['config']['resp_saisie_mission'] && $user_login != $_SESSION['userlogin'] || $_SESSION['config']['resp_saisie_mission'] && is_resp_of_user($_SESSION['userlogin'], $user_login, $DEBUG)) { echo '<br>'; // absences echo '<b><i><u>' . _('divers_absences') . ' :</u></i></b><br>'; foreach ($tab_type_absence as $id => $libelle) { if (!$already_checked) { echo '<input type="radio" name="new_type" value="' . $id . '" checked> ' . $libelle . '<br>'; $already_checked = true; } else { echo '<input type="radio" name="new_type" value="' . $id . '"> ' . $libelle . '<br>'; } } } // si le user a droit de saisir une demande de conges ET si on est PAS dans une fenetre de responsable // OU si le user n'a pas droit de saisir une demande de conges ET si on est dans une fenetre de responsable // OU si c'est un HR if ($_SESSION['config']['gestion_conges_exceptionnels'] && ($_SESSION['config']['user_saisie_demande'] && $user_login == $_SESSION['userlogin'] || $_SESSION['config']['user_saisie_demande'] == FALSE && $user_login != $_SESSION['userlogin'] || is_hr($_SESSION['userlogin']))) { echo '<br>'; // congés exceptionnels echo '<b><i><u>' . _('divers_conges_exceptionnels') . ' :</u></i></b><br>'; foreach ($tab_type_conges_exceptionnels as $id => $libelle) { if ($id == 1) { echo '<input type="radio" name="new_type" value="' . $id . '" checked> ' . $libelle . '<br>'; } else { echo '<input type="radio" name="new_type" value="' . $id . '"> ' . $libelle . '<br>'; } } } echo '</td>'; echo '</tr>'; echo '</table>'; echo '</td>'; echo '</tr>'; echo '</table>'; echo '</form>'; }
public function instant_approve_disapprove_ot_by_hr($type, $hr_user_id, $ot_id) { $hr_user_id = encrypt_decrypt('decrypt', $hr_user_id); $ot_id = encrypt_decrypt('decrypt', $ot_id); $workflow_id = 0; //check hr is in role hr $is_hr = is_hr($hr_user_id); if ($is_hr) { //get ot request detail for get owner user id $query = $this->ot->get_detail_by_id($ot_id); if ($query->num_rows() > 0) { $ot_detail = $query->row_array(); if (intval($ot_detail['wot_workflow_id']) > 3) { echo swalc('ผิดพลาด!!!', 'คุณไม่สามารถทำรายการใบคำขอทำงานล่วงเวลานี้ได้เพราะคำขอนี้มีการอนุมัติ/ไม่อนุมัติไปแล้ว', 'error'); } else { $owner_user_id = $ot_detail['wot_request_by']; $owner_detail = getEmployeeDetailByUserID($owner_user_id); $owner_headman_user_id = $owner_detail['EmpHeadman_UserID']; $log_type = ''; $log_detail = ''; //set approve / disapprove if ($type == 'approve') { $workflow_id = 4; $log_type = 'instant approve from email by hr'; $log_detail = 'HR ทำการอนุมัติใบคำขอทำงานล่วงเวลาทันทีผ่านอีเมล์'; } else { if ($type == 'disapprove') { $workflow_id = 5; $log_type = 'instant disapprove from email by hr'; $log_detail = 'HR ไม่อนุมัติใบคำขอทำงานล่วงเวลาทันทีผ่านอีเมล์'; $send_to_headman = $this->send_email_ot_to_headman(); } } $data = array('wot_workflow_id' => $workflow_id); $where = array('wot_id' => $ot_id); //insert log insert_log_ot($ot_id, $log_type, $log_detail, $hr_user_id); //send email to owner request ot with log $send = $this->send_email_result_ot_to_owner($ot_id); if ($send == 'success') { insert_log_ot($ot_id, 'send email result ot to owner', 'ส่งอีเมล์เพื่อแจ้งสถานะใบคำขอทำงานล่วงเวลาให้เจ้าของใบคำขอ', $hr_user_id); } else { insert_log_ot($ot_id, 'error send email result ot to owner', 'ไม่สามารถส่งอีเมล์เพื่อแจ้งสถานะใบคำขอทำงานล่วงเวลาให้เจ้าของใบคำขอได้', $hr_user_id); } //if disapprove send mail to headman if ($type == 'disapprove') { $send = $this->send_email_ot_to_headman('disapprove_by_hr', $ot_id); if ($send == 'success') { insert_log_ot($ot_id, 'send email disapprove ot to headman by hr', 'ส่งอีเมล์เพื่อแจ้งสถานะใบคำขอทำงานล่วงเวลาให้หัวหน้าเจ้าของคำขอ', $hr_user_id); } else { insert_log_ot($ot_id, 'error send email disapprove ot to headman by hr', 'ไม่สามารถส่งอีเมล์เพื่อแจ้งสถานะใบคำขอทำงานล่วงเวลาให้หัวหน้าเจ้าของใบคำขอได้ เพราะ ' . $send, $hr_user_id); } } } } } else { echo swalc('ผิดพลาด!!!', 'ไม่สามารถทำรายการได้', 'error'); } }
public function myShiftwork($id = "") { $empDetail = array(); if ($id !== "") { $checker; $headman_level; list($checker, $headman_level) = is_your_headman($id, $this->user_id); if ($checker || is_hr()) { $empDetail = getEmployeeDetail($id); } else { redirect(site_url("Worktime")); exit; } } else { $id = $this->user_id; } $this->load->model("Shiftwork_model", "shiftwork"); $query = $this->shiftwork->getDetailByUserId($id); $data = array(); $data["dataDetail"] = $query->row_array(); $data["dataList"] = $query->result_array(); $data["empDetail"] = $empDetail; parent::setHeader("ตารางเวลาเข้าออกงาน", "User Profile"); $this->load->view("Worktime_my_shiftwork.php", $data); parent::setFooter(); }
public function approve_disapprove_by_hr() { if ($_POST) { //for send to function send mail $mail_detail = array(); $mail_detail['result'] = ''; $mail_detail['remark'] = ''; $post = $this->input->post(); $user_id = $post['user_id']; $leave_id = $post['leave_id']; $type = $post['type']; $remark = $post['remark']; //check is hr if (is_hr($user_id)) { $workflow_id = 0; $log_type = ''; $log_detail = ''; if ($type == 'approve') { $mail_detail['result'] = 'อนุมัติใบลา'; $workflow_id = 4; $log_type = 'approve_by_hr'; $log_detail = 'อนุมัติใบลาโดยฝ่ายบุคคล'; } else { if ($type == 'disapprove') { $mail_detail['result'] = 'ไม่อนุมัติใบลา'; $workflow_id = 5; $log_type = 'disapprove_by_hr'; $log_detail = 'ไม่อนุมัติใบลาโดยฝ่ายบุคคล'; } } if ($remark != '') { $log_detail .= ' หมายเหตุเพิ่มเติม : ' . $remark; } $mail_detail['remark'] = $remark; $where = array('LID' => $leave_id); $data = array('L_WFID' => $workflow_id); $this->leave->update($data, $where); log_leave($log_type, $leave_id, $log_detail, $user_id); $this->send_mail_result_request_to_leave_owner($leave_id); $this->send_mail_to_leave_headman($leave_id, $workflow_id, '', $mail_detail); } } }
// SERVER $PHP_SELF = $_SERVER['PHP_SELF']; // GET / POST $onglet = getpost_variable('onglet', 'admin-users'); /*********************************/ /* COMPOSITION DES ONGLETS... */ /*********************************/ $onglets = array(); $onglets['admin-users'] = _('admin_onglet_gestion_user'); $onglets['ajout-user'] = _('admin_onglet_add_user'); if ($_SESSION['config']['gestion_groupes']) { if ($_SESSION['config']['admin_see_all'] || $_SESSION['userlogin'] == "admin" || is_hr($_SESSION['userlogin'])) { $onglets['admin-group'] = _('admin_onglet_gestion_groupe'); } $onglets['admin-group-users'] = _('admin_onglet_groupe_user'); if ($_SESSION['config']['admin_see_all'] || $_SESSION['userlogin'] == "admin" || is_hr($_SESSION['userlogin'])) { $onglets['admin-group-responsables'] = _('admin_onglet_groupe_resp'); } } if (!isset($onglets[$onglet]) && !in_array($onglet, array('chg_pwd_user', 'modif_group', 'modif_user', 'suppr_group', 'suppr_user'))) { $onglet = 'admin-users'; } /*********************************/ /* COMPOSITION DU HEADER... */ /*********************************/ $add_css = '<style>#onglet_menu .onglet{ width: ' . str_replace(',', '.', 100 / count($onglets)) . '% ;}</style>'; header_menu('', 'Libertempo : ' . _('button_admin_mode'), $add_css); include ROOT_PATH . 'fonctions_javascript.php'; /*********************************/ /* AFFICHAGE DES ONGLETS... */ /*********************************/
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; }
/** * Encapsule le comportement du module d'édition PDF * * @param string $session * * @return void * @access public * @static */ public static function editPDFModule($session) { /*************************************/ // recup des parametres reçus : // GET / POST $user_login = getpost_variable('user_login'); $edit_id = getpost_variable('edit_id', 0); /*************************************/ if ($user_login != $_SESSION['userlogin'] && !is_hr($_SESSION['userlogin']) && !is_resp_of_user($_SESSION['userlogin'], $user_login)) { redirect(ROOT_PATH . 'deconnexion.php'); exit; } /************************************/ if ($edit_id == 0) { // si c'est une nouvelle édition, on insert dans la base avant d'éditer et on renvoit l'id de l'édition $edit_id = \edition\Fonctions::enregistrement_edition($user_login); } \edition\Fonctions::edition_pdf($user_login, $edit_id); $comment_log = "edition PDF (num_edition = {$edit_id}) ({$user_login}) "; log_action(0, "", $user_login, $comment_log); }