예제 #1
0
function ajout_global($tab_new_nb_conges_all, $tab_calcul_proportionnel, $tab_new_comment_all, $DEBUG = FALSE)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    // recup de la liste de TOUS les users dont $resp_login est responsable
    // (prend en compte le resp direct, les groupes, le resp virtuel, etc ...)
    // renvoit une liste de login entre quotes et séparés par des virgules
    $list_users_du_resp = get_list_all_users_du_hr($_SESSION['userlogin'], $DEBUG);
    if ($DEBUG) {
        echo "list_all_users_du_hr = {$list_users_du_resp}<br>\n";
    }
    if ($DEBUG) {
        echo "tab_new_nb_conges_all = <br>";
        print_r($tab_new_nb_conges_all);
        echo "<br>\n";
    }
    if ($DEBUG) {
        echo "tab_calcul_proportionnel = <br>";
        print_r($tab_calcul_proportionnel);
        echo "<br>\n";
    }
    foreach ($tab_new_nb_conges_all as $id_conges => $nb_jours) {
        if ($nb_jours != 0) {
            $comment = $tab_new_comment_all[$id_conges];
            $sql1 = "SELECT u_login, u_quotite FROM conges_users WHERE u_login IN ({$list_users_du_resp}) ORDER BY u_login ";
            $ReqLog1 = SQL::query($sql1);
            while ($resultat1 = $ReqLog1->fetch_array()) {
                $current_login = $resultat1["u_login"];
                $current_quotite = $resultat1["u_quotite"];
                if (!isset($tab_calcul_proportionnel[$id_conges]) || $tab_calcul_proportionnel[$id_conges] != TRUE) {
                    $nb_conges = $nb_jours;
                } else {
                    // pour arrondir au 1/2 le + proche on  fait x 2, on arrondit, puis on divise par 2
                    $nb_conges = ROUND($nb_jours * ($current_quotite / 100) * 2) / 2;
                }
                $valid = verif_saisie_decimal($nb_conges, $DEBUG);
                if ($valid) {
                    // 1 : update de la table conges_solde_user
                    $req_update = 'UPDATE conges_solde_user SET su_solde = su_solde + ' . floatval($nb_conges) . '
							WHERE  su_login = \'' . SQL::quote($current_login) . '\'  AND su_abs_id = \'' . SQL::quote($id_conges) . '\';';
                    $ReqLog_update = SQL::query($req_update);
                    // 2 : on insert l'ajout de conges GLOBAL (pour tous les users) dans la table periode
                    $commentaire = _('resp_ajout_conges_comment_periode_all');
                    // ajout conges
                    insert_ajout_dans_periode($DEBUG, $current_login, $nb_conges, $id_conges, $commentaire);
                }
            }
            if (!isset($tab_calcul_proportionnel[$id_conges]) || $tab_calcul_proportionnel[$id_conges] != TRUE) {
                $comment_log = "ajout conges global ({$nb_jours} jour(s)) ({$comment}) (calcul proportionnel : No)";
            } else {
                $comment_log = "ajout conges global ({$nb_jours} jour(s)) ({$comment}) (calcul proportionnel : Yes)";
            }
            log_action(0, "ajout", "tous", $comment_log, $DEBUG);
        }
    }
}
예제 #2
0
function affichage($user_login, $year_affichage, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin, $tri_date, $onglet, $DEBUG)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    // on initialise le tableau global des jours fériés s'il ne l'est pas déjà :
    if (!isset($_SESSION["tab_j_feries"])) {
        init_tab_jours_feries();
    }
    /********************/
    /* Récupération des informations sur le user : */
    /********************/
    $list_group_dbl_valid_du_resp = get_list_groupes_double_valid_du_resp($_SESSION['userlogin'], $DEBUG);
    $tab_user = array();
    $tab_user = recup_infos_du_user($user_login, $list_group_dbl_valid_du_resp, $DEBUG);
    if ($DEBUG) {
        echo "tab_user =<br>\n";
        print_r($tab_user);
        echo "<br>\n";
    }
    $list_all_users_du_hr = get_list_all_users_du_hr($_SESSION['userlogin'], $DEBUG);
    if ($DEBUG) {
        echo "list_all_users_du_hr = {$list_all_users_du_hr}<br>\n";
    }
    // recup des grd resp du user
    $tab_grd_resp = array();
    if ($_SESSION['config']['double_validation_conges']) {
        get_tab_grd_resp_du_user($user_login, $tab_grd_resp, $DEBUG);
        if ($DEBUG) {
            echo "tab_grd_resp =<br>\n";
            print_r($tab_grd_resp);
            echo "<br>\n";
        }
    }
    /********************/
    /* Titre */
    /********************/
    echo '<h2>' . _('resp_traite_user_titre') . " " . $tab_user['prenom'] . " " . $tab_user['nom'] . ".</H2>\n\n";
    /********************/
    /* Bilan des Conges */
    /********************/
    // AFFICHAGE TABLEAU
    // affichage du tableau récapitulatif des solde de congés d'un user
    affiche_tableau_bilan_conges_user($user_login);
    echo "<br><br>\n";
    /*************************/
    /* SAISIE NOUVEAU CONGES */
    /*************************/
    // dans le cas ou les users ne peuvent pas saisir de demande, le responsable saisi les congès :
    if ($_SESSION['config']['user_saisie_demande'] == FALSE || $_SESSION['config']['resp_saisie_mission']) {
        // si les mois et année ne sont pas renseignés, on prend ceux du jour
        if ($year_calendrier_saisie_debut == 0) {
            $year_calendrier_saisie_debut = date("Y");
        }
        if ($mois_calendrier_saisie_debut == 0) {
            $mois_calendrier_saisie_debut = date("m");
        }
        if ($year_calendrier_saisie_fin == 0) {
            $year_calendrier_saisie_fin = date("Y");
        }
        if ($mois_calendrier_saisie_fin == 0) {
            $mois_calendrier_saisie_fin = date("m");
        }
        if ($DEBUG) {
            echo "{$mois_calendrier_saisie_debut}  {$year_calendrier_saisie_debut}  -  {$mois_calendrier_saisie_fin}  {$year_calendrier_saisie_fin}<br>\n";
        }
        echo "<H3>" . _('resp_traite_user_new_conges') . "</H3>\n\n";
        saisie_nouveau_conges2($user_login, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin, $onglet);
        echo "<hr align=\"center\" size=\"2\" width=\"90%\"> \n";
    }
    /*********************/
    /* Etat des Demandes */
    /*********************/
    if ($_SESSION['config']['user_saisie_demande']) {
        //verif si le user est bien un user du resp (et pas seulement du grad resp)
        if (strstr($list_all_users_du_hr, "'{$user_login}'") != FALSE) {
            echo "<h3>" . _('resp_traite_user_etat_demandes') . "</h3>\n";
            //affiche l'état des demande du user (avec le formulaire pour le responsable)
            affiche_etat_demande_user_for_resp($user_login, $tab_user, $tab_grd_resp, $DEBUG);
            echo "<hr align=\"center\" size=\"2\" width=\"90%\"> \n";
        }
    }
    /*********************/
    /* Etat des Demandes en attente de 2ieme validation */
    /*********************/
    if ($_SESSION['config']['double_validation_conges']) {
        /*******************************/
        /* verif si le resp est grand_responsable pour ce user*/
        if (in_array($_SESSION['userlogin'], $tab_grd_resp)) {
            echo "<h3>" . _('resp_traite_user_etat_demandes_2_valid') . "</h3>\n";
            //affiche l'état des demande en attente de 2ieme valid du user (avec le formulaire pour le responsable)
            affiche_etat_demande_2_valid_user_for_resp($user_login, $DEBUG);
            echo "<hr align=\"center\" size=\"2\" width=\"90%\"> \n";
        }
    }
    /*******************/
    /* Etat des Conges */
    /*******************/
    echo "<h3>" . _('resp_traite_user_etat_conges') . "</h3>\n";
    //affiche l'état des conges du user (avec le formulaire pour le responsable)
    affiche_etat_conges_user_for_resp($user_login, $year_affichage, $tri_date, $DEBUG);
    //echo "<hr align=\"center\" size=\"2\" width=\"90%\"> \n";
    echo "<td valign=\"middle\">\n";
    echo "</td></tr></table>\n";
    echo "<center>\n";
}