Example #1
0
 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;
 }
Example #2
0
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";
}
Example #3
0
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>&nbsp;' . _('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">&nbsp;' . _('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">&nbsp;' . _('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>&nbsp;' . _('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') . '&nbsp</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">&nbsp;</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;
}
Example #4
0
                                        <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 
}
Example #5
0
 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\"> &nbsp; ";
             $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;
 }
Example #6
0
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);
Example #7
0
								          }
								        });
										 
									} 
								});
							}
						</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>';
}
Example #9
0
 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');
     }
 }
Example #10
0
 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();
 }
Example #11
0
 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);
         }
     }
 }
Example #12
0
// 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...  */
/*********************************/
Example #13
0
 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\">&nbsp;</td>\n";
     //dernier jour = dimanche ?
     $last = 7;
     // affichage des dates
     // ... du premier jour voulu à la fin du mois
     for ($j = $first_jour; checkdate($mois, $j, $year); $j++) {
         $j_timestamp = mktime(0, 0, 0, $mois, $j, $year);
         // $j_name=date_fr("D", $j_timestamp);
         $j_name = substr(date_fr("D", $j_timestamp), 0, 1);
         $last = date("N", $j_timestamp);
         $j_date_fr = date_fr("d-m-Y", $j_timestamp);
         $j_num_semaine = date_fr("W", $j_timestamp);
         $td_second_class = get_td_class_of_the_day_in_the_week($j_timestamp);
         // on affiche en gras le jour d'aujourd'hui
         if ($j_timestamp == $timestamp_today) {
             $text_titre_date = "<b>{$j_name} <br/>{$j}</b>";
         } else {
             $text_titre_date = "{$j_name} <br/>{$j}";
         }
         // on regarde si c'est la premiere cellule ou non
         if ($j == $first_jour) {
             $cal_day = "cal-day-first";
         } else {
             $cal_day = "cal-day";
         }
         // on affiche le titre -date (la date du jour)
         $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'] . '&nbsp;(' . $nb_jours_current_month[$id] . ')</td>';
                 } else {
                     $return .= '<td class="cal-user">' . $tab_conges['solde'] . '</td>';
                 }
             }
         }
         $return .= '</tr>';
     }
     $return .= '</table>';
     return $return;
 }
Example #14
0
 /**
  * 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);
 }