Exemplo n.º 1
0
function enregistrement_edition($login, $DEBUG = FALSE)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $tab_solde_user = array();
    $sql1 = 'SELECT su_abs_id, su_solde FROM conges_solde_user where su_login = \'' . SQL::quote($login) . '\'';
    $ReqLog1 = SQL::query($sql1);
    while ($resultat1 = $ReqLog1->fetch_array()) {
        $sql_id = $resultat1["su_abs_id"];
        $tab_solde_user[$sql_id] = $resultat1["su_solde"];
    }
    $new_edition_id = get_last_edition_id() + 1;
    $aujourdhui = date("Y-m-d");
    $num_for_user = get_num_last_edition_user($login) + 1;
    /*************************************************/
    /* Insertion dans le table conges_edition_papier */
    /*************************************************/
    $sql_insert = "INSERT INTO conges_edition_papier\n\t\t\tSET ep_id={$new_edition_id}, ep_login='******', ep_date='{$aujourdhui}', ep_num_for_user={$num_for_user} ";
    $result_insert = SQL::query($sql_insert);
    /*************************************************/
    /* Insertion dans le table conges_solde_edition  */
    /*************************************************/
    // recup du tableau des types de conges (seulement les conges)
    $tab_type_cong = recup_tableau_types_conges($DEBUG);
    foreach ($tab_type_cong as $id_abs => $libelle) {
        $sql_insert_2 = "INSERT INTO conges_solde_edition\n\t\t\t\tSET se_id_edition={$new_edition_id}, se_id_absence={$id_abs}, se_solde={$tab_solde_user[$id_abs]} ";
        $result_insert_2 = SQL::query($sql_insert_2);
    }
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG);
        foreach ($tab_type_conges_exceptionnels as $id_abs => $libelle) {
            $sql_insert_3 = "INSERT INTO conges_solde_edition SET se_id_edition={$new_edition_id}, se_id_absence={$id_abs}, se_solde={$tab_solde_user[$id_abs]} ";
            $result_insert_3 = SQL::query($sql_insert_3);
        }
    }
    /********************************************************************************************/
    /* Update du num edition dans la table periode pour les Conges et demandes de cette edition */
    /********************************************************************************************/
    // recup de la liste des id des absence de type conges !
    $sql_list = "SELECT ta_id FROM conges_type_absence WHERE ta_type='conges' OR ta_type='conges_exceptionnels'";
    $ReqLog_list = SQL::query($sql_list);
    $list_abs_id = "";
    while ($resultat_list = $ReqLog_list->fetch_array()) {
        if ($list_abs_id == "") {
            $list_abs_id = $resultat_list['ta_id'];
        } else {
            $list_abs_id = $list_abs_id . ", " . $resultat_list['ta_id'];
        }
    }
    $sql_update = 'UPDATE conges_periode SET p_edition_id=\'' . $new_edition_id . '\' 
			WHERE p_login = \'' . $login . '\'
			AND p_edition_id IS NULL
			AND (p_type IN (\'' . $list_abs_id . '\') )
			AND (p_etat!=\'demande\') ';
    $ReqLog_update = SQL::query($sql_update);
    return $new_edition_id;
}
Exemplo n.º 2
0
function saisie_ajout($tab_type_conges, $DEBUG)
{
    //$DEBUG;
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    // recup du tableau des types de conges (seulement les congesexceptionnels )
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels();
        if ($DEBUG) {
            echo "tab_type_conges_exceptionnels = ";
            print_r($tab_type_conges_exceptionnels);
            echo "<br><br>\n";
        }
    } else {
        $tab_type_conges_exceptionnels = array();
    }
    // recup de la liste de TOUS les users pour le RH
    // (prend en compte le resp direct, les groupes, le resp virtuel, etc ...)
    // renvoit une liste de login entre quotes et séparés par des virgules
    $tab_all_users_du_hr = recup_infos_all_users_du_hr($_SESSION['userlogin']);
    $tab_all_users_du_grand_resp = recup_infos_all_users_du_grand_resp($_SESSION['userlogin']);
    if ($DEBUG) {
        echo "tab_all_users_du_hr =<br>\n";
        print_r($tab_all_users_du_hr);
        echo "<br>\n";
    }
    if ($DEBUG) {
        echo "tab_all_users_du_grand_resp =<br>\n";
        print_r($tab_all_users_du_grand_resp);
        echo "<br>\n";
    }
    if (count($tab_all_users_du_hr) != 0 || count($tab_all_users_du_grand_resp) != 0) {
        /************************************************************/
        /* SAISIE GLOBALE pour tous les utilisateurs du responsable */
        affichage_saisie_globale_pour_tous($tab_type_conges, $DEBUG);
        echo "<br>\n";
        /***********************************************************************/
        /* SAISIE GROUPE pour tous les utilisateurs d'un groupe du responsable */
        if ($_SESSION['config']['gestion_groupes']) {
            affichage_saisie_globale_groupe($tab_type_conges, $DEBUG);
        }
        echo "<br>\n";
        /************************************************************/
        /* SAISIE USER PAR USER pour tous les utilisateurs du responsable */
        affichage_saisie_user_par_user($tab_type_conges, $tab_type_conges_exceptionnels, $tab_all_users_du_hr, $tab_all_users_du_grand_resp, $DEBUG);
        echo "<br>\n";
    } else {
        echo _('resp_etat_aucun_user') . "<br>\n";
    }
}
Exemplo n.º 3
0
/*********************************/
/*   COMPOSITION DU HEADER...    */
/*********************************/
$add_css = '<style>#onglet_menu .onglet{ width: ' . str_replace(',', '.', 100 / count($onglets)) . '% ;}</style>';
header_menu('admin', $_SESSION['config']['titre_admin_index'], $add_css);
/*********************************/
/*   AFFICHAGE DES ONGLETS...  */
/*********************************/
echo '<div id="onglet_menu">';
foreach ($onglets as $key => $title) {
    echo '<div class="onglet ' . ($onglet == $key ? ' active' : '') . '" >
			<a href="' . $PHP_SELF . '?session=' . $session . '&onglet=' . $key . '">' . $title . '</a>
		</div>';
}
echo '</div>';
/*********************************/
/*   AFFICHAGE DE L'ONGLET ...    */
/*********************************/
/** initialisation des tableaux des types de conges/absences  **/
// recup du tableau des types de conges (seulement les conges)
$tab_type_cong = recup_tableau_types_conges($DEBUG);
// recup du tableau des types de conges exceptionnels (seulement les conges exceptionnels)
$tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG);
echo '<div class="' . $onglet . ' main-content">';
include ROOT_PATH . 'admin/admin_' . $onglet . '.php';
echo '</div>';
/*********************************/
/*   AFFICHAGE DU BOTTOM ...   */
/*********************************/
bottom();
exit;
Exemplo n.º 4
0
function affichage_calendrier($year, $mois, $first_jour, $timestamp_today, $printable, $selected, $tab_type_absence, $select_groupe, $DEBUG = FALSE)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    global $content;
    // recup du tableau des types de conges (seulement les conges)
    $tab_type_cong = recup_tableau_types_conges($DEBUG);
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_cong_excep = recup_tableau_types_conges_exceptionnels($DEBUG);
    }
    /*****************************************/
    /** Récupération des users à afficher:  **/
    $tab_all_users = recup_tableau_des_users_a_afficher($select_groupe, $DEBUG);
    if ($_SESSION['config']['gestion_groupes'] && $select_groupe != 0) {
        $tab_logins = array_keys($tab_all_users);
        $tab_logins = array_map("SQL::quote", $tab_logins);
    } else {
        $tab_logins = false;
    }
    /** FIN de Récupération des users à afficher:  **/
    /************************************************/
    /*************************/
    /**  AFFICHAGE TABLEAU  **/
    if ($printable != 1) {
        // si version ecran :
        $content .= "<table cellpadding=\"1\" class=\"tablo-cal\" width=\"80%\">\n";
    } else {
        // si version imprimable :
        $content .= "<table cellpadding=\"1\" cellspacing=\"0\" border=\"1\" width=\"80%\">\n";
    }
    /*************************************/
    // affichage premiere ligne (semaines)
    $content .= "<tr align=\"center\">\n";
    // affichage nom prenom quotité
    $nb_colonnes = 3;
    $content .= "\t<td class=\"cal-user\" rowspan=\"2\">" . _('divers_nom_maj') . "</td>\n\n";
    $content .= "\t<td class=\"cal-user\" rowspan=\"2\">" . _('divers_prenom_maj') . "</td>\n\n";
    $content .= "\t<td class=\"cal-user\" rowspan=\"2\">%</td>";
    // affichage des semaines
    // ... du premier jour voulu à la fin du mois
    for ($j = $first_jour; checkdate($mois, $j, $year); $j++) {
        $j_timestamp = mktime(0, 0, 0, $mois, $j, $year);
        $j_num_semaine = date_fr("W", $j_timestamp);
        // attention date_fr("w", $j_timestamp) renvoit 0 pour dimanche !
        if (date_fr("w", $j_timestamp) == 0) {
            $j_num_jour_semaine = 7;
        } else {
            $j_num_jour_semaine = date_fr("w", $j_timestamp);
        }
        //DEBUG : $content .= "<td class=\"cal-day\" >$j_num_jour_semaine / $j_num_semaine</td>";
        if ($j == $first_jour) {
            $colspan = 8 - $j_num_jour_semaine;
            $content .= "<td class=\"cal-day-first\" colspan=\"{$colspan}\" >" . _('divers_semaine') . " {$j_num_semaine}</td>\n";
        } else {
            // on affiche que les lundi
            if ($j_num_jour_semaine == 1) {
                $content .= "<td class=\"cal-day\" colspan=\"7\" >" . _('divers_semaine') . " {$j_num_semaine}</td>\n";
            }
        }
    }
    // ... si le premier jour voulu n'etait pas le premier du mois, on va jusqu'à la meme date du mois suivant.
    if ($first_jour != 1) {
        for ($j = 1; $j < $first_jour; $j++) {
            if ($mois == 12) {
                $mois_select = 1;
                $year_select = $year + 1;
            } else {
                $mois_select = $mois + 1;
                $year_select = $year;
            }
            $j_timestamp = mktime(0, 0, 0, $mois_select, $j, $year_select);
            $j_num_jour_semaine = date_fr("w", $j_timestamp);
            $j_num_semaine = date_fr("W", $j_timestamp);
            // attention date_fr("w", $j_timestamp) renvoit 0 pour dimanche !
            if (date_fr("w", $j_timestamp) == 0) {
                $j_num_jour_semaine = 7;
            } else {
                $j_num_jour_semaine = date_fr("w", $j_timestamp);
            }
            //DEBUG : $content .= "<td class=\"cal-day\" >$j_num_jour_semaine / $j_num_semaine</td>";
            if ($j == $first_jour) {
                $colspan = 8 - $j_num_jour_semaine;
                $content .= "<td class=\"cal-day-first\" colspan=\"{$colspan}\" >" . _('divers_semaine') . " {$j_num_semaine}</td>\n";
            } else {
                // on affiche que les lundi
                if ($j_num_jour_semaine == 1) {
                    $content .= "<td class=\"cal-day\" colspan=\"7\" >" . _('divers_semaine') . " {$j_num_semaine}</td>\n";
                }
            }
        }
    }
    //		if( $_SESSION['config']['affiche_soldes_calendrier'] || is_resp($_SESSION['userlogin']) || is_hr($_SESSION['userlogin']) || is_admin($_SESSION['userlogin']) )
    //		{
    //			// affichage des libellé des conges
    //			foreach($tab_type_cong as $id => $libelle)
    //			{
    //					$content .= "<td class=\"cal-user\" rowspan=\"2\">". _('divers_solde') ." $libelle</td>\n";
    //					$nb_colonnes=$nb_colonnes+1;
    //			}
    //
    //
    //			if ($_SESSION['config']['gestion_conges_exceptionnels'])
    //			{
    //				foreach($tab_type_cong_excep as $id => $libelle)
    //				{
    //					$content .= "<td class=\"cal-user\" rowspan=\"2\">". _('divers_solde') ." $libelle</td>\n";
    //					$nb_colonnes=$nb_colonnes+1;
    //				}
    //			}
    //		}
    $content .= "</tr>\n\n";
    /*************************************/
    // affichage 2ieme ligne (dates)
    $content .= "<tr align=\"center\">\n";
    // on affiche pas car on a fait de "rowspan" à la ligne supérieure
    // affichage d'une cellule vide sous les titres
    //$content .= "	<td class=\"cal-user\" colspan=\"$nb_colonnes\">&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);
        $last = date("N", $j_timestamp);
        $j_date_fr = date_fr("d-m-Y", $j_timestamp);
        $j_num_semaine = date_fr("W", $j_timestamp);
        $td_second_class = get_td_class_of_the_day_in_the_week($j_timestamp);
        // on affiche en gras le jour d'aujourd'hui
        if ($j_timestamp == $timestamp_today) {
            $text_titre_date = "<b>{$j_name} <br>{$j}</b>";
        } else {
            $text_titre_date = "{$j_name} <br>{$j}";
        }
        // on regarde si c'est la premiere cellule ou non
        if ($j == $first_jour) {
            $cal_day = "cal-day-first";
        } else {
            $cal_day = "cal-day";
        }
        // on affiche le titre -date (la date du jour)
        $content .= "<td class=\"{$cal_day} {$td_second_class}\" title=\"{$j_date_fr} / " . _('divers_semaine') . " {$j_num_semaine}\">{$text_titre_date}</td>";
    }
    // ... si le premier jour voulu n'etait pas le premier du mois, on va jusqu'à la meme date du mois suivant.
    if ($first_jour != 1) {
        for ($j = 1; $j < $first_jour; $j++) {
            if ($mois == 12) {
                $mois_select = 1;
                $year_select = $year + 1;
            } else {
                $mois_select = $mois + 1;
                $year_select = $year;
            }
            $j_timestamp = mktime(0, 0, 0, $mois_select, $j, $year_select);
            $last = date("N", $j_timestamp);
            $j_name = date_fr("D", $j_timestamp);
            $j_date_fr = date_fr("d-m-Y", $j_timestamp);
            $j_num_semaine = date_fr("W", $j_timestamp);
            $td_second_class = get_td_class_of_the_day_in_the_week($j_timestamp);
            // on affiche en gras le jour d'aujourd'hui
            if ($j_timestamp == $timestamp_today) {
                $content .= "<td class=\"cal-day {$td_second_class}\" title=\"{$j_date_fr} / " . _('divers_semaine') . " {$j_num_semaine}\"><b>{$j_name} {$j}/{$mois_select}</b></td>";
            } else {
                $content .= "<td class=\"cal-day {$td_second_class}\" title=\"{$j_date_fr} / " . _('divers_semaine') . " {$j_num_semaine}\">{$j_name} {$j}/{$mois_select}</td>";
            }
        }
    }
    if ($last < 7) {
        for ($i = $last; $i < 7; $i++) {
            $content .= '<td></td>';
        }
    }
    $content .= "</tr>\n";
    /**************************************************/
    /**************************************************/
    /* recup des info de chaque jour pour tous les users et stockage dans 1 tableau de tableaux */
    $tab_calendrier = recup_tableau_periodes($mois, $first_jour, $year, $tab_logins);
    /**************************************************/
    /* recup des rtt de chaque jour pour tous les users et stockage dans 2 tableaux de tableaux */
    /**************************************************/
    //$tab_rtt_echange  //tableau indexé dont la clé est la date sous forme yyyy-mm-dd
    //il contient pour chaque clé (chaque jour): un tableau indéxé ($tab_jour_rtt_echange) (clé= login)
    // qui contient lui même un tableau ($tab_echange) contenant les infos des echanges de rtt pour ce
    // jour et ce login (valeur du matin + valeur de l'apres midi ('Y' si rtt, 'N' sinon) )
    //$tab_rtt_planifiees=array();  //tableau indexé dont la clé est le login_user
    // il contient pour chaque clé login : un tableau ($tab_user_grille) indexé dont la
    // clé est la date_fin_grille.
    // qui contient lui meme pour chaque clé : un tableau ($tab_user_rtt) qui contient enfin
    // les infos pour le matin et l'après midi ('Y' si rtt, 'N' sinon) sur 2 semaines
    // ( du sem_imp_lu_am au sem_p_ve_pm ) + la date de début et de fin de la grille
    $tab_rtt_echange = recup_tableau_rtt_echange($mois, $first_jour, $year, $tab_logins);
    $tab_rtt_planifiees = recup_tableau_rtt_planifiees($mois, $first_jour, $year, $tab_logins);
    $tab_cong_users = recup_tableau_conges_for_users(false, $tab_logins);
    /**************************************************/
    /**************************************************/
    // affichage lignes suivantes (users)
    // pour chaque user :
    foreach ($tab_all_users as $sql_login => $tab_current_user) {
        $sql_nom = $tab_current_user["nom"];
        $sql_prenom = $tab_current_user["prenom"];
        $sql_quotite = $tab_current_user["quotite"];
        // nb de jour pris dans le mois en cours (pour un type d'absence donné)
        $nb_jours_current_month = array();
        // recup dans un tableau de tableaux les nb et soldes de conges d'un user (indicé par id de conges)
        $tab_cong_user = $tab_cong_users[$sql_login];
        if ($printable == 1) {
            $content .= "<tr align=\"center\" class=\"cal-ligne-user-edit\">\n";
        } elseif ($selected == $sql_login) {
            $content .= "<tr align=\"center\" class=\"cal-ligne-user-selected\">\n";
        } else {
            $content .= "<tr align=\"center\" class=\"cal-ligne-user\">\n";
        }
        if ($printable == 1) {
            $text_nom = "<b>{$sql_nom}</b>";
        } else {
            $text_nom = "<a href=\"{$PHP_SELF}?session={$session}&selected={$sql_login}&year={$year}&mois={$mois}&first_jour={$first_jour}&printable={$printable}&select_groupe={$select_groupe}\" method=\"GET\">{$sql_nom}</a>";
        }
        // affichage nom prenom quotité
        $content .= "<td class=\"cal-user\">{$text_nom}</td><td class=\"cal-user\">{$sql_prenom}</td><td class=\"cal-user\">{$sql_quotite}%</td>";
        // pour chaque jour : (du premier jour demandé à la fin du mois ...)
        for ($j = $first_jour; checkdate($mois, $j, $year); $j++) {
            $j_timestamp = mktime(0, 0, 0, $mois, $j, $year);
            $td_second_class = get_td_class_of_the_day_in_the_week($j_timestamp);
            $mois_select = $mois;
            $year_select = $year;
            // affichage de la cellule correspondant au jour et au user considéré
            $t_nb_j_type_abs = affiche_cellule_jour_user($sql_login, $j_timestamp, $year, $mois_select, $j, $td_second_class, $printable, $tab_calendrier, $tab_rtt_echange, $tab_rtt_planifiees, $tab_type_absence);
            foreach ($t_nb_j_type_abs as $id_type_abs => $nb_j_pris) {
                if (isset($nb_jours_current_month[$id_type_abs])) {
                    $nb_jours_current_month[$id_type_abs] += $nb_j_pris;
                } else {
                    $nb_jours_current_month[$id_type_abs] = $nb_j_pris;
                }
            }
        }
        // si le premier jour demandé n'est pas le 1ier du mois , on va jusqu'à la meme date le mois suivant :
        if ($first_jour != 1) {
            // pour chaque jour jusqu'a la date voulue : (meme num de jour le mois suivant)
            for ($j = 1; $j < $first_jour; $j++) {
                $j_timestamp = mktime(0, 0, 0, $mois + 1, $j, $year);
                $td_second_class = get_td_class_of_the_day_in_the_week($j_timestamp);
                if ($mois == 12) {
                    $mois_select = 1;
                    $year_select = $year + 1;
                } else {
                    $mois_select = $mois + 1;
                    $year_select = $year;
                }
                // affichage de la cellule correspondant au jour et au user considéré
                $t_nb_j_type_abs = affiche_cellule_jour_user($sql_login, $j_timestamp, $year, $mois_select, $j, $td_second_class, $printable, $tab_calendrier, $tab_rtt_echange, $tab_rtt_planifiees, $tab_type_absence);
                foreach ($t_nb_j_type_abs as $id_type_abs => $nb_j_pris) {
                    if (isset($nb_jours_current_month[$id_type_abs])) {
                        $nb_jours_current_month[$id_type_abs] += $nb_j_pris;
                    } else {
                        $nb_jours_current_month[$id_type_abs] = $nb_j_pris;
                    }
                }
            }
        }
        if ($last < 7) {
            for ($i = $last; $i < 7; $i++) {
                $content .= '<td></td>';
            }
        }
        //			if( $_SESSION['config']['affiche_soldes_calendrier'] || is_resp($_SESSION['userlogin']) || is_hr($_SESSION['userlogin']) || is_admin($_SESSION['userlogin']) )
        //			{
        //				// affichage des divers soldes
        //				foreach($tab_cong_user as $id => $tab_conges)
        //				{
        //					// si des jours ont été pris durant le mois affiché, on indique combien :
        //					if((isset($nb_jours_current_month[$id])) && ($_SESSION['config']['affiche_jours_current_month_calendrier']) )
        //						//$content .= "<td class=\"cal-user\">"./*$tab_conges['solde'].*/"&nbsp;("./*$nb_jours_current_month[$id].*/")</td>";
        //					else
        //						//$content .= "<td class=\"cal-user\">"./*$tab_conges['solde'].*/"</td>";
        //				}
        //			}
        $content .= "\n</tr>\n";
    }
    $content .= "</table>\n\n";
}
function affiche_all_demandes_en_cours($tab_type_conges, $DEBUG = FALSE)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    $count1 = 0;
    $count2 = 0;
    $tab_type_all_abs = recup_tableau_tout_types_abs();
    // recup du tableau des types de conges (seulement les conges exceptionnels)
    $tab_type_conges_exceptionnels = array();
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG);
    }
    /*********************************/
    // Récupération des informations
    /*********************************/
    // Récup dans un tableau de tableau des informations de tous les users dont $_SESSION['userlogin'] est responsable sauf lui meme
    $tab_all_users_du_resp = recup_infos_all_users_du_resp($_SESSION['userlogin'], $DEBUG);
    if ($DEBUG) {
        echo "tab_all_users_du_resp :<br>\n";
        print_r($tab_all_users_du_resp);
        echo "<br><br>\n";
    }
    // si tableau des users du resp n'est pas vide
    if (count($tab_all_users_du_resp) != 0) {
        // constitution de la liste (séparé par des virgules) des logins ...
        $list_users_du_resp = "";
        foreach ($tab_all_users_du_resp as $current_login => $tab_current_user) {
            if ($list_users_du_resp == "") {
                $list_users_du_resp = "'{$current_login}'";
            } else {
                $list_users_du_resp = $list_users_du_resp . ", '{$current_login}'";
            }
        }
    }
    // Récup dans un tableau de tableau des informations de tous les users dont $_SESSION['userlogin'] est GRAND responsable
    if ($_SESSION['config']['double_validation_conges']) {
        $tab_all_users_du_grand_resp = recup_infos_all_users_du_grand_resp($_SESSION['userlogin'], $DEBUG);
        // si tableau des users du grand resp n'est pas vide
        if (count($tab_all_users_du_grand_resp) != 0) {
            // constitution de la liste (séparé par des virgules) des logins ...
            $list_users_du_grand_resp = "";
            foreach ($tab_all_users_du_grand_resp as $current_login => $tab_current_user) {
                if ($list_users_du_grand_resp == "") {
                    $list_users_du_grand_resp = "'{$current_login}'";
                } else {
                    $list_users_du_grand_resp = $list_users_du_grand_resp . ", '{$current_login}'";
                }
            }
        }
    }
    /*********************************/
    echo " <form action=\"{$PHP_SELF}?session={$session}&onglet=traitement_demandes\" method=\"POST\"> \n";
    /*********************************/
    /* TABLEAU DES DEMANDES DES USERS DONT ON EST LE RESP */
    /*********************************/
    // si tableau des users du resp n'est pas vide
    if (count($tab_all_users_du_resp) != 0) {
        // Récup des demandes en cours pour les users dont $_SESSION['userlogin'] est responsable :
        $sql1 = "SELECT p_num, p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_date_demande, p_date_traitement FROM conges_periode ";
        $sql1 = $sql1 . " WHERE p_etat =\"demande\" ";
        if ($_SESSION['config']['responsable_virtuel']) {
            $sql1 = $sql1 . " AND p_login != 'conges' ";
        } else {
            $sql1 = $sql1 . " AND p_login IN ({$list_users_du_resp}) ";
        }
        $sql1 = $sql1 . " ORDER BY p_num";
        $ReqLog1 = SQL::query($sql1);
        $count1 = $ReqLog1->num_rows;
        if ($count1 != 0) {
            // AFFICHAGE TABLEAU DES DEMANDES EN COURS
            echo "<h3>" . _('resp_traite_demandes_titre_tableau_1') . "</h3>\n";
            echo "<table cellpadding=\"2\" class=\"tablo\">\n";
            echo '<thead>';
            echo '<tr>';
            echo '<th>' . _('divers_nom_maj_1') . "<br>" . _('divers_prenom_maj_1') . '</th>';
            echo '<th>' . _('divers_quotite_maj_1') . '</th>';
            echo '<th>' . _('divers_debut_maj_1') . '</th>';
            echo '<th>' . _('divers_fin_maj_1') . '</th>';
            echo '<th>' . _('divers_comment_maj_1') . '</th>';
            echo '<th>' . _('resp_traite_demandes_nb_jours') . '</th>';
            foreach ($tab_type_conges as $id_conges => $libelle) {
                echo '<th>' . _('divers_solde_maj_1') . "<br>{$libelle}</th>";
            }
            if ($_SESSION['config']['gestion_conges_exceptionnels']) {
                foreach ($tab_type_conges_exceptionnels as $id_conges => $libelle) {
                    echo '<th>' . _('divers_solde_maj_1') . "<br>{$libelle}</th>";
                }
            }
            echo '<th>' . _('divers_type_maj_1') . '</th>';
            echo '<th>' . _('divers_accepter_maj_1') . '</th>';
            echo '<th>' . _('divers_refuser_maj_1') . '</th>';
            echo '<th>' . _('resp_traite_demandes_attente') . '</th>';
            echo '<th>' . _('resp_traite_demandes_motif_refus') . '</th>';
            if ($_SESSION['config']['affiche_date_traitement']) {
                echo '<th>' . _('divers_date_traitement') . '</th>';
            }
            echo '</tr>';
            echo '</thead>';
            echo '<tbody>';
            $i = true;
            $tab_bt_radio = array();
            while ($resultat1 = $ReqLog1->fetch_array()) {
                /** sur la ligne ,   **/
                /** le 1er bouton radio est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--OK"> */
                /**  et le 2ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--not_OK"> */
                /**  et le 3ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--RIEN"> */
                $sql_p_date_deb = $resultat1["p_date_deb"];
                $sql_p_date_fin = $resultat1["p_date_fin"];
                $sql_p_date_deb_fr = eng_date_to_fr($resultat1["p_date_deb"]);
                $sql_p_date_fin_fr = eng_date_to_fr($resultat1["p_date_fin"]);
                $sql_p_demi_jour_deb = $resultat1["p_demi_jour_deb"];
                $sql_p_demi_jour_fin = $resultat1["p_demi_jour_fin"];
                $sql_p_commentaire = $resultat1["p_commentaire"];
                $sql_p_num = $resultat1["p_num"];
                $sql_p_login = $resultat1["p_login"];
                $sql_p_nb_jours = affiche_decimal($resultat1["p_nb_jours"]);
                $sql_p_type = $resultat1["p_type"];
                $sql_p_date_demande = $resultat1["p_date_demande"];
                $sql_p_date_traitement = $resultat1["p_date_traitement"];
                if ($sql_p_demi_jour_deb == "am") {
                    $demi_j_deb = "mat";
                } else {
                    $demi_j_deb = "aprm";
                }
                if ($sql_p_demi_jour_fin == "am") {
                    $demi_j_fin = "mat";
                } else {
                    $demi_j_fin = "aprm";
                }
                // on construit la chaine qui servira de valeur à passer dans les boutons-radio
                $chaine_bouton_radio = "{$sql_p_login}--{$sql_p_nb_jours}--{$sql_p_type}--{$sql_p_date_deb}--{$sql_p_demi_jour_deb}--{$sql_p_date_fin}--{$sql_p_demi_jour_fin}";
                // si le user fait l'objet d'une double validation on a pas le meme resultat sur le bouton !
                if ($tab_all_users_du_resp[$sql_p_login]['double_valid'] == "Y") {
                    // si on est a la fois resp et grand resp
                    if (count($tab_all_users_du_grand_resp) != 0 && array_key_exists($sql_p_login, $tab_all_users_du_grand_resp)) {
                        $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">";
                    } else {
                        //on est QUe resp
                        $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--VALID\">";
                    }
                } else {
                    $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">";
                }
                $boutonradio2 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--not_OK\">";
                $boutonradio3 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--RIEN\" checked>";
                $text_refus = "<input type=\"text\" name=\"tab_text_refus[{$sql_p_num}]\" size=\"20\" max=\"100\">";
                echo '<tr class="' . ($i ? 'i' : 'p') . '">';
                echo "<td><b>" . $tab_all_users_du_resp[$sql_p_login]['nom'] . "</b><br>" . $tab_all_users_du_resp[$sql_p_login]['prenom'] . "</td><td>" . $tab_all_users_du_resp[$sql_p_login]['quotite'] . "%</td>";
                echo "<td>{$sql_p_date_deb_fr} _ {$demi_j_deb}</td><td>{$sql_p_date_fin_fr} _ {$demi_j_fin}</td><td>{$sql_p_commentaire}</td><td><b>{$sql_p_nb_jours}</b></td>";
                $tab_conges = $tab_all_users_du_resp[$sql_p_login]['conges'];
                foreach ($tab_type_conges as $id_conges => $libelle) {
                    echo '<td>' . $tab_conges[$libelle]['solde'] . '</td>';
                }
                if ($_SESSION['config']['gestion_conges_exceptionnels']) {
                    foreach ($tab_type_conges_exceptionnels as $id_conges => $libelle) {
                        echo '<td>' . $tab_conges[$libelle]['solde'] . '</td>';
                    }
                }
                echo '<td>' . $tab_type_all_abs[$sql_p_type]['libelle'] . '</td>';
                echo "<td>{$boutonradio1}</td><td>{$boutonradio2}</td><td>{$boutonradio3}</td><td>{$text_refus}</td>\n";
                if ($_SESSION['config']['affiche_date_traitement']) {
                    echo "<td class=\"histo-left\">" . _('divers_demande') . " : {$sql_p_date_demande}<br>" . _('divers_traitement') . " : {$sql_p_date_traitement}</td>\n";
                }
                echo '</tr>';
                $i = !$i;
            }
            // while
            echo '</tbody>';
            echo '</table>';
        }
        //if($count1!=0)
    }
    //if( count($tab_all_users_du_resp)!=0 )
    /*********************************/
    /* TABLEAU DES DEMANDES DES USERS DONT ON EST LE GRAND RESP */
    /*********************************/
    if ($_SESSION['config']['double_validation_conges']) {
        // si tableau des users du grand resp n'est pas vide
        if (count($tab_all_users_du_grand_resp) != 0) {
            // Récup des demandes en cours pour les users dont $_SESSION['userlogin'] est GRAND responsable :
            $sql2 = "SELECT p_num, p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_date_demande, p_date_traitement FROM conges_periode ";
            $sql2 = $sql2 . " WHERE p_etat =\"valid\" ";
            $sql2 = $sql2 . " AND p_login IN ({$list_users_du_grand_resp}) ";
            $sql2 = $sql2 . " ORDER BY p_num";
            $ReqLog2 = SQL::query($sql2);
            $count2 = $ReqLog2->num_rows;
            if ($count2 != 0) {
                // AFFICHAGE TABLEAU DES DEMANDES EN COURS POUR DEUXIEME VALIDATION
                echo "<h3>" . _('resp_traite_demandes_titre_tableau_2') . "</h3>\n";
                echo "<table cellpadding=\"2\" class=\"tablo\">\n";
                echo '<thead>';
                echo '<tr>';
                echo "<th><b>" . _('divers_nom_maj_1') . "</b><br>" . _('divers_prenom_maj_1') . '</th>';
                echo '<th>' . _('divers_quotite_maj_1') . '</th>';
                echo '<th>' . _('divers_debut_maj_1') . '</th>';
                echo '<th>' . _('divers_fin_maj_1') . '</th>';
                echo '<th>' . _('divers_comment_maj_1') . '</th>';
                echo '<th>' . _('resp_traite_demandes_nb_jours') . '</th>';
                foreach ($tab_type_conges as $id_conges => $libelle) {
                    echo '<th>' . _('divers_solde_maj_1') . "<br>{$libelle}</th>";
                }
                echo '<th>' . _('divers_type_maj_1') . '</th>';
                echo '<th>' . _('divers_accepter_maj_1') . '</th>';
                echo '<th>' . _('divers_refuser_maj_1') . '</th>';
                echo '<th>' . _('resp_traite_demandes_attente') . '</th>';
                echo '<th>' . _('resp_traite_demandes_motif_refus') . '</th>';
                if ($_SESSION['config']['affiche_date_traitement']) {
                    echo '<th>' . _('divers_date_traitement') . '</th>';
                }
                echo '</tr>';
                echo '</thead>';
                echo '<tbody>';
                $tab_bt_radio = array();
                $i = true;
                while ($resultat2 = $ReqLog2->fetch_array()) {
                    /** sur la ligne ,   **/
                    /** le 1er bouton radio est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--OK"> */
                    /**  et le 2ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--not_OK"> */
                    /**  et le 3ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--RIEN"> */
                    $sql_p_date_deb = $resultat2["p_date_deb"];
                    $sql_p_date_fin = $resultat2["p_date_fin"];
                    $sql_p_date_deb_fr = eng_date_to_fr($resultat2["p_date_deb"]);
                    $sql_p_date_fin_fr = eng_date_to_fr($resultat2["p_date_fin"]);
                    $sql_p_demi_jour_deb = $resultat2["p_demi_jour_deb"];
                    $sql_p_demi_jour_fin = $resultat2["p_demi_jour_fin"];
                    $sql_p_commentaire = $resultat2["p_commentaire"];
                    $sql_p_num = $resultat2["p_num"];
                    $sql_p_login = $resultat2["p_login"];
                    $sql_p_nb_jours = affiche_decimal($resultat2["p_nb_jours"]);
                    $sql_p_type = $resultat2["p_type"];
                    $sql_p_date_demande = $resultat2["p_date_demande"];
                    $sql_p_date_traitement = $resultat2["p_date_traitement"];
                    if ($sql_p_demi_jour_deb == "am") {
                        $demi_j_deb = "mat";
                    } else {
                        $demi_j_deb = "aprm";
                    }
                    if ($sql_p_demi_jour_fin == "am") {
                        $demi_j_fin = "mat";
                    } else {
                        $demi_j_fin = "aprm";
                    }
                    // on construit la chaine qui servira de valeur à passer dans les boutons-radio
                    $chaine_bouton_radio = "{$sql_p_login}--{$sql_p_nb_jours}--{$sql_p_type}--{$sql_p_date_deb}--{$sql_p_demi_jour_deb}--{$sql_p_date_fin}--{$sql_p_demi_jour_fin}";
                    $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">";
                    $boutonradio2 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--not_OK\">";
                    $boutonradio3 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--RIEN\" checked>";
                    $text_refus = "<input type=\"text\" name=\"tab_text_refus[{$sql_p_num}]\" size=\"20\" max=\"100\">";
                    echo '<tr class="' . ($i ? 'i' : 'p') . '">';
                    echo "<td><b>" . $tab_all_users_du_grand_resp[$sql_p_login]['nom'] . "</b><br>" . $tab_all_users_du_grand_resp[$sql_p_login]['prenom'] . "</td><td>" . $tab_all_users_du_grand_resp[$sql_p_login]['quotite'] . "%</td>";
                    echo "<td>{$sql_p_date_deb_fr} _ {$demi_j_deb}</td><td>{$sql_p_date_fin_fr} _ {$demi_j_fin}</td><td>{$sql_p_commentaire}</td><td><b>{$sql_p_nb_jours}</b></td>";
                    $tab_conges = $tab_all_users_du_grand_resp[$sql_p_login]['conges'];
                    foreach ($tab_type_conges as $id_conges => $libelle) {
                        echo '<td>' . $tab_conges[$libelle]['solde'] . '</td>';
                    }
                    echo '<td>' . $tab_type_all_abs[$sql_p_type]['libelle'] . '</td>';
                    echo "<td>{$boutonradio1}</td><td>{$boutonradio2}</td><td>{$boutonradio3}</td><td>{$text_refus}</td>\n";
                    if ($_SESSION['config']['affiche_date_traitement']) {
                        echo "<td class=\"histo-left\">" . _('divers_demande') . " : {$sql_p_date_demande}<br>" . _('divers_traitement') . " : {$sql_p_date_traitement}</td>\n";
                    }
                    echo '</tr>';
                    $i = !$i;
                }
                //while
                echo '</tbody>';
                echo '</table>';
            }
            //if($count2!=0)
        }
        //if( count($tab_all_users_du_grand_resp)!=0 )
    }
    //if($_SESSION['config']['double_validation_conges'])
    echo "<br>\n";
    if ($count1 == 0 && $count2 == 0) {
        echo "<b>" . _('resp_traite_demandes_aucune_demande') . "</b><br><br><br>\n";
    } else {
        echo "<input type=\"submit\" value=\"" . _('form_submit') . "\">\n";
    }
    echo " </form> \n";
}
Exemplo n.º 6
0
function commit_update($u_login_to_update, &$tab_new_user, &$tab_new_jours_an, &$tab_new_solde, &$tab_new_reliquat, $tab_checkbox_sem_imp, $tab_checkbox_sem_p, $DEBUG = FALSE)
{
    //$DEBUG=TRUE;
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    $result = TRUE;
    // recup du tableau des types de conges (seulement les conges)
    $tab_type_conges = recup_tableau_types_conges($DEBUG);
    $tab_type_conges_excep = array();
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_conges_excep = recup_tableau_types_conges_exceptionnels($DEBUG);
    }
    if ($DEBUG) {
        echo "tab_new_jours_an = <br>\n";
        print_r($tab_new_jours_an);
        echo "<br>\n";
        echo "tab_new_solde = <br>\n";
        print_r($tab_new_solde);
        echo "<br>\n";
        echo "tab_new_reliquat = <br>\n";
        print_r($tab_new_reliquat);
        echo "<br>\n";
        echo "tab_type_conges = <br>\n";
        print_r($tab_type_conges);
        echo "<br>\n";
        echo "tab_type_conges_excep = <br>\n";
        print_r($tab_type_conges_excep);
        echo "<br>\n";
    }
    echo "{$u_login_to_update}---" . $tab_new_user['nom'] . "---" . $tab_new_user['prenom'] . "---" . $tab_new_user['quotite'] . "---" . $tab_new_user['is_resp'] . "---" . $tab_new_user['resp_login'] . "---" . $tab_new_user['is_admin'] . "---" . $tab_new_user['is_hr'] . "---" . $tab_new_user['is_active'] . "---" . $tab_new_user['see_all'] . "---" . $tab_new_user['email'] . "---" . $tab_new_user['login'] . "<br>\n";
    $valid_1 = TRUE;
    $valid_2 = TRUE;
    $valid_3 = TRUE;
    $valid_reliquat = TRUE;
    // verification de la validite de la saisie du nombre de jours annuels et du solde pour chaque type de conges
    foreach ($tab_type_conges as $id_conges => $libelle) {
        $valid_1 = $valid_1 && verif_saisie_decimal($tab_new_jours_an[$id_conges], $DEBUG);
        //verif la bonne saisie du nombre d?cimal
        $valid_2 = $valid_2 && verif_saisie_decimal($tab_new_solde[$id_conges], $DEBUG);
        //verif la bonne saisie du nombre d?cimal
        $valid_reliquat = $valid_reliquat && verif_saisie_decimal($tab_new_reliquat[$id_conges], $DEBUG);
        //verif la bonne saisie du nombre d?cimal
    }
    // si l'application gere les conges exceptionnels ET si des types de conges exceptionnels ont été définis
    if ($_SESSION['config']['gestion_conges_exceptionnels'] && count($tab_type_conges_excep) > 0) {
        $valid_3 = TRUE;
        // vérification de la validité de la saisie du nombre de jours annuels et du solde pour chaque type de conges exceptionnels
        foreach ($tab_type_conges_excep as $id_conges => $libelle) {
            $valid_3 = $valid_3 && verif_saisie_decimal($tab_new_solde[$id_conges], $DEBUG);
            //verif la bonne saisie du nombre décimal
        }
    } else {
        $valid_3 = TRUE;
    }
    if ($DEBUG) {
        echo "valid_1 = {$valid_1}  //  valid_2 = {$valid_2}  //  valid_3 = {$valid_3}  //  valid_reliquat = {$valid_reliquat} <br>\n";
    }
    // si aucune erreur de saisie n'a ete commise
    if ($valid_1 && $valid_2 && $valid_3 && $valid_reliquat) {
        // UPDATE de la table conges_users
        $sql = 'UPDATE conges_users SET u_nom=\'' . SQL::quote($tab_new_user['nom']) . '\', u_prenom=\'' . SQL::quote($tab_new_user['prenom']) . '\', u_is_resp=\'' . SQL::quote($tab_new_user['is_resp']) . '\', u_resp_login=\'' . SQL::quote($tab_new_user['resp_login']) . '\',u_is_admin=\'' . SQL::quote($tab_new_user['is_admin']) . '\',u_is_hr=\'' . SQL::quote($tab_new_user['is_hr']) . '\',u_is_active=\'' . SQL::quote($tab_new_user['is_active']) . '\',u_see_all=\'' . SQL::quote($tab_new_user['see_all']) . '\',u_login=\'' . SQL::quote($tab_new_user['login']) . '\',u_quotite=\'' . SQL::quote($tab_new_user['quotite']) . '\',u_email=\'' . SQL::quote($tab_new_user['email']) . '\' WHERE u_login=\'' . SQL::quote($u_login_to_update) . '\'';
        SQL::query($sql);
        /*************************************/
        /* Mise a jour de la table conges_solde_user   */
        foreach ($tab_type_conges as $id_conges => $libelle) {
            $sql = 'REPLACE INTO conges_solde_user SET su_nb_an=\'' . strtr(round_to_half($tab_new_jours_an[$id_conges]), ",", ".") . '\',su_solde=\'' . strtr(round_to_half($tab_new_solde[$id_conges]), ",", ".") . '\',su_reliquat=\'' . strtr(round_to_half($tab_new_reliquat[$id_conges]), ",", ".") . '\',su_login=\'' . SQL::quote($u_login_to_update) . '\',su_abs_id=' . intval($id_conges) . ';';
            echo $sql;
            SQL::query($sql);
        }
        if ($_SESSION['config']['gestion_conges_exceptionnels']) {
            foreach ($tab_type_conges_excep as $id_conges => $libelle) {
                $sql = 'REPLACE INTO conges_solde_user SET su_nb_an=0, su_solde=\'' . strtr(round_to_half($tab_new_solde[$id_conges]), ",", ".") . '\', su_reliquat=\'' . strtr(round_to_half($tab_new_reliquat[$id_conges]), ",", ".") . '\', su_login=\'' . SQL::quote($u_login_to_update) . '\', su_abs_id=' . intval($id_conges) . ';';
                echo $sql;
                SQL::query($sql);
            }
        }
        /*************************************/
        /* Mise a jour de la table artt si besoin :   */
        $tab_grille_rtt_actuelle = get_current_grille_rtt($u_login_to_update, $DEBUG);
        $tab_new_grille_rtt = tab_grille_rtt_from_checkbox($tab_checkbox_sem_imp, $tab_checkbox_sem_p, $DEBUG);
        if ($tab_grille_rtt_actuelle != $tab_new_grille_rtt) {
            /*	if($tab_grille_rtt_actuelle==$tab_new_grille_rtt)
            	{
            	    // on ne touche pas à la table artt
            	}
            	else
            	{
            */
            $new_date_deb_grille = $tab_new_user['year'] . "-" . $tab_new_user['mois'] . "-" . $tab_new_user['jour'];
            /****************************/
            /***   phase 1 :  ***/
            // si la derniere grille est ancienne, on l'update (on update la date de fin de grille)
            // sinon, si la derniere grille date d'aujourd'hui, on la supprime
            // on regarde si la grille artt a deja été modifiée aujourd'hui :
            $sql = 'SELECT a_date_fin_grille FROM conges_artt
			WHERE a_login=\'' . SQL::quote($u_login_to_update) . '\' AND a_date_debut_grille=\'' . SQL::quote($new_date_deb_grille) . '\';';
            $result_grille = SQL::query($sql);
            $count_grille = $result_grille->num_rows;
            if ($count_grille == 0) {
                // date de fin de la grille précedent :
                // $new_date_fin_grille = $new_date_deb_grille -1 jour !
                $new_jour_num = (int) $tab_new_user['jour'];
                $new_mois_num = (int) $tab_new_user['mois'];
                $new_year_num = (int) $tab_new_user['year'];
                $new_date_fin_grille = date("Y-m-d", mktime(0, 0, 0, $new_mois_num, $new_jour_num - 1, $new_year_num));
                // int mktime(int hour, int minute, int second, int month, int day, int year )
                // UPDATE de la table conges_artt
                // en fait, on update la dernière grille (on update la date de fin de grille), et on ajoute une nouvelle
                // grille (avec sa date de début de grille)
                // on update la dernière grille (on update la date de fin de grille)
                $sql = 'UPDATE conges_artt SET a_date_fin_grille=\'' . SQL::quote($new_date_fin_grille) . '\' WHERE a_login=\'' . SQL::quote($u_login_to_update) . '\'  AND a_date_fin_grille=\'9999-12-31\' ';
                SQL::query($sql);
            } else {
                $sql = 'DELETE FROM conges_artt WHERE a_login=\'' . SQL::quote($u_login_to_update) . '\' AND a_date_debut_grille=\'' . SQL::quote($new_date_deb_grille);
                SQL::query($sql);
            }
            /****************************/
            /***   phase 2 :  ***/
            // on Insert la nouvelle grille (celle qui commence aujourd'hui)
            //  on met à 'Y' les demi-journées de rtt (et seulement celles là)
            $list_columns = "";
            $list_valeurs = "";
            $i = 0;
            if ($tab_checkbox_sem_imp != "") {
                while (list($key, $val) = each($tab_checkbox_sem_imp)) {
                    if ($i != 0) {
                        $list_columns = $list_columns . ", ";
                        $list_valeurs = $list_valeurs . ", ";
                    }
                    $list_columns = $list_columns . " {$key} ";
                    $list_valeurs = $list_valeurs . " '{$val}' ";
                    $i = $i + 1;
                }
            }
            if ($tab_checkbox_sem_p != "") {
                while (list($key, $val) = each($tab_checkbox_sem_p)) {
                    if ($i != 0) {
                        $list_columns = $list_columns . ", ";
                        $list_valeurs = $list_valeurs . ", ";
                    }
                    $list_columns = $list_columns . " {$key} ";
                    $list_valeurs = $list_valeurs . " '{$val}' ";
                    $i = $i + 1;
                }
            }
            if ($list_columns != "" && $list_valeurs != "") {
                $sql = "INSERT INTO conges_artt (a_login, {$list_columns}, a_date_debut_grille ) VALUES ('{$u_login_to_update}', {$list_valeurs}, '{$new_date_deb_grille}') ";
                SQL::query($sql);
            }
        }
        // Si changement du login, (on a dèja updaté la table users (mais pas les responsables !!!)) on update toutes les autres tables
        // (les grilles artt, les periodes de conges et les échanges de rtt, etc ....) avec le nouveau login
        if ($tab_new_user['login'] != $u_login_to_update) {
            // update table artt
            $sql = 'UPDATE conges_artt SET a_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE a_login=\'' . SQL::quote($u_login_to_update) . '\' ';
            SQL::query($sql);
            // update table echange_rtt
            $sql = 'UPDATE conges_echange_rtt SET e_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE e_login=\'' . SQL::quote($u_login_to_update) . '\' ';
            SQL::query($sql);
            // update table edition_papier
            $sql = 'UPDATE conges_edition_papier SET ep_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE ep_login=\'' . SQL::quote($u_login_to_update) . '\' ';
            SQL::query($sql);
            // update table groupe_grd_resp
            $sql = 'UPDATE conges_groupe_grd_resp SET ggr_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE ggr_login=\'' . SQL::quote($u_login_to_update) . '\'  ';
            SQL::query($sql);
            // update table groupe_resp
            $sql = 'UPDATE conges_groupe_resp SET gr_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE gr_login=\'' . SQL::quote($u_login_to_update) . '\' ';
            SQL::query($sql);
            // update table conges_groupe_users
            $sql = 'UPDATE conges_groupe_users SET gu_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE gu_login=\'' . SQL::quote($u_login_to_update) . '\' ';
            SQL::query($sql);
            // update table periode
            $sql = 'UPDATE conges_periode SET p_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE p_login=\'' . SQL::quote($u_login_to_update) . '\' ';
            SQL::query($sql);
            // update table conges_solde_user
            $sql = 'UPDATE conges_solde_user SET su_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE su_login=\'' . SQL::quote($u_login_to_update) . '\' ';
            SQL::query($sql);
            // update table conges_users
            $sql = 'UPDATE conges_users SET u_resp_login=\'' . SQL::quote($tab_new_user['login']) . '\' WHERE u_resp_login=\'' . SQL::quote($u_login_to_update) . '\' ';
            SQL::query($sql);
        }
        if ($tab_new_user['login'] != $u_login_to_update) {
            $comment_log = "modif_user (old_login = {$u_login_to_update})  new_login = "******"modif_user login = {$u_login_to_update}";
        }
        log_action(0, "", $u_login_to_update, $comment_log, $DEBUG);
        echo _('form_modif_ok') . " !<br><br> \n";
    } else {
        echo _('form_modif_not_ok') . " !<br><br> \n";
    }
}
Exemplo n.º 7
0
function affiche_formulaire_ajout_user(&$tab_new_user, &$tab_new_jours_an, &$tab_new_solde, $onglet, $DEBUG = FALSE)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    // recup du tableau des types de conges (seulement les conges)
    $tab_type_conges = recup_tableau_types_conges($DEBUG);
    // recup du tableau des types de conges exceptionnels (seulement les conges exceptionnels)
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG);
    }
    if ($DEBUG) {
        echo "tab_type_conges = <br>\n";
        print_r($tab_type_conges);
        echo "<br>\n";
    }
    /*********************/
    /* Ajout Utilisateur */
    /*********************/
    // TITRE
    echo "<h1>" . _('admin_new_users_titre') . "</h1>\n";
    echo '<form action="' . $PHP_SELF . '?session=' . $session . '&onglet=' . $onglet . '" method="POST">';
    /****************************************/
    // tableau des infos de user
    echo "<table class=\"table table-hover table-responsive table-condensed table-striped\" >\n";
    echo "<thead>\n";
    echo "<tr>\n";
    if ($_SESSION['config']['export_users_from_ldap']) {
        echo "<th>" . _('divers_nom_maj_1') . " " . _('divers_prenom_maj_1') . "</th>\n";
    } else {
        echo "<th>" . _('divers_login_maj_1') . "</th>\n";
        echo "<th>" . _('divers_nom_maj_1') . "</th>\n";
        echo "<th>" . _('divers_prenom_maj_1') . "</th>\n";
    }
    echo "<th>" . _('divers_quotite_maj_1') . "</th>\n";
    echo "<th>" . _('admin_new_users_is_resp') . "</th>\n";
    echo "<th>" . _('divers_responsable_maj_1') . "</th>\n";
    echo "<th>" . _('admin_new_users_is_admin') . "</th>\n";
    echo "<th>" . _('admin_new_users_is_hr') . "</th>\n";
    echo "<th>" . _('admin_new_users_see_all') . "</th>\n";
    if (!$_SESSION['config']['export_users_from_ldap']) {
        echo "<th>" . _('admin_users_mail') . "</th>\n";
    }
    if ($_SESSION['config']['how_to_connect_user'] == "dbconges") {
        echo "<th>" . _('admin_new_users_password') . "</th>\n";
        echo "<th>" . _('admin_new_users_password') . "</th>\n";
    }
    echo "</tr>\n";
    echo "</thead>\n";
    echo "<tbody>\n";
    $text_nom = "<input class=\"form-control\" type=\"text\" name=\"new_nom\" size=\"10\" maxlength=\"30\" value=\"" . $tab_new_user['nom'] . "\">";
    $text_prenom = "<input class=\"form-control\" type=\"text\" name=\"new_prenom\" size=\"10\" maxlength=\"30\" value=\"" . $tab_new_user['prenom'] . "\">";
    if (!isset($tab_new_user['quotite']) || $tab_new_user['quotite'] == "") {
        $tab_new_user['quotite'] = 100;
    }
    $text_quotite = "<input class=\"form-control\" type=\"text\" name=\"new_quotite\" size=\"3\" maxlength=\"3\" value=\"" . $tab_new_user['quotite'] . "\">";
    $text_is_resp = "<select class=\"form-control\" name=\"new_is_resp\" ><option value=\"N\">N</option><option value=\"Y\">Y</option></select>";
    // PREPARATION DES OPTIONS DU SELECT du resp_login
    $text_resp_login = "******"form-control\" name=\"new_resp_login\" id=\"resp_login_id\" ><option value=\"no_resp\">" . _('admin_users_no_resp') . "</option>";
    $sql2 = "SELECT u_login, u_nom, u_prenom FROM conges_users WHERE u_is_resp = \"Y\" ORDER BY u_nom, u_prenom";
    $ReqLog2 = SQL::query($sql2);
    while ($resultat2 = $ReqLog2->fetch_array()) {
        $current_resp_login = $resultat2["u_login"];
        if ($tab_new_user['resp_login'] == $current_resp_login) {
            $text_resp_login = $text_resp_login . "<option value=\"{$current_resp_login}\" selected>" . $resultat2["u_nom"] . " " . $resultat2["u_prenom"] . "</option>";
        } else {
            $text_resp_login = $text_resp_login . "<option value=\"{$current_resp_login}\">" . $resultat2["u_nom"] . " " . $resultat2["u_prenom"] . "</option>";
        }
    }
    $text_resp_login = $text_resp_login . "</select>";
    $text_is_admin = "<select class=\"form-control\" name=\"new_is_admin\" ><option value=\"N\">N</option><option value=\"Y\">Y</option></select>";
    $text_is_hr = "<select class=\"form-control\" name=\"new_is_hr\" ><option value=\"N\">N</option><option value=\"Y\">Y</option></select>";
    $text_see_all = "<select class=\"form-control\" name=\"new_see_all\" ><option value=\"N\">N</option><option value=\"Y\">Y</option></select>";
    $text_email = "<input class=\"form-control\" type=\"text\" name=\"new_email\" size=\"10\" maxlength=\"99\" value=\"" . $tab_new_user['email'] . "\">";
    $text_password1 = "<input class=\"form-control\" type=\"password\" name=\"new_password1\" size=\"10\" maxlength=\"15\" value=\"\" autocomplete=\"off\" >";
    $text_password2 = "<input class=\"form-control\" type=\"password\" name=\"new_password2\" size=\"10\" maxlength=\"15\" value=\"\" autocomplete=\"off\" >";
    $text_login = "******"form-control\" type=\"text\" name=\"new_login\" size=\"10\" maxlength=\"98\" value=\"" . $tab_new_user['login'] . "\">";
    // AFFICHAGE DE LA LIGNE DE SAISIE D'UN NOUVEAU USER
    echo "<tr class=\"update-line\">\n";
    // Aj. D.Chabaud - Université d'Auvergne - Sept. 2005
    if ($_SESSION['config']['export_users_from_ldap']) {
        // Récupération de la liste des utilisateurs via un ldap :
        // on crée 2 tableaux (1 avec les noms + prénoms, 1 avec les login)
        // afin de pouvoir construire une liste déroulante dans le formulaire qui suit...
        $tab_ldap = array();
        $tab_login = array();
        recup_users_from_ldap($tab_ldap, $tab_login, $DEBUG);
        // construction de la liste des users récupérés du ldap ...
        array_multisort($tab_ldap, $tab_login);
        // on trie les utilisateurs par le nom
        $lst_users = "<select multiple size=9 name=new_ldap_user[]><option>------------------</option>\n";
        $i = 0;
        foreach ($tab_login as $login) {
            $lst_users .= "<option value={$tab_login[$i]}>{$tab_ldap[$i]}</option>\n";
            $i++;
        }
        $lst_users .= "</select>\n";
        echo "<td>{$lst_users}</td>\n";
    } else {
        echo "<td>{$text_login}</td>\n";
        echo "<td>{$text_nom}</td>\n";
        echo "<td>{$text_prenom}</td>\n";
    }
    echo "<td>{$text_quotite}</td>\n";
    echo "<td>{$text_is_resp}</td>\n";
    echo "<td>{$text_resp_login}</td>\n";
    echo "<td>{$text_is_admin}</td>\n";
    echo "<td>{$text_is_hr}</td>\n";
    echo "<td>{$text_see_all}</td>\n";
    if (!$_SESSION['config']['export_users_from_ldap']) {
        echo "<td>{$text_email}</td>\n";
    }
    if ($_SESSION['config']['how_to_connect_user'] == "dbconges") {
        echo "<td>{$text_password1}</td>\n";
        echo "<td>{$text_password2}</td>\n";
    }
    echo "</tr>\n";
    echo "</tbody>\n";
    echo "</table>\n";
    echo "<br>\n";
    /****************************************/
    //tableau des conges annuels et soldes
    echo "<table class=\"table table-hover table-responsive table-condensed table-striped\" >\n";
    // ligne de titres
    echo "<thead>\n";
    echo "<tr>\n";
    echo "<th></th>\n";
    echo "<th>" . _('admin_new_users_nb_par_an') . "</th>\n";
    echo "<th>" . _('divers_solde') . "</th>\n";
    echo "</tr>\n";
    echo "</thead>\n";
    echo "<tbody>\n";
    $i = true;
    // ligne de saisie des valeurs
    foreach ($tab_type_conges as $id_type_cong => $libelle) {
        echo '<tr class="' . ($i ? 'i' : 'p') . '">';
        $value_jours_an = isset($tab_new_jours_an[$id_type_cong]) ? $tab_new_jours_an[$id_type_cong] : 0;
        $value_solde_jours = isset($tab_new_solde[$id_type_cong]) ? $tab_new_solde[$id_type_cong] : 0;
        $text_jours_an = "<input class=\"form-control\" type=\"text\" name=\"tab_new_jours_an[{$id_type_cong}]\" size=\"5\" maxlength=\"5\" value=\"{$value_jours_an}\">";
        $text_solde_jours = "<input class=\"form-control\" type=\"text\" name=\"tab_new_solde[{$id_type_cong}]\" size=\"5\" maxlength=\"5\" value=\"{$value_solde_jours}\">";
        echo "<td>{$libelle}</td>\n";
        echo "<td>{$text_jours_an}</td>\n";
        echo "<td>{$text_solde_jours}</td>\n";
        echo "</tr>\n";
        $i = !$i;
    }
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        foreach ($tab_type_conges_exceptionnels as $id_type_cong => $libelle) {
            echo '<tr class="' . ($i ? 'i' : 'p') . '">';
            $value_solde_jours = isset($tab_new_solde[$id_type_cong]) ? $tab_new_solde[$id_type_cong] : 0;
            $text_jours_an = "<input type=\"hidden\" name=\"tab_new_jours_an[{$id_type_cong}]\" size=\"5\" maxlength=\"5\" value=\"0\"> &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}\">";
            echo "<td>{$libelle}</td>\n";
            echo "<td>{$text_jours_an}</td>\n";
            echo "<td>{$text_solde_jours}</td>\n";
            echo "</tr>\n";
            $i = !$i;
        }
    }
    echo "</tbody>\n";
    echo "</table>\n";
    echo "<br>\n\n";
    // saisie de la grille des jours d'abscence ARTT ou temps partiel:
    saisie_jours_absence_temps_partiel($tab_new_user['login'], $DEBUG);
    // si gestion des groupes :  affichage des groupe pour y affecter le user
    if ($_SESSION['config']['gestion_groupes']) {
        echo "<br>\n";
        affiche_tableau_affectation_user_groupes("", $DEBUG);
    }
    echo "<hr>\n";
    echo "<input type=\"hidden\" name=\"saisie_user\" value=\"ok\">\n";
    echo "<input class=\"btn btn-success\" type=\"submit\" value=\"" . _('form_submit') . "\">\n";
    echo "<a class=\"btn\" href=\"{$PHP_SELF}?session={$session}\">" . _('form_cancel') . "</a>\n";
    echo "</form>\n";
}
Exemplo n.º 8
0
function affiche_tableau_bilan_conges_user($login)
{
    $request = 'SELECT u_quotite FROM conges_users where u_login = "******";';
    $ReqLog = \includes\SQL::query($request);
    $resultat = $ReqLog->fetch_array();
    $sql_quotite = $resultat['u_quotite'];
    $return = '';
    // recup dans un tableau de tableaux les nb et soldes de conges d'un user
    $tab_cong_user = recup_tableau_conges_for_user($login, true);
    // recup du tableau des types de conges exceptionnels (seulement les conges exceptionnels)
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels();
    }
    $return .= '<table class="table table-hover table-responsive table-condensed table-bordered">';
    $return .= '<thead>';
    $return .= '<tr><td></td><td colspan="' . count($tab_cong_user) * 2 . '">SOLDES</td></tr>';
    $return .= '<tr>';
    $return .= '<th class="titre">' . _('divers_quotite') . '</th>';
    foreach ($tab_cong_user as $id => $val) {
        if ($_SESSION['config']['gestion_conges_exceptionnels'] && in_array($id, $tab_type_conges_exceptionnels)) {
            $return .= '<th class="solde">' . $id . '</th>';
        } else {
            $return .= '<th class="annuel">' . $id . ' / ' . _('divers_an_maj') . '</th><th class="solde">' . $id . '</th>';
        }
    }
    $return .= '</tr>';
    $return .= '</thead>';
    $return .= '<tbody>';
    $return .= '<tr>';
    $return .= '<td class="quotite">' . $sql_quotite . '%</td>';
    foreach ($tab_cong_user as $id => $val) {
        if ($_SESSION['config']['gestion_conges_exceptionnels'] && in_array($id, $tab_type_conges_exceptionnels)) {
            $return .= '<td class="solde">' . $val['solde'] . ($val['reliquat'] > 0 ? ' (' . _('dont_reliquat') . ' ' . $val['reliquat'] . ')' : '') . '</td>';
        } else {
            $return .= '<td class="annuel">' . $val['nb_an'] . '</td><td class="solde">' . $val['solde'] . ($val['reliquat'] > 0 ? ' (' . _('dont_reliquat') . ' ' . $val['reliquat'] . ')' : '') . '</td>';
        }
    }
    $return .= '</tr>';
    $return .= '</tbody>';
    $return .= '</table>';
    return $return;
}
Exemplo n.º 9
0
function edition($user_login, $edit_id, $session, $DEBUG = FALSE)
{
    $tab_info_user = recup_info_user_pour_edition($user_login, $DEBUG);
    // recup infos de l'édition
    $tab_info_edition = recup_info_edition($edit_id, $DEBUG);
    // recup du tableau des types de conges exceptionnels (seulement les conge sexceptionnels )
    $tab_type_cong = recup_tableau_types_conges($DEBUG);
    // recup du tableau des types de conges (seulement les conges)
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG);
    } else {
        $tab_type_conges_exceptionnels = array();
    }
    // recup du tableau de tous les types de conges
    $tab_type_all_cong = recup_tableau_tout_types_abs($DEBUG);
    head_ed($tab_info_user, $tab_info_edition, $tab_type_cong, $tab_type_conges_exceptionnels, $edit_id, $DEBUG);
    if ($DEBUG) {
        echo "tab_info_user :<br>\n";
        print_r($tab_info_user);
        echo "<br><br>\n";
        echo "tab_info_edition :<br>\n";
        print_r($tab_info_edition);
        echo "<br><br>\n";
        echo "tab_type_cong :<br>\n";
        print_r($tab_type_cong);
        echo "<br><br>\n";
        echo "tab_type_conges_exceptionnels :<br>\n";
        print_r($tab_type_conges_exceptionnels);
        echo "<br><br>\n";
        echo "tab_type_all_cong :<br>\n";
        print_r($tab_type_all_cong);
        echo "<br><br>\n";
        echo "numero edition = {$edit_id}<br>\n";
    }
    /*********************************************/
    /* Tableau Historique des Conges et demandes */
    /*********************************************/
    echo "\n<!-- Tableau Historique des Conges et demandes -->\n";
    echo "<tr align=\"center\">\n";
    echo "<td>\n";
    // Récupération des informations
    // on ne recup QUE les periodes de l'edition choisie
    $sql2 = "SELECT p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_etat, p_date_demande, p_date_traitement ";
    $sql2 = $sql2 . "FROM conges_periode ";
    $sql2 = $sql2 . "WHERE p_edition_id = {$edit_id} ";
    $sql2 = $sql2 . "ORDER BY p_date_deb ASC ";
    $ReqLog2 = SQL::query($sql2);
    $count2 = $ReqLog2->num_rows;
    if ($count2 == 0) {
        echo "<b>" . _('editions_aucun_conges') . "</b><br>\n";
    } else {
        // AFFICHAGE TABLEAU
        if ($_SESSION['config']['affiche_date_traitement']) {
            echo "<table cellpadding=\"2\" class=\"tablo-edit\" width=\"850\">\n";
        } else {
            echo "<table cellpadding=\"2\" class=\"tablo-edit\" width=\"750\">\n";
        }
        /*************************************/
        /* affichage anciens soldes          */
        /*************************************/
        echo "\n<!-- affichage anciens soldes -->\n";
        echo "<tr>\n";
        echo "<td colspan=\"5\">\n";
        $edition_precedente_id = get_id_edition_precedente_user($user_login, $edit_id, $DEBUG);
        if ($edition_precedente_id == 0) {
            echo "<b>" . _('editions_soldes_precedents_inconnus') . " !... ";
        } else {
            $tab_edition_precedente = recup_info_edition($edition_precedente_id, $DEBUG);
            foreach ($tab_type_cong as $id_abs => $libelle) {
                echo _('editions_solde_precedent') . " <b>{$libelle} : " . $tab_edition_precedente['conges'][$id_abs] . "</b><br>\n";
            }
            foreach ($tab_type_conges_exceptionnels as $id_abs => $libelle) {
                echo _('editions_solde_precedent') . " <b>{$libelle} : " . $tab_edition_precedente['conges'][$id_abs] . "</b><br>\n";
            }
        }
        echo "<td>\n";
        echo "</tr>\n";
        /*************************************/
        /* affichage lignes de l'edition     */
        /*************************************/
        echo "\n<!-- affichage lignes de l'edition -->\n";
        echo "<tr>\n";
        echo " <td class=\"titre-edit\">" . _('divers_type_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_etat_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_nb_jours_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_debut_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_fin_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_comment_maj_1') . "</td>\n";
        if ($_SESSION['config']['affiche_date_traitement']) {
            echo "<td class=\"titre-edit\">" . _('divers_date_traitement') . "</td>\n";
        }
        echo "</tr>\n";
        while ($resultat2 = $ReqLog2->fetch_array()) {
            $sql_p_date_deb = eng_date_to_fr($resultat2["p_date_deb"]);
            $sql_p_demi_jour_deb = $resultat2["p_demi_jour_deb"];
            if ($sql_p_demi_jour_deb == "am") {
                $demi_j_deb = _('divers_am_short');
            } else {
                $demi_j_deb = _('divers_pm_short');
            }
            $sql_p_date_fin = eng_date_to_fr($resultat2["p_date_fin"]);
            $sql_p_demi_jour_fin = $resultat2["p_demi_jour_fin"];
            if ($sql_p_demi_jour_fin == "am") {
                $demi_j_fin = _('divers_am_short');
            } else {
                $demi_j_fin = _('divers_pm_short');
            }
            $sql_p_nb_jours = $resultat2["p_nb_jours"];
            $sql_p_commentaire = $resultat2["p_commentaire"];
            $sql_p_type = $resultat2["p_type"];
            $sql_p_etat = $resultat2["p_etat"];
            $sql_p_date_demande = $resultat2["p_date_demande"];
            $sql_p_date_traitement = $resultat2["p_date_traitement"];
            echo "<tr>\n";
            echo "<td class=\"histo-edit\">" . $tab_type_all_cong[$sql_p_type]['libelle'] . "</td>\n";
            echo "<td class=\"histo-edit\">";
            if ($sql_p_etat == "refus") {
                echo _('divers_refuse');
            } elseif ($sql_p_etat == "annul") {
                echo _('divers_annule');
            } else {
                echo "{$sql_p_etat}";
            }
            echo "</td>\n";
            if ($sql_p_etat == "ok") {
                echo "<td class=\"histo-big\"> -{$sql_p_nb_jours}</td>";
            } elseif ($sql_p_etat == "ajout") {
                echo "<td class=\"histo-big\"> +{$sql_p_nb_jours}</td>";
            } else {
                echo "<td> {$sql_p_nb_jours}</td>";
            }
            echo "<td class=\"histo-edit\">{$sql_p_date_deb} _ {$demi_j_deb}</td>";
            echo "<td class=\"histo-edit\">{$sql_p_date_fin} _ {$demi_j_fin}</td>";
            echo "<td class=\"histo-edit\">{$sql_p_commentaire}</td>";
            if ($_SESSION['config']['affiche_date_traitement']) {
                if ($sql_p_date_demande == NULL) {
                    echo "<td class=\"histo-left\">" . _('divers_demande') . " : {$sql_p_date_demande}<br>" . _('divers_traitement') . " : {$sql_p_date_traitement}</td>\n";
                } else {
                    echo "<td class=\"histo-left\">" . _('divers_demande') . " : {$sql_p_date_demande}<br>" . _('divers_traitement') . " : pas traité</td>\n";
                }
            }
            echo "</tr>\n";
        }
        /*************************************/
        /* affichage nouveaux soldes         */
        /*************************************/
        echo "\n<!-- affichage nouveaux soldes -->\n";
        echo "<tr>\n";
        echo "<td colspan=\"5\">\n";
        foreach ($tab_type_cong as $id_abs => $libelle) {
            echo _('editions_nouveau_solde') . " <b>{$libelle} : " . $tab_info_edition['conges'][$id_abs] . "</b><br>\n";
        }
        echo "<td>\n";
        echo "</tr>\n";
        echo "</table>\n\n";
    }
    echo "<br><br>\n";
    echo "</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    bottom_ed();
}
Exemplo n.º 10
0
function affiche_tableau_bilan_conges_user($login, $DEBUG = FALSE)
{
    $request = 'SELECT u_quotite FROM conges_users where u_login = \'' . SQL::quote($login) . '\';';
    $ReqLog = SQL::query($request);
    $resultat = $ReqLog->fetch_array();
    $sql_quotite = $resultat['u_quotite'];
    // recup dans un tableau de tableaux les nb et soldes de conges d'un user
    $tab_cong_user = recup_tableau_conges_for_user($login, true, $DEBUG);
    // recup du tableau des types de conges exceptionnels (seulement les conges exceptionnels)
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG);
    }
    echo '<table class="bilan_conges_user">';
    echo '<thead>';
    echo '<tr>';
    echo '<td class="titre">' . _('divers_quotite') . '</td>';
    foreach ($tab_cong_user as $id => $val) {
        if ($_SESSION['config']['gestion_conges_exceptionnels'] && in_array($id, $tab_type_conges_exceptionnels)) {
            echo '<td class="solde">' . _('divers_solde_maj') . ' ' . $id . '</td>';
        } else {
            echo '<td class="annuel">' . $id . ' / ' . _('divers_an_maj') . '</td><td class="solde">' . _('divers_solde_maj') . ' ' . $id . '</td>';
        }
    }
    echo '</tr>';
    echo '</thead>';
    echo '<tbody>';
    echo '<tr>';
    echo '<td class="quotite">' . $sql_quotite . '%</td>';
    foreach ($tab_cong_user as $id => $val) {
        if ($_SESSION['config']['gestion_conges_exceptionnels'] && in_array($id, $tab_type_conges_exceptionnels)) {
            echo '<td class="solde">' . $val['solde'] . ($val['reliquat'] > 0 ? ' (' . _('dont_reliquat') . ' ' . $val['reliquat'] . ')' : '') . '</td>';
        } else {
            echo '<td class="annuel">' . $val['nb_an'] . '</td><td class="solde">' . $val['solde'] . ($val['reliquat'] > 0 ? ' (' . _('dont_reliquat') . ' ' . $val['reliquat'] . ')' : '') . '</td>';
        }
    }
    echo '</tr>';
    echo '</tbody>';
    echo '</table>';
}
Exemplo n.º 11
0
	$cloture_groupe          = getpost_variable('cloture_groupe');
	$tab_cloture_users       = getpost_variable('tab_cloture_users');
	$tab_commentaire_saisie       = getpost_variable('tab_commentaire_saisie');
	/*************************************/
	
	header_popup( $_SESSION['config']['titre_resp_index'] );

	
	/*************************************/
	/***  suite de la page             ***/
	/*************************************/
	
	/** initialisation des tableaux des types de conges/absences  **/
	// recup du tableau des types de conges (conges et congesexceptionnels)
	// on concatene les 2 tableaux
	$tab_type_cong = ( recup_tableau_types_conges( $DEBUG) + recup_tableau_types_conges_exceptionnels( $DEBUG)  );

	// titre
	echo "<H2>". _('resp_cloture_exercice_titre') ."</H2>\n\n";
		
	if($cloture_users=="TRUE")
	{
		cloture_users($tab_type_cong, $tab_cloture_users, $tab_commentaire_saisie,  $DEBUG);
	}
	elseif($cloture_globale=="TRUE")
	{
		cloture_globale($tab_type_cong,  $DEBUG);
	}
	elseif($cloture_groupe=="TRUE")
	{
		cloture_globale_groupe($choix_groupe, $tab_type_cong,  $DEBUG);
Exemplo n.º 12
0
 public static function affiche_all_demandes_en_cours($tab_type_conges)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $session = session_id();
     $count1 = 0;
     $count2 = 0;
     $return = '';
     $tab_type_all_abs = recup_tableau_tout_types_abs();
     // recup du tableau des types de conges (seulement les conges exceptionnels)
     $tab_type_conges_exceptionnels = array();
     if ($_SESSION['config']['gestion_conges_exceptionnels']) {
         $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels();
     }
     /*********************************/
     // Récupération des informations
     /*********************************/
     // Récup dans un tableau de tableau des informations de tous les users dont $_SESSION['userlogin'] est responsable
     $tab_all_users_du_resp = recup_infos_all_users_du_resp($_SESSION['userlogin']);
     // si tableau des users du resp n'est pas vide
     if (count($tab_all_users_du_resp) != 0) {
         // constitution de la liste (séparé par des virgules) des logins ...
         $list_users_du_resp = "";
         foreach ($tab_all_users_du_resp as $current_login => $tab_current_user) {
             if ($list_users_du_resp == "") {
                 $list_users_du_resp = "'{$current_login}'";
             } else {
                 $list_users_du_resp = $list_users_du_resp . ", '{$current_login}'";
             }
         }
     }
     // Récup dans un tableau de tableau des informations de tous les users dont $_SESSION['userlogin'] est GRAND responsable
     if ($_SESSION['config']['double_validation_conges']) {
         $tab_all_users_du_grand_resp = recup_infos_all_users_du_grand_resp($_SESSION['userlogin']);
         // si tableau des users du grand resp n'est pas vide
         if (count($tab_all_users_du_grand_resp) != 0) {
             // constitution de la liste (séparé par des virgules) des logins ...
             $list_users_du_grand_resp = "";
             foreach ($tab_all_users_du_grand_resp as $current_login => $tab_current_user) {
                 if ($list_users_du_grand_resp == "") {
                     $list_users_du_grand_resp = "'{$current_login}'";
                 } else {
                     $list_users_du_grand_resp = $list_users_du_grand_resp . ", '{$current_login}'";
                 }
             }
         }
     }
     /*********************************/
     $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '&onglet=traitement_demandes" method="POST">';
     /*********************************/
     /* TABLEAU DES DEMANDES DES USERS DONT ON EST LE RESP */
     /*********************************/
     // si tableau des users du resp n'est pas vide
     if (count($tab_all_users_du_resp) != 0) {
         // Récup des demandes en cours pour les users dont $_SESSION['userlogin'] est responsable :
         $sql1 = "SELECT p_num, p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_date_demande, p_date_traitement FROM conges_periode ";
         $sql1 = $sql1 . " WHERE p_etat =\"demande\" ";
         $sql1 = $sql1 . " AND p_login IN ({$list_users_du_resp})  ";
         $sql1 = $sql1 . " ORDER BY p_num";
         $ReqLog1 = \includes\SQL::query($sql1);
         $count1 = $ReqLog1->num_rows;
         if ($count1 != 0) {
             // AFFICHAGE TABLEAU DES DEMANDES EN COURS
             $return .= '<h3>' . _('resp_traite_demandes_titre_tableau_1') . '</h3>';
             $return .= '<table cellpadding="2" class="table table-hover table-responsive table-condensed table-striped">';
             $return .= '<thead>';
             $return .= '<tr>';
             $return .= '<th>' . _('divers_nom_maj_1') . '<br>' . _('divers_prenom_maj_1') . '</th>';
             $return .= '<th>' . _('divers_quotite_maj_1') . '</th>';
             $return .= '<th>' . _('divers_type_maj_1') . '</th>';
             $return .= '<th>' . _('divers_debut_maj_1') . '</th>';
             $return .= '<th>' . _('divers_fin_maj_1') . '</th>';
             $return .= '<th>' . _('divers_comment_maj_1') . '</th>';
             $return .= '<th>' . _('resp_traite_demandes_nb_jours') . '</th>';
             // foreach($tab_type_conges as $id_conges => $libelle)
             // {
             // 	echo "<th>". _('divers_solde_maj_1') ."<br>$libelle</th>" ;
             // }
             // if ($_SESSION['config']['gestion_conges_exceptionnels'])
             // foreach($tab_type_conges_exceptionnels as $id_conges => $libelle)
             // {
             // 	echo "<th>". _('divers_solde_maj_1') ."<br>$libelle</th>" ;
             // }
             $return .= '<th>' . _('divers_solde') . '</th>';
             $return .= '<th>' . _('divers_accepter_maj_1') . '</th>';
             $return .= '<th>' . _('divers_refuser_maj_1') . '</th>';
             $return .= '<th>' . _('resp_traite_demandes_attente') . '</th>';
             $return .= '<th>' . _('resp_traite_demandes_motif_refus') . '</th>';
             if ($_SESSION['config']['affiche_date_traitement']) {
                 $return .= '<th>' . _('divers_date_traitement') . '</th>';
             }
             $return .= '</tr>';
             $return .= '</thead>';
             $return .= '<tbody>';
             $i = true;
             $tab_bt_radio = array();
             while ($resultat1 = $ReqLog1->fetch_array()) {
                 /** sur la ligne ,   **/
                 /** le 1er bouton radio est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--OK"> */
                 /**  et le 2ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--not_OK"> */
                 /**  et le 3ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--RIEN"> */
                 $sql_p_date_deb = $resultat1["p_date_deb"];
                 $sql_p_date_deb_fr = eng_date_to_fr($resultat1["p_date_deb"]);
                 $sql_p_demi_jour_deb = $resultat1["p_demi_jour_deb"];
                 if ($sql_p_demi_jour_deb == "am") {
                     $demi_j_deb = "matin";
                 } else {
                     $demi_j_deb = "après-midi";
                 }
                 $sql_p_date_fin = $resultat1["p_date_fin"];
                 $sql_p_date_fin_fr = eng_date_to_fr($resultat1["p_date_fin"]);
                 $sql_p_demi_jour_fin = $resultat1["p_demi_jour_fin"];
                 if ($sql_p_demi_jour_fin == "am") {
                     $demi_j_fin = "matin";
                 } else {
                     $demi_j_fin = "après-midi";
                 }
                 $sql_p_commentaire = $resultat1["p_commentaire"];
                 $sql_p_num = $resultat1["p_num"];
                 $sql_p_login = $resultat1["p_login"];
                 $sql_p_nb_jours = affiche_decimal($resultat1["p_nb_jours"]);
                 $sql_p_type = $resultat1["p_type"];
                 $sql_p_date_demande = $resultat1["p_date_demande"];
                 $sql_p_date_traitement = $resultat1["p_date_traitement"];
                 // on construit la chaine qui servira de valeur à passer dans les boutons-radio
                 $chaine_bouton_radio = "{$sql_p_login}--{$sql_p_nb_jours}--{$sql_p_type}--{$sql_p_date_deb}--{$sql_p_demi_jour_deb}--{$sql_p_date_fin}--{$sql_p_demi_jour_fin}";
                 // si le user fait l'objet d'une double validation on a pas le meme resultat sur le bouton !
                 if ($tab_all_users_du_resp[$sql_p_login]['double_valid'] == "Y") {
                     // si on est a la fois resp et grand resp
                     if (count($tab_all_users_du_grand_resp) != 0 && array_key_exists($sql_p_login, $tab_all_users_du_grand_resp)) {
                         $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">";
                     } else {
                         //on est QUe resp
                         $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--VALID\">";
                     }
                 } else {
                     $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">";
                 }
                 $boutonradio2 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--not_OK\">";
                 $boutonradio3 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--RIEN\" checked>";
                 $text_refus = "<input class=\"form-control\" type=\"text\" name=\"tab_text_refus[{$sql_p_num}]\" size=\"20\" max=\"100\">";
                 $return .= '<tr class="' . ($i ? 'i' : 'p') . '">';
                 $return .= '<td><b>' . $tab_all_users_du_resp[$sql_p_login]['nom'] . '</b><br>' . $tab_all_users_du_resp[$sql_p_login]['prenom'] . '</td><td>' . $tab_all_users_du_resp[$sql_p_login]['quotite'] . '%</td>';
                 $return .= '<td>' . $tab_type_all_abs[$sql_p_type]['libelle'] . '</td>';
                 $return .= '<td>' . $sql_p_date_deb_fr . '<span class="demi">' . $demi_j_deb . '</span></td><td>' . $sql_p_date_fin_fr . '<span class="demi">' . $demi_j_fin . '</span></td><td>' . $sql_p_commentaire . '</td><td><b>' . $sql_p_nb_jours . '</b></td>';
                 $tab_conges = $tab_all_users_du_resp[$sql_p_login]['conges'];
                 $return .= '<td>' . $tab_conges[$tab_type_all_abs[$sql_p_type]['libelle']]['solde'] . '</td>';
                 // foreach($tab_type_conges as $id_conges => $libelle)
                 // {
                 // 	echo "<td>".$tab_conges[$libelle]['solde']."</td>";
                 // }
                 // if ($_SESSION['config']['gestion_conges_exceptionnels'])
                 // foreach($tab_type_conges_exceptionnels as $id_conges => $libelle)
                 // {
                 // 	echo "<td>".$tab_conges[$libelle]['solde']."</td>";
                 // }
                 // echo "<td>".$tab_type_all_abs[$sql_p_type]['libelle']."</td>\n";
                 $return .= '<td>' . $boutonradio1 . '</td><td>' . $boutonradio2 . '</td><td>' . $boutonradio3 . '</td><td>' . $text_refus . '</td>';
                 if ($_SESSION['config']['affiche_date_traitement']) {
                     if ($sql_p_date_demande == NULL) {
                         $return .= '<td class="histo-left">' . _('divers_demande') . ' : ' . $sql_p_date_demande . '<br>' . _('divers_traitement') . ' : ' . $sql_p_date_traitement . '</td>';
                     } else {
                         $return .= '<td class="histo-left">' . _('divers_demande') . ' : ' . $sql_p_date_demande . '<br>' . _('divers_traitement') . ' : pas traité</td>';
                     }
                 }
                 $return .= '</tr>';
                 $i = !$i;
             }
             // while
             $return .= '</tbody>';
             $return .= '</table>';
         }
         //if($count1!=0)
     }
     //if( count($tab_all_users_du_resp)!=0 )
     /*********************************/
     /* TABLEAU DES DEMANDES DES USERS DONT ON EST LE GRAND RESP */
     /*********************************/
     if ($_SESSION['config']['double_validation_conges']) {
         // si tableau des users du grand resp n'est pas vide
         if (count($tab_all_users_du_grand_resp) != 0) {
             // Récup des demandes en cours pour les users dont $_SESSION['userlogin'] est GRAND responsable :
             $sql2 = "SELECT p_num, p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_date_demande, p_date_traitement FROM conges_periode ";
             $sql2 = $sql2 . " WHERE p_etat =\"valid\" ";
             $sql2 = $sql2 . " AND p_login IN ({$list_users_du_grand_resp}) ";
             $sql2 = $sql2 . " ORDER BY p_num";
             $ReqLog2 = \includes\SQL::query($sql2);
             $count2 = $ReqLog2->num_rows;
             if ($count2 != 0) {
                 // AFFICHAGE TABLEAU DES DEMANDES EN COURS POUR DEUXIEME VALIDATION
                 $return .= '<h3>' . _('resp_traite_demandes_titre_tableau_2') . '</h3>';
                 $return .= '<table class="table table-hover table-responsive table-condensed table-striped">';
                 $return .= '<thead>';
                 $return .= '<tr>';
                 $return .= '<th><b>' . _('divers_nom_maj_1') . '</b><br>' . _('divers_prenom_maj_1') . '</th>';
                 $return .= '<th>' . _('divers_quotite_maj_1') . '</th>';
                 $return .= '<th>' . _('divers_debut_maj_1') . '</th>';
                 $return .= '<th>' . _('divers_fin_maj_1') . '</th>';
                 $return .= '<th>' . _('divers_comment_maj_1') . '</th>';
                 $return .= '<th>' . _('resp_traite_demandes_nb_jours') . '</th>';
                 foreach ($tab_type_conges as $id_conges => $libelle) {
                     $return .= '<th>' . _('divers_solde_maj_1') . '<br>' . $libelle . '</th>';
                 }
                 $return .= '<th>' . _('divers_type_maj_1') . '</th>';
                 $return .= '<th>' . _('divers_accepter_maj_1') . '</th>';
                 $return .= '<th>' . _('divers_refuser_maj_1') . '</th>';
                 $return .= '<th>' . _('resp_traite_demandes_attente') . '</th>';
                 $return .= '<th>' . _('resp_traite_demandes_motif_refus') . '</th>';
                 if ($_SESSION['config']['affiche_date_traitement']) {
                     $return .= '<th>' . _('divers_date_traitement') . '</th>';
                 }
                 $return .= '</tr>';
                 $return .= '</thead>';
                 $return .= '<tbody>';
                 $i = true;
                 $tab_bt_radio = array();
                 while ($resultat2 = $ReqLog2->fetch_array()) {
                     /** sur la ligne ,   **/
                     /** le 1er bouton radio est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--OK"> */
                     /**  et le 2ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--not_OK"> */
                     /**  et le 3ieme est <input type="radio" name="tab_bt_radio[valeur de p_num]" value="[valeur de p_login]--[valeur p_nb_jours]--$type--RIEN"> */
                     $sql_p_date_deb = $resultat2["p_date_deb"];
                     $sql_p_date_deb_fr = eng_date_to_fr($resultat2["p_date_deb"]);
                     $sql_p_demi_jour_deb = $resultat2["p_demi_jour_deb"];
                     if ($sql_p_demi_jour_deb == "am") {
                         $demi_j_deb = "matin";
                     } else {
                         $demi_j_deb = "après-midi";
                     }
                     $sql_p_date_fin = $resultat2["p_date_fin"];
                     $sql_p_date_fin_fr = eng_date_to_fr($resultat2["p_date_fin"]);
                     $sql_p_demi_jour_fin = $resultat2["p_demi_jour_fin"];
                     if ($sql_p_demi_jour_fin == "am") {
                         $demi_j_fin = "matin";
                     } else {
                         $demi_j_fin = "après-midi";
                     }
                     $sql_p_commentaire = $resultat2["p_commentaire"];
                     $sql_p_num = $resultat2["p_num"];
                     $sql_p_login = $resultat2["p_login"];
                     $sql_p_nb_jours = affiche_decimal($resultat2["p_nb_jours"]);
                     $sql_p_type = $resultat2["p_type"];
                     $sql_p_date_demande = $resultat2["p_date_demande"];
                     $sql_p_date_traitement = $resultat2["p_date_traitement"];
                     // on construit la chaine qui servira de valeur à passer dans les boutons-radio
                     $chaine_bouton_radio = "{$sql_p_login}--{$sql_p_nb_jours}--{$sql_p_type}--{$sql_p_date_deb}--{$sql_p_demi_jour_deb}--{$sql_p_date_fin}--{$sql_p_demi_jour_fin}";
                     $boutonradio1 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--OK\">";
                     $boutonradio2 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--not_OK\">";
                     $boutonradio3 = "<input type=\"radio\" name=\"tab_bt_radio[{$sql_p_num}]\" value=\"{$chaine_bouton_radio}--RIEN\" checked>";
                     $text_refus = "<input class=\"form-control\" type=\"text\" name=\"tab_text_refus[{$sql_p_num}]\" size=\"20\" max=\"100\">";
                     $return .= '<tr class="' . ($i ? 'i' : 'p') . '">';
                     $return .= '<td><strong>' . $tab_all_users_du_grand_resp[$sql_p_login]['nom'] . '</strong><br>' . $tab_all_users_du_grand_resp[$sql_p_login]['prenom'] . '</td><td>' . $tab_all_users_du_grand_resp[$sql_p_login]['quotite'] . '%</td>';
                     $return .= '<td>' . $sql_p_date_deb_fr . '<span class="demi">' . $demi_j_deb . '<span></td><td>' . $sql_p_date_fin_fr . '<span class="demi">' . $demi_j_fin . '</span></td><td>' . $sql_p_commentaire . '</td><td><b>' . $sql_p_nb_jours . '</b></td>';
                     $tab_conges = $tab_all_users_du_grand_resp[$sql_p_login]['conges'];
                     foreach ($tab_type_conges as $id_conges => $libelle) {
                         $return .= '<td>' . $tab_conges[$libelle]['solde'] . '</td>';
                     }
                     $return .= '<td>' . $tab_type_all_abs[$sql_p_type]['libelle'] . '</td>';
                     $return .= '<td>' . $boutonradio1 . '</td><td>' . $boutonradio2 . '</td><td>' . $boutonradio3 . '</td><td>' . $text_refus . '</td>';
                     if ($_SESSION['config']['affiche_date_traitement']) {
                         $return .= '<td class="histo-left">' . _('divers_demande') . ' : ' . $sql_p_date_demande . '<br>' . _('divers_traitement') . ' : ' . $sql_p_date_traitement . '</td>';
                     }
                     $return .= '</tr>';
                     $i = !$i;
                 }
                 //while
                 $return .= '</tbody>';
                 $return .= '</table>';
             }
             //if($count2!=0)
         }
         //if( count($tab_all_users_du_grand_resp)!=0 )
     }
     //if($_SESSION['config']['double_validation_conges'])
     $return .= '<br>';
     if ($count1 == 0 && $count2 == 0) {
         $return .= '<strong>' . _('resp_traite_demandes_aucune_demande') . '</strong>';
     } else {
         $return .= '<hr/>';
         $return .= '<input class="btn btn-success" type="submit" value="' . _('form_submit') . '">';
     }
     $return .= '</form>';
     return $return;
 }
