function affichage($login, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $sql1 = 'SELECT u_nom, u_prenom, u_quotite FROM conges_users where u_login = \'' . SQL::quote($login) . '\''; $ReqLog1 = SQL::query($sql1); while ($resultat1 = $ReqLog1->fetch_array()) { $sql_nom = $resultat1["u_nom"]; $sql_prenom = $resultat1["u_prenom"]; $sql_quotite = $resultat1["u_quotite"]; } // TITRE echo "<H1>{$sql_prenom} {$sql_nom} ({$login})</H1>\n\n"; /********************/ /* Bilan des Conges */ /********************/ // affichage du tableau récapitulatif des solde de congés d'un user affiche_tableau_bilan_conges_user($login, $DEBUG); echo "<br><br><br>\n"; affiche_nouvelle_edition($login, $DEBUG); affiche_anciennes_editions($login, $DEBUG); }
function get_libelle_abs($_type_abs_id, $DEBUG=FALSE) { $sql_abs='SELECT ta_libelle FROM conges_type_absence WHERE ta_id=\''.SQL::quote($_type_abs_id).'\''; $ReqLog_abs = SQL::query($sql_abs); if($resultat_abs = $ReqLog_abs->fetch_array()) return $resultat_abs['ta_libelle']; else return "" ; }
function commit_modif($tab_new_values, $session, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; if ($session == "") { $URL = "{$PHP_SELF}"; } else { $URL = "{$PHP_SELF}?session={$session}"; } // update de la table foreach ($tab_new_values as $nom_mail => $tab_mail) { $subject = addslashes($tab_mail['subject']); $body = addslashes($tab_mail['body']); $req_update = 'UPDATE conges_mail SET mail_subject=\'' . $subject . '\', mail_body=\'' . $body . '\' WHERE mail_nom=\'' . SQL::quote($nom_mail) . '\' '; $result1 = SQL::query($req_update); } echo "<span class = \"messages\">" . _('form_modif_ok') . "</span><br>"; $comment_log = "configuration des mails d\\'alerte"; log_action(0, "", "", $comment_log, $DEBUG); if ($DEBUG) { echo "<a href=\"{$URL}\" method=\"POST\">" . _('form_retour') . "</a><br>\n"; } else { echo "<META HTTP-EQUIV=REFRESH CONTENT=\"2; URL={$URL}\">"; } }
function get_current_grille_rtt($u_login_to_update, $DEBUG = FALSE) { $tab_grille = array(); $sql = 'SELECT * FROM conges_artt WHERE a_login=\'' . SQL::quote($u_login_to_update) . '\' AND a_date_fin_grille=\'9999-12-31\' '; $ReqLog1 = SQL::query($sql); while ($resultat1 = $ReqLog1->fetch_array()) { $tab_grille['sem_imp_lu_am'] = $resultat1['sem_imp_lu_am']; $tab_grille['sem_imp_lu_pm'] = $resultat1['sem_imp_lu_pm']; $tab_grille['sem_imp_ma_am'] = $resultat1['sem_imp_ma_am']; $tab_grille['sem_imp_ma_pm'] = $resultat1['sem_imp_ma_pm']; $tab_grille['sem_imp_me_am'] = $resultat1['sem_imp_me_am']; $tab_grille['sem_imp_me_pm'] = $resultat1['sem_imp_me_pm']; $tab_grille['sem_imp_je_am'] = $resultat1['sem_imp_je_am']; $tab_grille['sem_imp_je_pm'] = $resultat1['sem_imp_je_pm']; $tab_grille['sem_imp_ve_am'] = $resultat1['sem_imp_ve_am']; $tab_grille['sem_imp_ve_pm'] = $resultat1['sem_imp_ve_pm']; $tab_grille['sem_imp_sa_am'] = $resultat1['sem_imp_sa_am']; $tab_grille['sem_imp_sa_pm'] = $resultat1['sem_imp_sa_pm']; $tab_grille['sem_imp_di_am'] = $resultat1['sem_imp_di_am']; $tab_grille['sem_imp_di_pm'] = $resultat1['sem_imp_di_pm']; $tab_grille['sem_p_lu_am'] = $resultat1['sem_p_lu_am']; $tab_grille['sem_p_lu_pm'] = $resultat1['sem_p_lu_pm']; $tab_grille['sem_p_ma_am'] = $resultat1['sem_p_ma_am']; $tab_grille['sem_p_ma_pm'] = $resultat1['sem_p_ma_pm']; $tab_grille['sem_p_me_am'] = $resultat1['sem_p_me_am']; $tab_grille['sem_p_me_pm'] = $resultat1['sem_p_me_pm']; $tab_grille['sem_p_je_am'] = $resultat1['sem_p_je_am']; $tab_grille['sem_p_je_pm'] = $resultat1['sem_p_je_pm']; $tab_grille['sem_p_ve_am'] = $resultat1['sem_p_ve_am']; $tab_grille['sem_p_ve_pm'] = $resultat1['sem_p_ve_pm']; $tab_grille['sem_p_sa_am'] = $resultat1['sem_p_sa_am']; $tab_grille['sem_p_sa_pm'] = $resultat1['sem_p_sa_pm']; $tab_grille['sem_p_di_am'] = $resultat1['sem_p_di_am']; $tab_grille['sem_p_di_pm'] = $resultat1['sem_p_di_pm']; } if ($DEBUG) { echo "get_current_grille_rtt :<br>\n"; print_r($tab_grille); echo "<br>\n"; } return $tab_grille; }
function ajout_global_groupe($choix_groupe, $tab_new_nb_conges_all, $tab_calcul_proportionnel, $tab_new_comment_all, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); // recup de la liste des users d'un groupe donné $list_users = get_list_users_du_groupe($choix_groupe, $DEBUG); foreach ($tab_new_nb_conges_all as $id_conges => $nb_jours) { if ($nb_jours != 0) { $comment = $tab_new_comment_all[$id_conges]; $sql1 = "SELECT u_login, u_quotite FROM conges_users WHERE u_login IN ({$list_users}) ORDER BY u_login "; $ReqLog1 = SQL::query($sql1); while ($resultat1 = $ReqLog1->fetch_array()) { $current_login = $resultat1["u_login"]; $current_quotite = $resultat1["u_quotite"]; if (!isset($tab_calcul_proportionnel[$id_conges]) || $tab_calcul_proportionnel[$id_conges] != TRUE) { $nb_conges = $nb_jours; } else { // pour arrondir au 1/2 le + proche on fait x 2, on arrondit, puis on divise par 2 $nb_conges = ROUND($nb_jours * ($current_quotite / 100) * 2) / 2; } $valid = verif_saisie_decimal($nb_conges, $DEBUG); if ($valid) { // 1 : on update conges_solde_user $req_update = 'UPDATE conges_solde_user SET su_solde = su_solde+ ' . intval($nb_conges) . ' WHERE su_login = \'' . SQL::quote($current_login) . '\' AND su_abs_id = ' . intval($id_conges) . ';'; $ReqLog_update = SQL::query($req_update); // 2 : on insert l'ajout de conges dans la table periode // recup du nom du groupe $groupename = get_group_name_from_id($choix_groupe, $DEBUG); $commentaire = _('resp_ajout_conges_comment_periode_groupe') . " {$groupename}"; // ajout conges insert_ajout_dans_periode($DEBUG, $current_login, $nb_conges, $id_conges, $commentaire); } } $group_name = get_group_name_from_id($choix_groupe, $DEBUG); if (!isset($tab_calcul_proportionnel[$id_conges]) || $tab_calcul_proportionnel[$id_conges] != TRUE) { $comment_log = "ajout conges pour groupe {$group_name} ({$nb_jours} jour(s)) ({$comment}) (calcul proportionnel : No)"; } else { $comment_log = "ajout conges pour groupe {$group_name} ({$nb_jours} jour(s)) ({$comment}) (calcul proportionnel : Yes)"; } log_action(0, "ajout", "groupe", $comment_log, $DEBUG); } } }
function traite_all_demande_en_cours($tab_bt_radio, $tab_text_refus, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); while ($elem_tableau = each($tab_bt_radio)) { $champs = explode("--", $elem_tableau['value']); $user_login = $champs[0]; $user_nb_jours_pris = $champs[1]; $type_abs = $champs[2]; // id du type de conges demandé $date_deb = $champs[3]; $demi_jour_deb = $champs[4]; $date_fin = $champs[5]; $demi_jour_fin = $champs[6]; $reponse = $champs[7]; $numero = $elem_tableau['key']; $numero_int = (int) $numero; echo "{$numero}---{$user_login}---{$user_nb_jours_pris}---{$reponse}<br>\n"; /* Modification de la table conges_periode */ if (strcmp($reponse, "OK") == 0) { /* UPDATE table "conges_periode" */ $sql1 = 'UPDATE conges_periode SET p_etat=\'ok\', p_date_traitement=NOW() WHERE p_num=\'' . SQL::quote($numero_int) . '\' AND ( p_etat=\'valid\' OR p_etat=\'demande\' );'; /* On valide l'UPDATE dans la table "conges_periode" ! */ $ReqLog1 = SQL::query($sql1); if ($ReqLog1 && SQL::getVar('affected_rows')) { // Log de l'action log_action($numero_int, "ok", $user_login, "traite demande {$numero} ({$user_login}) ({$user_nb_jours_pris} jours) : {$reponse}", $DEBUG); /* UPDATE table "conges_solde_user" (jours restants) */ soustrait_solde_et_reliquat_user($user_login, $numero_int, $user_nb_jours_pris, $type_abs, $date_deb, $demi_jour_deb, $date_fin, $demi_jour_fin, $DEBUG); //envoi d'un mail d'alerte au user (si demandé dans config de php_conges) if ($_SESSION['config']['mail_valid_conges_alerte_user']) { alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "accept_conges", $DEBUG); } } } elseif (strcmp($reponse, "not_OK") == 0) { // recup du motif de refus $motif_refus = addslashes($tab_text_refus[$numero_int]); $sql1 = 'UPDATE conges_periode SET p_etat=\'refus\', p_motif_refus=\'' . $motif_refus . '\', p_date_traitement=NOW() WHERE p_num=\'' . SQL::quote($numero_int) . '\' AND ( p_etat=\'valid\' OR p_etat=\'demande\' );'; /* On valide l'UPDATE dans la table ! */ $ReqLog1 = SQL::query($sql1); if ($ReqLog1 && SQL::getVar('affected_rows')) { // Log de l'action log_action($numero_int, "refus", $user_login, "traite demande {$numero} ({$user_login}) ({$user_nb_jours_pris} jours) : refus", $DEBUG); //envoi d'un mail d'alerte au user (si demandé dans config de php_conges) if ($_SESSION['config']['mail_refus_conges_alerte_user']) { alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "refus_conges", $DEBUG); } } } } if ($DEBUG) { echo "<form action=\"{$PHP_SELF}?sesssion={$session}&onglet=traitement_demande\" method=\"POST\">\n"; echo "<input type=\"hidden\" name=\"session\" value=\"{$session}\">\n"; echo "<input class=\"btn\" type=\"submit\" value=\"" . _('form_ok') . "\">\n"; echo "</form>\n"; } else { echo _('form_modif_ok') . "<br><br> \n"; /* APPEL D'UNE AUTRE PAGE au bout d'une tempo de 2secondes */ echo "<META HTTP-EQUIV=REFRESH CONTENT=\"2; URL={$PHP_SELF}?session={$session}&onglet=traitement_demandes\">"; } //envoi d'un mail d'alerte au user (si demandé dans config de php_conges) if ($_SESSION['config']['mail_refus_conges_alerte_user']) { alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "refus_conges", $DEBUG); } }
function cloture_current_year_for_login($current_login, $tab_current_user, $tab_type_conges, $commentaire, $DEBUG = FALSE) { // si le num d'exercice du user est < à celui de l'appli (il n'a pas encore été basculé): on le bascule d'exercice if ($tab_current_user['num_exercice'] < $_SESSION['config']['num_exercice']) { // calcule de la date limite d'utilisation des reliquats (si on utilise une date limite et qu'elle n'est pas encore calculée) set_nouvelle_date_limite_reliquat($DEBUG); //tableau de tableaux les nb et soldes de conges d'un user (indicé par id de conges) $tab_conges_current_user = $tab_current_user['conges']; foreach ($tab_type_conges as $id_conges => $libelle) { $user_nb_jours_ajout_an = $tab_conges_current_user[$libelle]['nb_an']; $user_solde_actuel = $tab_conges_current_user[$libelle]['solde']; $user_reliquat_actuel = $tab_conges_current_user[$libelle]['reliquat']; if ($DEBUG) { echo "{$current_login} --- {$id_conges} --- {$user_nb_jours_ajout_an}<br>\n"; } /**********************************************/ /* Modification de la table conges_solde_user */ if ($_SESSION['config']['autorise_reliquats_exercice']) { // ATTENTION : si le solde du user est négatif, on ne compte pas de reliquat et le nouveau solde est nb_jours_an + le solde actuel (qui est négatif) if ($user_solde_actuel > 0) { //calcul du reliquat pour l'exercice suivant if ($_SESSION['config']['nb_maxi_jours_reliquats'] != 0) { if ($user_solde_actuel <= $_SESSION['config']['nb_maxi_jours_reliquats']) { $new_reliquat = $user_solde_actuel; } else { $new_reliquat = $_SESSION['config']['nb_maxi_jours_reliquats']; } } else { $new_reliquat = $user_reliquat_actuel + $user_solde_actuel; } // // update D'ABORD du reliquat $sql_reliquat = 'UPDATE conges_solde_user SET su_reliquat = ' . $new_reliquat . ' WHERE su_login=\'' . SQL::quote($current_login) . '\' AND su_abs_id = ' . $id_conges; $ReqLog_reliquat = SQL::query($sql_reliquat); } else { $new_reliquat = $user_solde_actuel; } // qui est nul ou negatif $new_solde = $user_nb_jours_ajout_an + $new_reliquat; // update du solde $sql_solde = 'UPDATE conges_solde_user SET su_solde = ' . intval($new_solde) . ' WHERE su_login=\'' . SQL::quote($current_login) . '\' AND su_abs_id = ' . intval($id_conges) . ';'; $ReqLog_solde = SQL::query($sql_solde); } else { // ATTENTION : meme si on accepte pas les reliquats, si le solde du user est négatif, il faut le reporter: le nouveau solde est nb_jours_an + le solde actuel (qui est négatif) if ($user_solde_actuel < 0) { $new_solde = $user_nb_jours_ajout_an + $user_solde_actuel; } else { $new_solde = $user_nb_jours_ajout_an; } $sql_solde = 'UPDATE conges_solde_user SET su_solde = ' . intval($new_solde) . ' WHERE su_login=\'' . SQL::quote($current_login) . '\' AND su_abs_id = ' . intval($id_conges) . ';'; $ReqLog_solde = SQL::query($sql_solde); } /* Modification de la table conges_users */ // ATTENTION : ne pas faire "SET u_num_exercice = u_num_exercice+1" dans la requete SQL car on incrémenterait pour chaque type d'absence ! $new_num_exercice = $_SESSION['config']['num_exercice']; $sql2 = 'UPDATE conges_users SET u_num_exercice = ' . $new_num_exercice . ' WHERE u_login=\'' . SQL::quote($current_login) . '\' '; $ReqLog2 = SQL::query($sql2); // on insert l'ajout de conges dans la table periode (avec le commentaire) $date_today = date("Y-m-d"); insert_dans_periode($current_login, $date_today, "am", $date_today, "am", $user_nb_jours_ajout_an, $commentaire, $id_conges, "ajout", 0, $DEBUG); } // on incrémente le num_exercice de l'application si tous les users on été basculés. update_appli_num_exercice($DEBUG); } }
function verif_periode_chevauche_periode_user($date_debut, $date_fin, $user, $num_current_periode = '', $tab_periode_calcul, &$comment, $DEBUG = FALSE, $num_update = null) { /************************************************************/ // 2 : on verifie que le conges demandé ne chevauche pas une periode deja posée // -> on recupere les periodes par rapport aux dates, on en fait une tableau de 1/2 journees, et on compare par 1/2 journee $tab_periode_deja_prise = array(); $current_day = $date_debut; $date_limite = jour_suivant($date_fin); // on va avancer jour par jour jusqu'à la date limite et recupere les periodes qui contiennent ce jour... // on construit un tableau par date et 1/2 jour avec l'état de la periode while ($current_day != $date_limite) { $tab_periode_deja_prise[$current_day]['am'] = "no"; $tab_periode_deja_prise[$current_day]['pm'] = "no"; if ($num_update === null) { // verif si c'est deja un conges $user_periode_sql = 'SELECT p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_etat FROM conges_periode WHERE p_login = \'' . SQL::quote($user) . '\' AND ( p_etat=\'ok\' OR p_etat=\'valid\' OR p_etat=\'demande\' ) ' . (!empty($num_current_periode) ? 'AND p_num != ' . intval($num_current_periode) . ' ' : '') . ' AND p_date_deb<=\'' . SQL::quote($current_day) . '\' AND p_date_fin>=\'' . SQL::quote($current_day) . '\' '; } else { // verif si c'est deja un conges $user_periode_sql = 'SELECT p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_etat FROM conges_periode WHERE p_login = \'' . SQL::quote($user) . '\' AND ( p_etat=\'ok\' OR p_etat=\'valid\' OR p_etat=\'demande\' ) ' . (!empty($num_current_periode) ? 'AND p_num != ' . intval($num_current_periode) . ' ' : '') . ' AND p_date_deb<=\'' . SQL::quote($current_day) . '\' AND p_date_fin>=\'' . SQL::quote($current_day) . '\' AND p_num != \'' . intval($num_update) . '\' '; } $user_periode_request = SQL::query($user_periode_sql); // $user_periode_request = SQL::query($user_periode_sql); if ($user_periode_request->num_rows != 0) { while ($resultat_periode = $user_periode_request->fetch_array()) { $sql_p_date_deb = $resultat_periode["p_date_deb"]; $sql_p_date_fin = $resultat_periode["p_date_fin"]; $sql_p_demi_jour_deb = $resultat_periode["p_demi_jour_deb"]; $sql_p_demi_jour_fin = $resultat_periode["p_demi_jour_fin"]; $sql_p_etat = $resultat_periode["p_etat"]; if ($current_day != $sql_p_date_deb && $current_day != $sql_p_date_fin) { // pas la peine d'aller + loin, on chevauche une periode de conges !!! if ($sql_p_etat == "demande") { $comment = _('calcul_nb_jours_commentaire_impossible'); } else { $comment = _('calcul_nb_jours_commentaire'); } if ($DEBUG) { echo "tab_periode_deja_prise :<br>\n"; print_r($tab_periode_deja_prise); echo "<br>\n"; } return TRUE; } elseif ($current_day == $sql_p_date_deb && $current_day == $sql_p_date_fin) { if ($sql_p_demi_jour_deb == "am") { $tab_periode_deja_prise[$current_day]['am'] = "{$sql_p_etat}"; } if ($sql_p_demi_jour_fin == "pm") { $tab_periode_deja_prise[$current_day]['pm'] = "{$sql_p_etat}"; } } elseif ($current_day == $sql_p_date_deb) { if ($sql_p_demi_jour_deb == "am") { $tab_periode_deja_prise[$current_day]['am'] = "{$sql_p_etat}"; $tab_periode_deja_prise[$current_day]['pm'] = "{$sql_p_etat}"; } else { // alors ($sql_p_demi_jour_deb=="pm") $tab_periode_deja_prise[$current_day]['pm'] = "{$sql_p_etat}"; } } else { if ($sql_p_demi_jour_fin == "pm") { $tab_periode_deja_prise[$current_day]['am'] = "{$sql_p_etat}"; $tab_periode_deja_prise[$current_day]['pm'] = "{$sql_p_etat}"; } else { // alors ($sql_p_demi_jour_fin=="am") $tab_periode_deja_prise[$current_day]['am'] = "{$sql_p_etat}"; } } } } $current_day = jour_suivant($current_day); } // fin du while /**********************************************/ // Ensuite verifie en parcourant le tableau qu'on vient de crée (s'il n'est pas vide) if (count($tab_periode_deja_prise) != 0) { $current_day = $date_debut; $date_limite = jour_suivant($date_fin); // on va avancer jour par jour jusqu'à la date limite et recupere les periodes qui contiennent ce jour... // on construit un tableau par date et 1/2 jour avec l'état de la periode while ($current_day != $date_limite) { if ($tab_periode_calcul[$current_day]['am'] == 1 && $tab_periode_deja_prise[$current_day]['am'] != "no") { // pas la peine d'aller + loin, on chevauche une periode de conges !!! if ($tab_periode_deja_prise[$current_day]['am'] == "demande") { $comment = _('calcul_nb_jours_commentaire_impossible'); } else { $comment = _('calcul_nb_jours_commentaire'); } if ($DEBUG) { echo "tab_periode_deja_prise :<br>\n"; print_r($tab_periode_deja_prise); echo "<br>\n"; } return TRUE; } if ($tab_periode_calcul[$current_day]['pm'] == 1 && $tab_periode_deja_prise[$current_day]['pm'] != "no") { // pas la peine d'aller + loin, on chevauche une periode de conges !!! if ($tab_periode_deja_prise[$current_day]['pm'] == "demande") { $comment = _('calcul_nb_jours_commentaire_impossible'); } else { $comment = _('calcul_nb_jours_commentaire'); } if ($DEBUG) { echo "tab_periode_deja_prise :<br>\n"; print_r($tab_periode_deja_prise); echo "<br>\n"; } return TRUE; } $current_day = jour_suivant($current_day); } // fin du while } if ($DEBUG) { echo "tab_periode_calcul :<br>\n"; print_r($tab_periode_calcul); echo "<br>\n"; } return FALSE; /************************************************************/ // Fin de le verif de chevauchement d'une période déja saisie }
function get_table_data($table, $DEBUG = FALSE) { $chaine_data = ""; // suppression des donnéées de la table : $chaine_delete = 'DELETE FROM `' . SQL::quote($table) . '` ;' . "\n"; $chaine_data = $chaine_data . $chaine_delete; // recup des donnéées de la table : $sql_data = 'SELECT * FROM ' . SQL::quote($table); $ReqLog_data = SQL::query($sql_data); while ($resultat_data = $ReqLog_data->fetch_array()) { $count_fields = count($resultat_data) / 2; // on divise par 2 car c'est un tableau indexé (donc compte key+valeur) $chaine_insert = "INSERT INTO `{$table}` VALUES ( "; for ($i = 0; $i < $count_fields; $i++) { if (isset($resultat_data[$i])) { $chaine_insert = $chaine_insert . "'" . addslashes($resultat_data[$i]) . "'"; } else { $chaine_insert = $chaine_insert . "NULL"; } if ($i != $count_fields - 1) { $chaine_insert = $chaine_insert . ", "; } } $chaine_insert = $chaine_insert . " );\n"; $chaine_data = $chaine_data . $chaine_insert; } return $chaine_data; }
function suppression($u_login_to_delete, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); //echo($u_login_to_delete."---".$u_login_to_delete."<br>"); $sql1 = 'DELETE FROM conges_users WHERE u_login = \'' . SQL::quote($u_login_to_delete) . '\''; $result = SQL::query($sql1); $sql2 = 'DELETE FROM conges_periode WHERE p_login = \'' . SQL::quote($u_login_to_delete) . '\''; $result2 = SQL::query($sql2); $sql3 = 'DELETE FROM conges_artt WHERE a_login = \'' . SQL::quote($u_login_to_delete) . '\''; $result3 = SQL::query($sql3); $sql4 = 'DELETE FROM conges_echange_rtt WHERE e_login = \'' . SQL::quote($u_login_to_delete) . '\''; $result4 = SQL::query($sql4); $sql5 = 'DELETE FROM conges_groupe_resp WHERE gr_login = \'' . SQL::quote($u_login_to_delete) . '\''; $result5 = SQL::query($sql5); $sql6 = 'DELETE FROM conges_groupe_users WHERE gu_login = \'' . SQL::quote($u_login_to_delete) . '\''; $result6 = SQL::query($sql6); $sql7 = 'DELETE FROM conges_solde_user WHERE su_login = \'' . SQL::quote($u_login_to_delete) . '\''; $result7 = SQL::query($sql7); $comment_log = "suppression_user ({$u_login_to_delete})"; log_action(0, "", $u_login_to_delete, $comment_log, $DEBUG); if ($result) { echo _('form_modif_ok') . " !<br><br> \n"; } else { echo _('form_modif_not_ok') . " !<br><br> \n"; } }
function commit_saisie(&$tab_new_values, $session, $DEBUG = FALSE) { //$DEBUG=TRUE; $PHP_SELF = $_SERVER['PHP_SELF']; if ($session == "") { $URL = "{$PHP_SELF}"; } else { $URL = "{$PHP_SELF}?session={$session}"; } $timeout = 2; // temps d'attente pour rafraichir l'écran après l'update ! if ($DEBUG) { echo "SESSION = "; print_r($_SESSION); echo "<br>\n"; } foreach ($tab_new_values as $key => $value) { // CONTROLE gestion_conges_exceptionnels // si désactivation les conges exceptionnels, on verif s'il y a des conges exceptionnels enregistres ! si oui : changement impossible ! if ($key == "gestion_conges_exceptionnels" && $value == "FALSE") { $sql_abs = "SELECT ta_id, ta_libelle FROM conges_type_absence WHERE ta_type='conges_exceptionnels' "; $ReqLog_abs = SQL::query($sql_abs); if ($ReqLog_abs->num_rows != 0) { echo "<b>" . _('config_abs_desactive_cong_excep_impossible') . "</b><br>\n"; $value = "TRUE"; $timeout = 5; } } // CONTROLE jour_mois_limite_reliquats // si modif de jour_mois_limite_reliquats, on verifie le format ( 0 ou jj-mm) , sinon : changement impossible ! if ($key == "jour_mois_limite_reliquats" && $value != "0") { $t = explode("-", $value); if (checkdate($t[1], $t[0], date("Y")) == FALSE) { echo "<b>" . _('config_jour_mois_limite_reliquats_modif_impossible') . "</b><br>\n"; $sql_date = "SELECT conf_valeur FROM conges_config WHERE conf_nom='jour_mois_limite_reliquats' "; $ReqLog_date = SQL::query($sql_date); $data = $ReqLog_date->fetch_row(); $value = $data[0]; $timeout = 5; } } if (preg_match("/_installed\$/", $key) && $value == "1") { $plugin = explode("_", $key); $plugin = $plugin[0]; install_plugin($plugin); } elseif (preg_match("/_installed\$/", $key) && $value == "0") { $plugin = explode("_", $key); $plugin = $plugin[0]; uninstall_plugin($plugin); } if (preg_match("/_activated\$/", $key) && $value == "1") { $plugin = explode("_", $key); $plugin = $plugin[0]; activate_plugin($plugin); } elseif (preg_match("/_activated\$/", $key) && $value == "0") { $plugin = explode("_", $key); $plugin = $plugin[0]; disable_plugin($plugin); } // Mise à jour $sql2 = 'UPDATE conges_config SET conf_valeur = \'' . addslashes($value) . '\' WHERE conf_nom =\'' . SQL::quote($key) . '\' '; $ReqLog2 = SQL::query($sql2); } $_SESSION['config'] = init_config_tab(); // on re-initialise le tableau des variables de config // enregistrement dans les logs $comment_log = "nouvelle configuration de php_conges "; log_action(0, "", "", $comment_log, $DEBUG); echo "<span class = \"messages\">" . _('form_modif_ok') . "</span><br>"; echo "<META HTTP-EQUIV=REFRESH CONTENT=\"{$timeout}; URL={$URL}\">"; }
function modif_resp_groupes($choix_resp, &$checkbox_resp_group, &$checkbox_grd_resp_group, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $result_insert = TRUE; $result_insert_2 = TRUE; //echo "responsable : $choix_resp<br>\n"; // on supprime tous les anciens resps du groupe puis on ajoute tous ceux qui sont dans le tableau de la checkbox $sql_del = 'DELETE FROM conges_groupe_resp WHERE gr_login=\'' . SQL::quote($choix_resp) . '\''; $ReqLog_del = SQL::query($sql_del); // on supprime tous les anciens grands resps du groupe puis on ajoute tous ceux qui sont dans le tableau de la checkbox $sql_del_2 = 'DELETE FROM conges_groupe_grd_resp WHERE ggr_login=\'' . SQL::quote($choix_resp) . '\''; $ReqLog_del_2 = SQL::query($sql_del_2); // ajout des resp qui sont dans la checkbox if ($checkbox_resp_group != "") { foreach ($checkbox_resp_group as $gid => $value) { $sql_insert = "INSERT INTO conges_groupe_resp SET gr_gid={$gid}, gr_login='******' "; $result_insert = SQL::query($sql_insert); } } // ajout des grands resp qui sont dans la checkbox if ($checkbox_grd_resp_group != "") { foreach ($checkbox_grd_resp_group as $grd_gid => $value) { $sql_insert_2 = "INSERT INTO conges_groupe_grd_resp SET ggr_gid={$grd_gid}, ggr_login='******' "; $result_insert_2 = SQL::query($sql_insert_2); } } if ($result_insert && $result_insert_2) { echo _('form_modif_ok') . " !<br><br> \n"; } else { echo _('form_modif_not_ok') . " !<br><br> \n"; } $comment_log = "mofification groupes dont {$choix_resp} est responsable ou grand responsable"; log_action(0, "", $choix_resp, $comment_log, $DEBUG); /* APPEL D'UNE AUTRE PAGE */ echo " <form action=\"{$PHP_SELF}?session={$session}&onglet=admin-group-responsables&choix_gestion_groupes_responsables=resp-group\" method=\"POST\"> \n"; echo "<input type=\"submit\" value=\"" . _('form_retour') . "\">\n"; echo " </form> \n"; }
function get_nb_users_du_groupe($group_id, $DEBUG = FALSE) { $sql1 = 'SELECT DISTINCT(gu_login) FROM conges_groupe_users WHERE gu_gid = ' . SQL::quote($group_id) . ' ORDER BY gu_login '; $ReqLog1 = SQL::query($sql1); $nb_users = $ReqLog1->num_rows; return $nb_users; }
function modif_group_users($choix_group, &$checkbox_group_users, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); // on supprime tous les anciens users du groupe puis on ajoute tous ceux qui sont dans le tableau checkbox (si il n'est pas vide) $sql_del = 'DELETE FROM conges_groupe_users WHERE gu_gid=' . SQL::quote($choix_group); $ReqLog_del = SQL::query($sql_del); if (is_array($checkbox_group_users) && count($checkbox_group_users) != 0) { foreach ($checkbox_group_users as $login => $value) { //$login=$checkbox_group_users[$i] ; $sql_insert = "INSERT INTO conges_groupe_users SET gu_gid={$choix_group}, gu_login='******' "; $result_insert = SQL::query($sql_insert); } } else { $result_insert = TRUE; } if ($result_insert) { echo _('form_modif_ok') . "<br><br> \n"; } else { echo _('form_modif_not_ok') . "<br><br> \n"; } $comment_log = "mofification_users_du_groupe : {$choix_group}"; log_action(0, "", "", $comment_log, $DEBUG); /* APPEL D'UNE AUTRE PAGE */ echo " <form action=\"{$PHP_SELF}?session={$session}&onglet=admin-group-users\" method=\"POST\"> \n"; echo "<input type=\"submit\" value=\"" . _('form_retour') . "\">\n"; echo " </form> \n"; }
function suppression_group($group_to_delete, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $sql1 = 'DELETE FROM conges_groupe WHERE g_gid = ' . SQL::quote($group_to_delete); $result = SQL::query($sql1); $sql2 = 'DELETE FROM conges_groupe_users WHERE gu_gid = ' . SQL::quote($group_to_delete); $result2 = SQL::query($sql2); $sql3 = 'DELETE FROM conges_groupe_resp WHERE gr_gid = ' . SQL::quote($group_to_delete); $result3 = SQL::query($sql3); if ($_SESSION['config']['double_validation_conges']) { $sql4 = 'DELETE FROM conges_groupe_grd_resp WHERE ggr_gid = ' . SQL::quote($group_to_delete); $result4 = SQL::query($sql4); } $comment_log = "suppression_groupe ({$group_to_delete})"; log_action(0, "", "", $comment_log, $DEBUG); if ($result) { echo _('form_modif_ok') . " !<br><br> \n"; } else { echo _('form_modif_not_ok') . " !<br><br> \n"; } /* APPEL D'UNE AUTRE PAGE au bout d'une tempo de 2secondes */ echo "<META HTTP-EQUIV=REFRESH CONTENT=\"2; URL=admin_index.php?session={$session}&onglet=admin-group\">"; }
function soustrait_solde_et_reliquat_user($user_login, $num_current_periode, $user_nb_jours_pris, $type_abs, $date_deb, $demi_jour_deb, $date_fin, $demi_jour_fin, $DEBUG = FALSE) { $user_nb_jours_pris = strtr($user_nb_jours_pris, ",", "."); //si on autorise les reliquats if ($_SESSION['config']['autorise_reliquats_exercice']) { //recup du reliquat du user pour ce type d'absence $reliquat = get_reliquat_user_conges($user_login, $type_abs, $DEBUG); //echo "reliquat = $reliquat<br>\n"; // s'il y a une date limite d'utilisationdes reliquats (au format jj-mm) if ($_SESSION['config']['jour_mois_limite_reliquats'] != 0) { //si date_fin_conges < date_limite_reliquat => alors on décompte dans reliquats if ($date_fin < $_SESSION['config']['date_limite_reliquats']) { if ($reliquat > $user_nb_jours_pris) { $new_reliquat = $reliquat - $user_nb_jours_pris; } else { $new_reliquat = 0; } } elseif ($date_deb >= $_SESSION['config']['date_limite_reliquats']) { $new_reliquat = $reliquat; } else { include 'fonctions_calcul.php'; $nb_reliquats_a_deduire = compter($user_login, $num_current_periode, $date_deb, $_SESSION['config']['date_limite_reliquats'], $demi_jour_deb, "pm", null, $DEBUG); if ($reliquat > $nb_reliquats_a_deduire) { $new_reliquat = $reliquat - $nb_reliquats_a_deduire; } else { $new_reliquat = 0; } } } else { if ($reliquat > $user_nb_jours_pris) { $new_reliquat = $reliquat - $user_nb_jours_pris; } else { $new_reliquat = 0; } } $sql2 = 'UPDATE conges_solde_user SET su_solde=su_solde-' . SQL::quote($user_nb_jours_pris) . ', su_reliquat=' . SQL::quote(str_replace(",", ".", $new_reliquat)) . ' WHERE su_login=\'' . SQL::quote($user_login) . '\' AND su_abs_id=' . $type_abs; } else { $sql2 = 'UPDATE conges_solde_user SET su_solde=su_solde-' . SQL::quote($user_nb_jours_pris) . ' WHERE su_login=\'' . SQL::quote($user_login) . '\' AND su_abs_id=\'' . $type_abs; } $ReqLog2 = SQL::query($sql2); }
function commit_suppr($session, $id_to_update, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; if ($session == "") { $URL = "{$PHP_SELF}"; } else { $URL = "{$PHP_SELF}?session={$session}"; } if ($DEBUG) { echo "URL = {$URL}<br>\n"; } // delete dans la table conges_type_absence $req_delete1 = 'DELETE FROM conges_type_absence WHERE ta_id=' . SQL::quote($id_to_update) . '\''; $result1 = SQL::query($req_delete1); // delete dans la table conges_solde_user $req_delete2 = 'DELETE FROM conges_solde_user WHERE su_abs_id=' . SQL::quote($id_to_update) . '\''; $result2 = SQL::query($req_delete2); echo "<span class = \"messages\">" . _('form_modif_ok') . "</span><br>"; $comment_log = "config : supprime_type_absence ({$id_to_update}) "; log_action(0, "", "", $comment_log, $DEBUG); if ($DEBUG) { echo "<a href=\"{$URL}\" method=\"POST\">" . _('form_retour') . "</a><br>\n"; } else { echo "<META HTTP-EQUIV=REFRESH CONTENT=\"2; URL={$URL}\">"; } }
function commit_update($group_to_update, $new_groupname, $new_comment, $new_double_valid, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $result = TRUE; $new_comment = addslashes($new_comment); echo "{$group_to_update}---{$new_groupname}---{$new_comment}---{$new_double_valid}<br>\n"; // UPDATE de la table conges_groupe $sql1 = 'UPDATE conges_groupe SET g_groupename=\'' . $new_groupname . '\', g_comment=\'' . $new_comment . '\' , g_double_valid=\'' . $new_double_valid . '\' WHERE g_gid=\'' . SQL::quote($group_to_update) . '\''; $result1 = SQL::query($sql1); if ($result1 == FALSE) { $result == FALSE; } $comment_log = "modif_groupe ({$group_to_update}) : {$new_groupname} , {$new_comment} (double_valid = {$new_double_valid})"; log_action(0, "", "", $comment_log, $DEBUG); if ($result) { echo _('form_modif_ok') . " !<br><br> \n"; } else { echo _('form_modif_not_ok') . " !<br><br> \n"; } /* APPEL D'UNE AUTRE PAGE au bout d'une tempo de 2secondes */ echo "<META HTTP-EQUIV=REFRESH CONTENT=\"2; URL=admin_index.php?session={$session}&onglet=admin-group\">"; }
$session_password = ""; $erreur = "login_passwd_incorrect"; // appel du formulaire d'intentification (login/password) session_saisie_user_password($erreur, $session_username, $session_password); exit; } else { // on initialise la nouvelle session session_create($session_username); } } } } } /*****************************************************************/ if (isset($_SESSION['userlogin'])) { $request = "SELECT u_nom, u_passwd, u_prenom, u_is_resp FROM conges_users where u_login = '******'userlogin']) . "' "; $rs = SQL::query($request); if ($rs->num_rows != 1) { redirect(ROOT_PATH . 'index.php'); } else { $session = session_id(); $row = $rs->fetch_array(); $NOM = $row["u_nom"]; $PRENOM = $row["u_prenom"]; $is_resp = $row["u_is_resp"]; // si le login est celui d'un responsable ET on est pas en mode "responsable virtuel" // OU on est en mode "responsable virtuel" avec login= celui du resp virtuel $return_url = getpost_variable('return_url'); if (!empty($return_url)) { if (strpos($return_url, '?')) { redirect(ROOT_PATH . $return_url . '&session=' . $session);
function traite_demandes($user_login, $tab_radio_traite_demande, $tab_text_refus, $DEBUG=FALSE) { $PHP_SELF=$_SERVER['PHP_SELF']; ; $session=session_id(); // recup dans un tableau de tableau les infos des types de conges et absences $tab_tout_type_abs = recup_tableau_tout_types_abs( $DEBUG); while($elem_tableau = each($tab_radio_traite_demande)) { $champs = explode("--", $elem_tableau['value']); $user_login=$champs[0]; $user_nb_jours_pris=$champs[1]; $user_nb_jours_pris_float=(float) $user_nb_jours_pris ; $value_type_abs_id=$champs[2]; $date_deb=$champs[3]; $demi_jour_deb=$champs[4]; $date_fin=$champs[5]; $demi_jour_fin=$champs[6]; $reponse=$champs[7]; // $value_traite=$champs[3]; $numero=$elem_tableau['key']; $numero_int=(int) $numero; if( $DEBUG ) { echo "<br><br>conges numero :$numero --- User_login : $user_login --- nb de jours : $user_nb_jours_pris --->$value_traite<br>" ; } if($reponse == "ACCEPTE") // acceptation definitive d'un conges { /* UPDATE table "conges_periode" */ $sql1 = 'UPDATE conges_periode SET p_etat="ok", p_date_traitement=NOW() WHERE p_num=\''.SQL::quote($numero_int).'\';'; $ReqLog1 = SQL::query($sql1); // Log de l'action log_action($numero_int,"ok", $user_login, "traite demande $numero ($user_login) ($user_nb_jours_pris jours) : $value_traite", $DEBUG); /* UPDATE table "conges_solde_user" (jours restants) */ // on retranche les jours seulement pour des conges pris (pas pour les absences) // donc seulement si le type de l'absence qu'on accepte est un "conges" if( $DEBUG ) { echo "type_abs = ".$tab_tout_type_abs[$value_type_abs_id]['type']."<br>\n" ; } if(($tab_tout_type_abs[$value_type_abs_id]['type']=="conges")||($tab_tout_type_abs[$value_type_abs_id]['type']=="conges_exceptionnels")) { soustrait_solde_et_reliquat_user($user_login, $numero_int, $user_nb_jours_pris_float, $value_type_abs_id, $date_deb, $demi_jour_deb, $date_fin, $demi_jour_fin, $DEBUG); } //envoi d'un mail d'alerte au user (si demandé dans config de php_conges) if($_SESSION['config']['mail_valid_conges_alerte_user']) alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "accept_conges", $DEBUG); } elseif($reponse == "VALID") // première validation dans le cas d'une double validation { /* UPDATE table "conges_periode" */ $sql1 = 'UPDATE conges_periode SET p_etat="valid", p_date_traitement=NOW() WHERE p_num=\''.SQL::quote($numero_int).'\';'; $ReqLog1 = SQL::query($sql1); // Log de l'action log_action($numero_int,"valid", $user_login, "traite demande $numero ($user_login) ($user_nb_jours_pris jours) : $value_traite", $DEBUG); //envoi d'un mail d'alerte au user (si demandé dans config de php_conges) if($_SESSION['config']['mail_valid_conges_alerte_user']) alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "valid_conges", $DEBUG); } elseif($reponse == "REFUSE") // refus d'un conges { // recup di motif de refus $motif_refus=addslashes($tab_text_refus[$numero_int]); //$sql3 = "UPDATE conges_periode SET p_etat=\"refus\" WHERE p_num=$numero_int" ; $sql3 = 'UPDATE conges_periode SET p_etat="refus", p_motif_refus=\''.$motif_refus.'\', p_date_traitement=NOW() WHERE p_num=\''.SQL::quote($numero_int).'\';'; $ReqLog3 = SQL::query($sql3); // Log de l'action log_action($numero_int,"refus", $user_login, "traite demande $numero ($user_login) ($user_nb_jours_pris jours) : $value_traite", $DEBUG); //envoi d'un mail d'alerte au user (si demandé dans config de php_conges) if($_SESSION['config']['mail_refus_conges_alerte_user']) alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "refus_conges", $DEBUG); } } if( $DEBUG ) { echo "<form action=\"$PHP_SELF\" method=\"POST\">\n" ; echo "<input type=\"hidden\" name=\"session\" value=\"$session\">\n"; echo "<input type=\"hidden\" name=\"onglet\" value=\"traite_user\">\n"; echo "<input type=\"hidden\" name=\"user_login\" value=\"$user_login\">\n"; echo "<input type=\"submit\" value=\"". _('form_ok') ."\">\n"; echo "</form>\n" ; } else { echo _('form_modif_ok') ."<br><br> \n"; /* APPEL D'UNE AUTRE PAGE au bout d'une tempo de 2secondes */ echo "<META HTTP-EQUIV=REFRESH CONTENT=\"2; URL=$PHP_SELF?session=$session&user_login=$user_login\">"; } }
function commit_modif_user_groups($choix_user, &$checkbox_user_groups, $DEBUG = FALSE) { $result_insert = FALSE; // on supprime tous les anciens groupes du user, puis on ajoute tous ceux qui sont dans la tableau checkbox (si il n'est pas vide) $sql_del = 'DELETE FROM conges_groupe_users WHERE gu_login=\'' . SQL::quote($choix_user) . '\''; $ReqLog_del = SQL::query($sql_del); if ($checkbox_user_groups != "" && count($checkbox_user_groups) != 0) { foreach ($checkbox_user_groups as $gid => $value) { $sql_insert = "INSERT INTO conges_groupe_users SET gu_gid={$gid}, gu_login='******' "; $result_insert = SQL::query($sql_insert); } } else { $result_insert = TRUE; } return $result_insert; }
function confirmer($p_num, $onglet, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); // Récupération des informations $sql1 = 'SELECT p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_etat, p_num FROM conges_periode where p_num = \'' . SQL::quote($p_num) . '\''; $ReqLog1 = SQL::query($sql1); // AFFICHAGE TABLEAU echo '<form NAME="dem_conges" action="' . $PHP_SELF . '" method="POST">'; echo "<table class=\"table table-responsive\">\n"; echo '<thead>'; // affichage première ligne : titres echo "<tr>\n"; echo "<td>" . _('divers_debut_maj_1') . "</td>\n"; echo "<td>" . _('divers_fin_maj_1') . "</td>\n"; echo "<td>" . _('divers_nb_jours_maj_1') . "</td>\n"; echo "<td>" . _('divers_comment_maj_1') . "</td>\n"; echo "</tr>\n"; echo '</thead>'; echo '<tbody>'; // affichage 2ieme ligne : valeurs actuelles echo "<tr>\n"; while ($resultat1 = $ReqLog1->fetch_array()) { $sql_date_deb = eng_date_to_fr($resultat1["p_date_deb"]); $sql_demi_jour_deb = $resultat1["p_demi_jour_deb"]; if ($sql_demi_jour_deb == "am") { $demi_j_deb = _('divers_am_short'); } else { $demi_j_deb = _('divers_pm_short'); } $sql_date_fin = eng_date_to_fr($resultat1["p_date_fin"]); $sql_demi_jour_fin = $resultat1["p_demi_jour_fin"]; if ($sql_demi_jour_fin == "am") { $demi_j_fin = _('divers_am_short'); } else { $demi_j_fin = _('divers_pm_short'); } $sql_nb_jours = $resultat1["p_nb_jours"]; $aff_nb_jours = affiche_decimal($sql_nb_jours); $sql_commentaire = $resultat1["p_commentaire"]; $sql_etat = $resultat1["p_etat"]; echo "<td>{$sql_date_deb} _ {$demi_j_deb}</td><td>{$sql_date_fin} _ {$demi_j_fin}</td><td>{$aff_nb_jours}</td><td>{$sql_commentaire}</td>\n"; $compte = ""; if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) { $compte = 'onChange="compter_jours();return false;"'; } $text_debut = "<input class=\"form-control date\" type=\"text\" name=\"new_debut\" size=\"10\" maxlength=\"30\" value=\"" . revert_date($sql_date_deb) . "\">"; if ($sql_demi_jour_deb == "am") { $radio_deb_am = "<input type=\"radio\" {$compte} name=\"new_demi_jour_deb\" value=\"am\" checked> " . _('form_am'); $radio_deb_pm = "<input type=\"radio\" {$compte} name=\"new_demi_jour_deb\" value=\"pm\"> " . _('form_pm'); } else { $radio_deb_am = "<input type=\"radio\" {$compte} name=\"new_demi_jour_deb\" value=\"am\">" . _('form_am'); $radio_deb_pm = "<input type=\"radio\" {$compte} name=\"new_demi_jour_deb\" value=\"pm\" checked>" . _('form_pm'); } $text_fin = "<input class=\"form-control date\" type=\"text\" name=\"new_fin\" size=\"10\" maxlength=\"30\" value=\"" . revert_date($sql_date_fin) . "\">"; if ($sql_demi_jour_fin == "am") { $radio_fin_am = "<input type=\"radio\" {$compte} name=\"new_demi_jour_fin\" value=\"am\" checked>" . _('form_am'); $radio_fin_pm = "<input type=\"radio\" {$compte} name=\"new_demi_jour_fin\" value=\"pm\">" . _('form_pm'); } else { $radio_fin_am = "<input type=\"radio\" {$compte} name=\"new_demi_jour_fin\" value=\"am\">" . _('form_am'); $radio_fin_pm = "<input type=\"radio\" {$compte} name=\"new_demi_jour_fin\" value=\"pm\" checked>" . _('form_pm'); } if ($_SESSION['config']['disable_saise_champ_nb_jours_pris']) { $text_nb_jours = "<input class=\"form-control\" type=\"text\" name=\"new_nb_jours\" size=\"5\" maxlength=\"30\" value=\"{$sql_nb_jours}\" style=\"background-color: #D4D4D4; \" readonly=\"readonly\">"; } else { $text_nb_jours = "<input class=\"form-control\" type=\"text\" name=\"new_nb_jours\" size=\"5\" maxlength=\"30\" value=\"{$sql_nb_jours}\">"; } $text_commentaire = "<input class=\"form-control\" type=\"text\" name=\"new_comment\" size=\"15\" maxlength=\"30\" value=\"{$sql_commentaire}\">"; } echo "</tr>\n"; // affichage 3ieme ligne : saisie des nouvelles valeurs echo "<tr>\n"; echo "<td>{$text_debut}<br>{$radio_deb_am} / {$radio_deb_pm}</td><td>{$text_fin}<br>{$radio_fin_am} / {$radio_fin_pm}</td><td>{$text_nb_jours}</td><td>{$text_commentaire}</td>\n"; echo "</tr>\n"; echo '</tbody>'; echo "</table>\n"; echo '<hr/>'; echo "<input type=\"hidden\" name=\"p_num_to_update\" value=\"{$p_num}\">\n"; echo "<input type=\"hidden\" name=\"p_etat\" value=\"{$sql_etat}\">\n"; echo "<input type=\"hidden\" name=\"session\" value=\"{$session}\">\n"; echo '<input type="hidden" name="user_login" value="' . $_SESSION['userlogin'] . '">'; echo "<input type=\"hidden\" name=\"onglet\" value=\"{$onglet}\">\n"; echo '<p id="comment_nbj" style="color:red"> </p>'; echo "<input class=\"btn btn-success\" type=\"submit\" value=\"" . _('form_submit') . "\">\n"; echo "<a class=\"btn\" href=\"{$PHP_SELF}?session={$session}&onglet=demandes_en_cours\">" . _('form_cancel') . "</a>\n"; echo "</form>\n"; }
function recup_info_edition($edit_id, $DEBUG = FALSE) { $tab = array(); $sql_edition = 'SELECT ep_date, ep_num_for_user FROM conges_edition_papier where ep_id = ' . SQL::quote($edit_id); $ReqLog_edition = SQL::query($sql_edition); if ($resultat_edition = $ReqLog_edition->fetch_array()) { $tab['date'] = $resultat_edition["ep_date"]; $tab['num_for_user'] = $resultat_edition["ep_num_for_user"]; // recup du tab des soldes des conges pour cette edition $tab['conges'] = recup_solde_conges_of_edition($edit_id, $DEBUG); } return $tab; }
function commit_update($u_login_to_update, $new_pwd1, $new_pwd2, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); if (strlen($new_pwd1) != 0 && strlen($new_pwd2) != 0 && strcmp($new_pwd1, $new_pwd2) == 0) { $passwd_md5 = md5($new_pwd1); $sql1 = 'UPDATE conges_users SET u_passwd=\'' . $passwd_md5 . '\' WHERE u_login=\'' . SQL::quote($u_login_to_update) . '\''; $result = SQL::query($sql1); if ($result) { echo _('form_modif_ok') . " !<br><br> \n"; } else { echo _('form_modif_not_ok') . " !<br><br> \n"; } $comment_log = "admin_change_password_user : pour {$u_login_to_update}"; log_action(0, "", $u_login_to_update, $comment_log, $DEBUG); if ($DEBUG) { echo "<form action=\"admin_index.php?session={$session}&onglet=admin-users\" method=\"POST\">\n"; echo "<input type=\"submit\" value=\"" . _('form_ok') . "\">\n"; echo "</form>\n"; } else { /* APPEL D'UNE AUTRE PAGE au bout d'une tempo de 2secondes */ echo "<META HTTP-EQUIV=REFRESH CONTENT=\"2; URL=admin_index.php?session={$session}&onglet=admin-users\">"; } } else { echo "<H3> " . _('admin_verif_param_invalides') . " </H3>\n"; echo "<form action=\"{$PHP_SELF}?session={$session}&onglet=chg_pwd_user\" method=\"POST\">\n"; echo "<input type=\"hidden\" name=\"u_login\" value=\"{$u_login_to_update}\">\n"; echo "<input type=\"submit\" value=\"" . _('form_redo') . "\">\n"; echo "</form>\n"; } }
function affiche_tableau_affectation_user_groupes($choix_user, $DEBUG = FALSE) { //AFFICHAGE DU TABLEAU DES GROUPES DU USER echo "<table class=\"table table-hover table-responsive table-condensed table-striped\">\n"; // affichage TITRE echo "<thead>\n"; echo "<tr>\n"; if ($choix_user == "") { echo "\t<th colspan=3><h3>" . _('admin_gestion_groupe_users_group_of_new_user') . " :</h3></th>\n"; } else { echo "\t<th colspan=3><h3>" . _('admin_gestion_groupe_users_group_of_user') . " <b> {$choix_user} </b> :</h3></th>\n"; } echo "</tr>\n"; echo "<tr>\n"; echo "\t<th> </th>\n"; echo "\t<th> " . _('admin_groupes_groupe') . " :</th>\n"; echo "\t<th> " . _('admin_groupes_libelle') . " :</th>\n"; echo "</tr>\n"; echo "</thead>\n"; echo "<tbody>\n"; // affichage des groupes //on rempli un tableau de tous les groupes avec le nom et libellé (tableau de tableau à 3 cellules) $tab_groups = array(); $sql_g = "SELECT g_gid, g_groupename, g_comment FROM conges_groupe ORDER BY g_groupename "; $ReqLog_g = SQL::query($sql_g); while ($resultat_g = $ReqLog_g->fetch_array()) { $tab_gg = array(); $tab_gg["gid"] = $resultat_g["g_gid"]; $tab_gg["groupename"] = $resultat_g["g_groupename"]; $tab_gg["comment"] = $resultat_g["g_comment"]; $tab_groups[] = $tab_gg; } $tab_user = ""; // si le user est connu // on rempli un autre tableau des groupes du user if ($choix_user != "") { $tab_user = array(); $sql_gu = 'SELECT gu_gid FROM conges_groupe_users WHERE gu_login=\'' . SQL::quote($choix_user) . '\' ORDER BY gu_gid '; $ReqLog_gu = SQL::query($sql_gu); while ($resultat_gu = $ReqLog_gu->fetch_array()) { $tab_user[] = $resultat_gu["gu_gid"]; } } // ensuite on affiche tous les groupes avec une case cochée si existe le gid dans le 2ieme tableau $count = count($tab_groups); for ($i = 0; $i < $count; $i++) { $gid = $tab_groups[$i]["gid"]; $group = $tab_groups[$i]["groupename"]; $libelle = $tab_groups[$i]["comment"]; if ($tab_user != "" && in_array($gid, $tab_user)) { $case_a_cocher = "<input type=\"checkbox\" name=\"checkbox_user_groups[{$gid}]\" value=\"{$gid}\" checked>"; $class = "histo-big"; } else { $case_a_cocher = "<input type=\"checkbox\" name=\"checkbox_user_groups[{$gid}]\" value=\"{$gid}\">"; $class = "histo"; } echo '<tr class="' . (!($i % 2) ? 'i' : 'p') . '">'; echo "\t<td>{$case_a_cocher}</td>\n"; echo "\t<td class=\"{$class}\"> {$group} </td>\n"; echo "\t<td class=\"{$class}\"> {$libelle} </td>\n"; echo "</tr>\n"; } echo "<tbody>\n"; echo "</table>\n\n"; }
// affichage de l'année et des boutons de défilement $year_affichage_prec = $year_affichage-1 ; $year_affichage_suiv = $year_affichage+1 ; echo "<b>"; echo "<a href=\"$PHP_SELF?session=$session&onglet=historique_autres_absences&year_affichage=$year_affichage_prec\"><<</a>"; echo "    $year_affichage    "; echo "<a href=\"$PHP_SELF?session=$session&onglet=historique_autres_absences&year_affichage=$year_affichage_suiv\">>></a>"; echo "</b><br><br>\n"; // Récupération des informations $sql4 = '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_motif_refus, p_date_demande, p_date_traitement, p_num, ta_libelle FROM conges_periode as a, conges_type_absence as b WHERE a.p_login = \''.SQL::quote($_SESSION['userlogin']).'\' AND (a.p_type=b.ta_id) AND (b.ta_type=\'absences\') AND (p_date_deb LIKE \''.intval($year_affichage).'%\' OR p_date_fin LIKE \''.intval($year_affichage).'%\') '; if($tri_date=="descendant") $sql4=$sql4." ORDER BY p_date_deb DESC "; else $sql4=$sql4." ORDER BY p_date_deb ASC "; $ReqLog4 = SQL::query($sql4) ; $count4=$ReqLog4->num_rows; if($count4==0) { echo "<b>". _('user_abs_aucune_abs') ."</b><br>\n";
function recup_tableau_des_users_a_afficher($select_groupe, $DEBUG = FALSE) { // si acces sans authentification est permis : alors droit de voir tout le monde // sinon, on verifie si le user a le droite de voir tout le monde if ($_SESSION['config']['consult_calendrier_sans_auth'] && !isset($_SESSION['userlogin'])) { //si gestion des groupes et un groupe a ete selectionne if ($_SESSION['config']['gestion_groupes'] && $select_groupe != 0) { $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users "; $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' "; //recup de la liste des users des groupes dont le user est membre $list_users = get_list_users_du_groupe($select_groupe, $DEBUG); if ($list_users != "") { //si la liste n'est pas vide ( serait le cas si groupe vide) $sql1 = $sql1 . " AND u_login IN ({$list_users}) ORDER BY u_nom, u_prenom "; } } else { $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users "; //$sql1 = $sql1." WHERE u_login!='conges' AND u_resp_login = '******' ORDER BY u_nom, u_prenom"; $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' ORDER BY u_nom, u_prenom"; } } else { //construction de la requete sql pour recupérer les users à afficher : //si le user a le droit de voir tout le monde $user_see_all_in_calendrier = get_user_see_all($_SESSION['userlogin']); if ($user_see_all_in_calendrier) { //si gestion des groupes et un groupe a ete selectionne if ($_SESSION['config']['gestion_groupes'] && $select_groupe != 0) { $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users "; $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' "; //recup de la liste des users des groupes dont le user est membre $list_users = get_list_users_du_groupe($select_groupe, $DEBUG); if ($list_users != "") { //si la liste n'est pas vide ( serait le cas si groupe vide) $sql1 = $sql1 . " AND u_login IN ({$list_users}) "; } $sql1 = $sql1 . " ORDER BY u_nom, u_prenom"; } else { $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users "; //$sql1 = $sql1." WHERE u_login!='conges' AND u_resp_login = '******' ORDER BY u_nom, u_prenom"; $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' ORDER BY u_nom, u_prenom"; } } else { //si gestion des groupes et un groupe a ete selectionne if ($_SESSION['config']['gestion_groupes'] && $select_groupe != 0) { $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users "; $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' "; $sql1 = $sql1 . ' AND ( u_login = \'' . SQL::quote($_SESSION['userlogin']) . '\' '; //recup de la liste des users des groupes dont le user est membre $list_users = get_list_users_du_groupe($select_groupe, $DEBUG); if ($list_users != "") { //si la liste n'est pas vide ( serait le cas si groupe vide) $sql1 = $sql1 . " OR u_login IN ({$list_users}) "; } $sql1 = $sql1 . " ) "; $sql1 = $sql1 . " ORDER BY u_nom, u_prenom"; } else { if (!is_resp($_SESSION['userlogin'])) { $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users "; $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' "; //si affichage par groupe : on affiche les membres des groupes du user ($_SESSION['userlogin']) if ($_SESSION['config']['gestion_groupes'] && $_SESSION['config']['affiche_groupe_in_calendrier']) { //recup de la liste des users des groupes dont le user est membre $list_users = get_list_users_des_groupes_du_user($_SESSION['userlogin']); if ($list_users != "") { //si la liste n'est pas vide ( serait le cas si n'est membre d'aucun groupe) $sql1 = $sql1 . " AND u_login IN ({$list_users}) "; } } $sql1 = $sql1 . " ORDER BY u_nom, u_prenom"; } else { $sql1 = "SELECT DISTINCT u_login, u_nom, u_prenom, u_quotite FROM conges_users "; $sql1 = $sql1 . " WHERE u_login!='conges' AND u_login!='admin' "; if ($_SESSION['userlogin'] != "conges") { $sql1 = $sql1 . ' AND ( u_login = \'' . SQL::quote($_SESSION['userlogin']) . '\' '; //si affichage par groupe : on affiche les membres des groupes du user ($_SESSION['userlogin']) if ($_SESSION['config']['gestion_groupes'] && $_SESSION['config']['affiche_groupe_in_calendrier']) { //recup de la liste des users des groupes dont le user est membre $list_users = get_list_users_des_groupes_du_user($_SESSION['userlogin']); if ($list_users != "") { //si la liste n'est pas vide ( serait le cas si n'est membre d'aucun groupe) $sql1 = $sql1 . " OR u_login IN ({$list_users}) "; } } //recup de la liste des users dont le user est responsable $list_users_2 = get_list_all_users_du_resp($_SESSION['userlogin'], $DEBUG); if ($list_users_2 != "") { //si la liste n'est pas vide ( serait le cas si n'est responsable d'aucun groupe) $sql1 = $sql1 . " OR u_login IN ({$list_users_2}) "; } if ($_SESSION['config']['double_validation_conges']) { $list_groupes_3 = get_list_login_du_grand_resp($_SESSION['userlogin']); if (count($list_groupes_3) > 0) { $list_groupes_3 = array_map("SQL::quote", $list_groupes_3); $list_groupes_3 = '\'' . implode('\', \'', $list_groupes_3) . '\''; $sql1 = $sql1 . " OR u_login IN ( {$list_groupes_3} ) "; } } $sql1 = $sql1 . " ) "; } $sql1 = $sql1 . " ORDER BY u_nom, u_prenom"; } } } } $ReqLog = SQL::query($sql1); $tab_all_users = array(); while ($resultat = $ReqLog->fetch_array()) { $tab_user = array(); $tab_user['nom'] = $resultat["u_nom"]; $tab_user['prenom'] = $resultat["u_prenom"]; $tab_user['quotite'] = $resultat["u_quotite"]; $sql_login = $resultat["u_login"]; $tab_all_users[$sql_login] = $tab_user; } return $tab_all_users; }
function update_appli_num_exercice( $DEBUG=FALSE) { // verif $appli_num_exercice = $_SESSION['config']['num_exercice'] ; $sql_verif = 'SELECT u_login FROM conges_users WHERE u_login != \'admin\' AND u_login != \'conges\' AND u_num_exercice != '.SQL::quote($appli_num_exercice).';'; $ReqLog_verif = SQL::query($sql_verif); if($ReqLog_verif->num_rows == 0) { /* Modification de la table conges_appli */ $sql_update= 'UPDATE conges_appli SET appli_valeur = appli_valeur+1 WHERE appli_variable=\'num_exercice\' ;'; $ReqLog_update = SQL::query($sql_update) ; // ecriture dans les logs $new_appli_num_exercice = $appli_num_exercice+1 ; log_action(0, '', '', 'fin/debut exercice (appli_num_exercice : '.$appli_num_exercice.' -> '.$new_appli_num_exercice.')', $DEBUG); } }
function get_tableau_jour_feries($year, &$tab_year, $DEBUG = FALSE) { $sql_select = 'SELECT jf_date FROM conges_jours_feries WHERE jf_date LIKE \'' . SQL::quote($year) . '-%\' ;'; $res_select = SQL::query($sql_select); $num_select = $res_select->num_rows; if ($num_select != 0) { while ($result_select = $res_select->fetch_array()) { $tab_year[] = $result_select["jf_date"]; } } }
function commit_annul_fermeture($fermeture_id, $groupe_id, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); if ($DEBUG) { echo "fermeture_id = {$fermeture_id} <br>\n"; } /*****************************/ // on construit le tableau des users affectés par les fermetures saisies : if ($groupe_id == 0) { // fermeture pour tous ! $list_users = get_list_all_users($DEBUG); } else { $list_users = get_list_users_du_groupe($groupe_id, $DEBUG); } $tab_users = explode(",", $list_users); if ($DEBUG) { echo "tab_users =<br>\n"; print_r($tab_users); echo "<br>\n"; } /***********************************************/ /** suppression des jours de fermetures **/ // on suprimme les dates de cette fermeture dans conges_jours_fermeture $result = delete_year_fermeture($fermeture_id, $groupe_id, $DEBUG); // on va traiter user par user pour annuler sa periode de conges correspondant et lui re-crediter son solde foreach ($tab_users as $current_login) { $current_login = trim($current_login); // on enleve les quotes qui ont été ajoutées lors de la creation de la liste $current_login = trim($current_login, "\\'"); // on recupère les infos de la periode .... $sql_credit = 'SELECT p_num, p_nb_jours, p_type FROM conges_periode WHERE p_login=\'' . SQL::quote($current_login) . '\' AND p_fermeture_id=\'' . SQL::quote($fermeture_id) . '\' AND p_etat=\'ok\''; $result_credit = SQL::query($sql_credit); $row_credit = $result_credit->fetch_array(); $sql_num_periode = $row_credit['p_num']; $sql_nb_jours_a_crediter = $row_credit['p_nb_jours']; $sql_type_abs = $row_credit['p_type']; // on met à jour la table conges_periode . $etat = "annul"; $sql1 = 'UPDATE conges_periode SET p_etat = \'' . SQL::quote($etat) . '\' WHERE p_num=' . SQL::quote($sql_num_periode); $ReqLog = SQL::query($sql1); // mise à jour du solde de jours de conges pour l'utilisateur $current_login if ($sql_nb_jours_a_crediter != 0) { $sql1 = 'UPDATE conges_solde_user SET su_solde = su_solde + ' . SQL::quote($sql_nb_jours_a_crediter) . ' WHERE su_login=\'' . SQL::quote($current_login) . '\' AND su_abs_id = ' . SQL::quote($sql_type_abs); $ReqLog = SQL::query($sql1); } } echo '<div class="wrapper">'; if ($result) { echo "<br>" . _('form_modif_ok') . "<br><br>\n"; } else { echo "<br>" . _('form_modif_not_ok') . " !<br><br>\n"; } // on enregistre cette action dan les logs if ($groupe_id == 0) { // fermeture pour tous ! $comment_log = "annulation fermeture {$fermeture_id} (pour tous) "; } else { $comment_log = "annulation fermeture {$fermeture_id} (pour le groupe {$groupe_id})"; } log_action(0, "", "", $comment_log, $DEBUG); echo "<form action=\"{$PHP_SELF}?session={$session}\" method=\"POST\">\n"; echo "<input class=\"btn btn-success\" type=\"submit\" value=\"" . _('form_ok') . "\">\n"; echo "</form>\n"; echo '</div>'; }