Exemplo n.º 13
0
function edition($login, $edit_id, $DEBUG = FALSE)
{
    //$DEBUG = TRUE ;
    $session = session_id();
    // recup infos du user
    $tab_info_user = recup_info_user_pour_edition($login, $DEBUG);
    // recup infos de l'édition
    $tab_info_edition = recup_info_edition($edit_id, $DEBUG);
    // recup du tableau des types de conges exceptionnels (seulement les conge sexceptionnels )
    $tab_type_cong = recup_tableau_types_conges($DEBUG);
    // recup du tableau des types de conges (seulement les conges)
    if ($_SESSION['config']['gestion_conges_exceptionnels']) {
        $tab_type_conges_exceptionnels = recup_tableau_types_conges_exceptionnels($DEBUG);
    } else {
        $tab_type_conges_exceptionnels = array();
    }
    // recup du tableau de tous les types de conges
    $tab_type_all_cong = recup_tableau_tout_types_abs($DEBUG);
    if ($DEBUG) {
        echo "tab_info_user :<br>\n";
        print_r($tab_info_user);
        echo "<br><br>\n";
        echo "tab_info_edition :<br>\n";
        print_r($tab_info_edition);
        echo "<br><br>\n";
        echo "tab_type_cong :<br>\n";
        print_r($tab_type_cong);
        echo "<br><br>\n";
        echo "tab_type_conges_exceptionnels :<br>\n";
        print_r($tab_type_conges_exceptionnels);
        echo "<br><br>\n";
        echo "tab_type_all_cong :<br>\n";
        print_r($tab_type_all_cong);
        echo "<br><br>\n";
        echo "numero edition = {$edit_id}<br>\n";
    }
    /**************************************/
    /* affichage du texte en haut de page */
    /**************************************/
    echo "\n<!-- affichage du texte en haut de page -->\n";
    echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"770\">\n";
    echo "<tr align=\"center\">\n";
    echo "<td>" . $_SESSION['config']['texte_haut_edition_papier'] . "<br><br></td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    /**************************************/
    /* affichage du TITRE                 */
    /**************************************/
    echo "\n<!-- affichage du TITRE -->\n";
    echo "<H1>" . $tab_info_user['nom'] . "  " . $tab_info_user['prenom'] . "</H1>\n\n";
    $tab_date = explode("-", $tab_info_edition['date']);
    echo "<H2>" . _('editions_bilan_au') . " {$tab_date['2']} / {$tab_date['1']} / {$tab_date['0']}</H2>\n\n";
    /****************************/
    /* tableau Bilan des Conges */
    /****************************/
    // affichage du tableau récapitulatif des solde de congés d'un user DE cette edition !
    affiche_tableau_bilan_conges_user_edition($tab_info_user, $tab_info_edition, $tab_type_cong, $tab_type_conges_exceptionnels, $DEBUG);
    $quotite = $tab_info_user['quotite'];
    echo "<h3> " . _('divers_quotite') . "&nbsp; : &nbsp;{$quotite} % </h3>\n";
    echo "<br><br><br>\n";
    if ($_SESSION['config']['affiche_date_traitement']) {
        echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"1\" width=\"870\">\n";
    } else {
        echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"1\" width=\"770\">\n";
    }
    echo "<tr align=\"center\">\n";
    echo "<td><h3>" . _('editions_historique') . " :</h3></td>\n";
    echo "</tr>\n";
    /*********************************************/
    /* Tableau Historique des Conges et demandes */
    /*********************************************/
    echo "\n<!-- Tableau Historique des Conges et demandes -->\n";
    echo "<tr align=\"center\">\n";
    echo "<td>\n";
    // Récupération des informations
    // on ne recup QUE les periodes de l'edition choisie
    $sql2 = "SELECT p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_etat, p_date_demande, p_date_traitement ";
    $sql2 = $sql2 . "FROM conges_periode ";
    $sql2 = $sql2 . "WHERE p_edition_id = {$edit_id} ";
    $sql2 = $sql2 . "ORDER BY p_date_deb ASC ";
    $ReqLog2 = SQL::query($sql2);
    $count2 = $ReqLog2->num_rows;
    if ($count2 == 0) {
        echo "<b>" . _('editions_aucun_conges') . "</b><br>\n";
    } else {
        // AFFICHAGE TABLEAU
        if ($_SESSION['config']['affiche_date_traitement']) {
            echo "<table cellpadding=\"2\" class=\"tablo-edit\" width=\"850\">\n";
        } else {
            echo "<table cellpadding=\"2\" class=\"tablo-edit\" width=\"750\">\n";
        }
        /*************************************/
        /* affichage anciens soldes          */
        /*************************************/
        echo "\n<!-- affichage anciens soldes -->\n";
        echo "<tr>\n";
        echo "<td colspan=\"5\">\n";
        $edition_precedente_id = get_id_edition_precedente_user($login, $edit_id, $DEBUG);
        if ($edition_precedente_id == 0) {
            echo "<b>" . _('editions_soldes_precedents_inconnus') . " !... ";
        } else {
            $tab_edition_precedente = recup_info_edition($edition_precedente_id, $DEBUG);
            foreach ($tab_type_cong as $id_abs => $libelle) {
                echo _('editions_solde_precedent') . " <b>{$libelle} : " . $tab_edition_precedente['conges'][$id_abs] . "</b><br>\n";
            }
            foreach ($tab_type_conges_exceptionnels as $id_abs => $libelle) {
                echo _('editions_solde_precedent') . " <b>{$libelle} : " . $tab_edition_precedente['conges'][$id_abs] . "</b><br>\n";
            }
        }
        echo "<td>\n";
        echo "</tr>\n";
        /*************************************/
        /* affichage lignes de l'edition     */
        /*************************************/
        echo "\n<!-- affichage lignes de l'edition -->\n";
        echo "<tr>\n";
        echo " <td class=\"titre-edit\">" . _('divers_type_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_etat_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_nb_jours_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_debut_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_fin_maj_1') . "</td>\n";
        echo " <td class=\"titre-edit\">" . _('divers_comment_maj_1') . "</td>\n";
        if ($_SESSION['config']['affiche_date_traitement']) {
            echo "<td class=\"titre-edit\">" . _('divers_date_traitement') . "</td>\n";
        }
        echo "</tr>\n";
        while ($resultat2 = $ReqLog2->fetch_array()) {
            $sql_p_date_deb = eng_date_to_fr($resultat2["p_date_deb"]);
            $sql_p_demi_jour_deb = $resultat2["p_demi_jour_deb"];
            if ($sql_p_demi_jour_deb == "am") {
                $demi_j_deb = _('divers_am_short');
            } else {
                $demi_j_deb = _('divers_pm_short');
            }
            $sql_p_date_fin = eng_date_to_fr($resultat2["p_date_fin"]);
            $sql_p_demi_jour_fin = $resultat2["p_demi_jour_fin"];
            if ($sql_p_demi_jour_fin == "am") {
                $demi_j_fin = _('divers_am_short');
            } else {
                $demi_j_fin = _('divers_pm_short');
            }
            $sql_p_nb_jours = $resultat2["p_nb_jours"];
            $sql_p_commentaire = $resultat2["p_commentaire"];
            $sql_p_type = $resultat2["p_type"];
            $sql_p_etat = $resultat2["p_etat"];
            $sql_p_date_demande = $resultat2["p_date_demande"];
            $sql_p_date_traitement = $resultat2["p_date_traitement"];
            echo "<tr>\n";
            echo "<td class=\"histo-edit\">" . $tab_type_all_cong[$sql_p_type]['libelle'] . "</td>\n";
            echo "<td class=\"histo-edit\">";
            if ($sql_p_etat == "refus") {
                echo _('divers_refuse');
            } elseif ($sql_p_etat == "annul") {
                echo _('divers_annule');
            } else {
                echo "{$sql_p_etat}";
            }
            echo "</td>\n";
            if ($sql_p_etat == "ok") {
                echo "<td class=\"histo-big\"> -{$sql_p_nb_jours}</td>";
            } elseif ($sql_p_etat == "ajout") {
                echo "<td class=\"histo-big\"> +{$sql_p_nb_jours}</td>";
            } else {
                echo "<td> {$sql_p_nb_jours}</td>";
            }
            echo "<td class=\"histo-edit\">{$sql_p_date_deb} _ {$demi_j_deb}</td>";
            echo "<td class=\"histo-edit\">{$sql_p_date_fin} _ {$demi_j_fin}</td>";
            echo "<td class=\"histo-edit\">{$sql_p_commentaire}</td>";
            if ($_SESSION['config']['affiche_date_traitement']) {
                if ($sql_p_date_demande == NULL) {
                    echo "<td class=\"histo-left\">" . _('divers_demande') . " : {$sql_p_date_demande}<br>" . _('divers_traitement') . " : {$sql_p_date_traitement}</td>\n";
                } else {
                    echo "<td class=\"histo-left\">" . _('divers_demande') . " : {$sql_p_date_demande}<br>" . _('divers_traitement') . " : pas traité</td>\n";
                }
            }
            echo "</tr>\n";
        }
        /*************************************/
        /* affichage nouveaux soldes         */
        /*************************************/
        echo "\n<!-- affichage nouveaux soldes -->\n";
        echo "<tr>\n";
        echo "<td colspan=\"5\">\n";
        foreach ($tab_type_cong as $id_abs => $libelle) {
            echo _('editions_nouveau_solde') . " <b>{$libelle} : " . $tab_info_edition['conges'][$id_abs] . "</b><br>\n";
        }
        echo "<td>\n";
        echo "</tr>\n";
        echo "</table>\n\n";
    }
    echo "<br><br>\n";
    echo "</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    /*************************************/
    /* affichage des zones de signature  */
    /*************************************/
    echo "\n<!-- affichage des zones de signature -->\n";
    echo "<br>\n";
    echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"770\">\n";
    echo "<tr align=\"center\">\n";
    echo "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n";
    echo "<td align=\"left\">\n";
    echo "<b>" . _('editions_date') . " : <br>" . _('editions_signature_1') . " :</b><br><br><br><br><br><br><br><br><br><br>\n";
    echo "</td>\n";
    echo "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n";
    echo "<td align=\"left\">\n";
    echo "<b>" . _('editions_date') . " : <br>" . _('editions_signature_2') . " :</b><br><i>(" . _('editions_cachet_etab') . ")</i><br><br><br><br><br><br><br><br><br>\n";
    echo "</td>\n";
    echo "<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    /*************************************/
    /* affichage du texte en bas de page */
    /*************************************/
    echo "\n<!-- affichage du texte en bas de page -->\n";
    echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"770\">\n";
    echo "<tr align=\"center\">\n";
    echo "<td><br>" . $_SESSION['config']['texte_bas_edition_papier'] . "</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
}
Exemplo n.º 14
0
function affiche_select_conges_id($DEBUG = FALSE)
{
    $tab_conges = recup_tableau_types_conges($DEBUG);
    $tab_conges_except = recup_tableau_types_conges_exceptionnels($DEBUG);
    foreach ($tab_conges as $id => $libelle) {
        if ($libelle == 1) {
            echo "<option value=\"{$id}\" selected>{$libelle}</option>\n";
        } else {
            echo "<option value=\"{$id}\">{$libelle}</option>\n";
        }
    }
    if (count($tab_conges_except) != 0) {
        foreach ($tab_conges_except as $id => $libelle) {
            if ($libelle == 1) {
                echo "<option value=\"{$id}\" selected>{$libelle}</option>\n";
            } else {
                echo "<option value=\"{$id}\">{$libelle}</option>\n";
            }
        }
    }
}
Exemplo n.º 15
0
 public static function affiche_select_conges_id()
 {
     $tab_conges = recup_tableau_types_conges();
     $tab_conges_except = recup_tableau_types_conges_exceptionnels();
     $return = '';
     foreach ($tab_conges as $id => $libelle) {
         if ($libelle == 1) {
             $return .= '<option value="' . $id . '" selected>' . $libelle . '</option>';
         } else {
             $return .= '<option value="' . $id . '">' . $libelle . '</option>';
         }
     }
     if (count($tab_conges_except) != 0) {
         foreach ($tab_conges_except as $id => $libelle) {
             if ($libelle == 1) {
                 $return .= '<option value="' . $id . '" selected>' . $libelle . '</option>';
             } else {
                 $return .= '<option value="' . $id . '">' . $libelle . '</option>';
             }
         }
     }
     return $return;
 }
Exemplo n.º 16
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;
 }