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"; } }
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) { $VerifDec = verif_saisie_decimal($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); //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_once 'fonctions_calcul.php'; $comment = "calcul reliquat -> date limite"; $nb_reliquats_a_deduire = compter($user_login, $num_current_periode, $date_deb, $_SESSION['config']['date_limite_reliquats'], $demi_jour_deb, "pm", $comment); 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; } } $VerifDec = verif_saisie_decimal($user_nb_jours_pris); $VerifDec = verif_saisie_decimal($new_reliquat); $sql2 = 'UPDATE conges_solde_user SET su_solde=su_solde-' . \includes\SQL::quote($user_nb_jours_pris) . ', su_reliquat=' . \includes\SQL::quote($new_reliquat) . ' WHERE su_login="******" AND su_abs_id=' . \includes\SQL::quote($type_abs) . ' '; } else { $VerifDec = verif_saisie_decimal($user_nb_jours_pris); $VerifDec = verif_saisie_decimal($new_reliquat); $sql2 = 'UPDATE conges_solde_user SET su_solde=su_solde-' . \includes\SQL::quote($user_nb_jours_pris) . ' WHERE su_login=\'' . \includes\SQL::quote($user_login) . '\' AND su_abs_id=\'' . $type_abs . '\' '; } $ReqLog2 = \includes\SQL::query($sql2); }
function verif_new_param(&$tab_new_user, &$tab_new_jours_an, &$tab_new_solde, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); foreach ($tab_new_jours_an as $id_cong => $jours_an) { $valid = verif_saisie_decimal($tab_new_jours_an[$id_cong], $DEBUG); //verif la bonne saisie du nombre décimal $valid = verif_saisie_decimal($tab_new_solde[$id_cong], $DEBUG); //verif la bonne saisie du nombre décimal } if ($DEBUG) { echo "tab_new_jours_an = "; print_r($tab_new_jours_an); echo "<br>\n"; echo "tab_new_solde = "; print_r($tab_new_solde); echo "<br>\n"; } // verif des parametres reçus : // si on travaille avec la base dbconges, on teste tout, mais si on travaille avec ldap, on ne teste pas les champs qui viennent de ldap ... if (!$_SESSION['config']['export_users_from_ldap'] && (strlen($tab_new_user['nom']) == 0 || strlen($tab_new_user['prenom']) == 0 || strlen($tab_new_user['password1']) == 0 || strlen($tab_new_user['password2']) == 0 || strcmp($tab_new_user['password1'], $tab_new_user['password2']) != 0 || strlen($tab_new_user['login']) == 0 || strlen($tab_new_user['quotite']) == 0 || $tab_new_user['quotite'] > 100) || !preg_match('/^[a-z\\d_]{2,20}$/i', $tab_new_user['login']) || !preg_match('/^[a-z\\d\\sàáâãäåçèéêëìíîïðòóôõöùúûüýÿ-]{2,20}$/i', $tab_new_user['nom']) || !preg_match('/^[a-z\\d\\sàáâãäåçèéêëìíîïðòóôõöùúûüýÿ-]{2,20}$/i', $tab_new_user['prenom']) || $_SESSION['config']['export_users_from_ldap'] && (strlen($tab_new_user['login']) == 0 || strlen($tab_new_user['quotite']) == 0 || $tab_new_user['quotite'] > 100)) { echo "<h3><font color=\"red\"> " . _('admin_verif_param_invalides') . " </font></h3>\n"; // affichage des param : echo $tab_new_user['login'] . "---" . $tab_new_user['nom'] . "---" . $tab_new_user['prenom'] . "---" . $tab_new_user['quotite'] . "---" . $tab_new_user['is_resp'] . "---" . $tab_new_user['resp_login'] . "<br>\n"; foreach ($tab_new_jours_an as $id_cong => $jours_an) { echo $tab_new_jours_an[$id_cong] . "---" . $tab_new_solde[$id_cong] . "<br>\n"; } echo "<form action=\"{$PHP_SELF}?session={$session}&onglet=ajout-user\" method=\"POST\">\n"; echo "<input type=\"hidden\" name=\"new_login\" value=\"" . $tab_new_user['login'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_nom\" value=\"" . $tab_new_user['nom'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_prenom\" value=\"" . $tab_new_user['prenom'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_is_resp\" value=\"" . $tab_new_user['is_resp'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_resp_login\" value=\"" . $tab_new_user['resp_login'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_is_admin\" value=\"" . $tab_new_user['is_admin'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_is_hr\" value=\"" . $tab_new_user['is_hr'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_see_all\" value=\"" . $tab_new_user['see_all'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_quotite\" value=\"" . $tab_new_user['quotite'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_email\" value=\"" . $tab_new_user['email'] . "\">\n"; foreach ($tab_new_jours_an as $id_cong => $jours_an) { echo "<input type=\"hidden\" name=\"tab_new_jours_an[{$id_cong}]\" value=\"" . $tab_new_jours_an[$id_cong] . "\">\n"; echo "<input type=\"hidden\" name=\"tab_new_solde[{$id_cong}]\" value=\"" . $tab_new_solde[$id_cong] . "\">\n"; } echo "<input type=\"hidden\" name=\"saisie_user\" value=\"faux\">\n"; echo "<input type=\"submit\" value=\"" . _('form_redo') . "\">\n"; echo "</form>\n"; return 1; } else { // verif si le login demandé n'existe pas déjà .... $sql_verif = 'SELECT u_login FROM conges_users WHERE u_login=\'' . SQL::quote($tab_new_user['login']) . '\''; $ReqLog_verif = SQL::query($sql_verif); $num_verif = $ReqLog_verif->num_rows; if ($num_verif != 0) { echo "<h3><font color=\"red\"> " . _('admin_verif_login_exist') . " </font></h3>\n"; echo "<form action=\"{$PHP_SELF}?session={$session}&onglet=ajout-user\" method=\"POST\">\n"; echo "<input type=\"hidden\" name=\"new_login\" value=\"" . $tab_new_user['login'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_nom\" value=\"" . $tab_new_user['nom'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_prenom\" value=\"" . $tab_new_user['prenom'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_is_resp\" value=\"" . $tab_new_user['is_resp'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_resp_login\" value=\"" . $tab_new_user['resp_login'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_is_admin\" value=\"" . $tab_new_user['is_admin'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_is_hr\" value=\"" . $tab_new_user['is_hr'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_quotite\" value=\"" . $tab_new_user['quotite'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_email\" value=\"" . $tab_new_user['email'] . "\">\n"; foreach ($tab_new_jours_an as $id_cong => $jours_an) { echo "<input type=\"hidden\" name=\"tab_new_jours_an[{$id_cong}]\" value=\"" . $tab_new_jours_an[$id_cong] . "\">\n"; echo "<input type=\"hidden\" name=\"tab_new_solde[{$id_cong}]\" value=\"" . $tab_new_solde[$id_cong] . "\">\n"; } echo "<input type=\"hidden\" name=\"saisie_user\" value=\"faux\">\n"; echo "<input type=\"submit\" value=\"" . _('form_redo') . "\">\n"; echo "</form>\n"; return 1; } elseif ($_SESSION['config']['where_to_find_user_email'] == "dbconges" && strrchr($tab_new_user['email'], "@") == FALSE) { echo "<h3> " . _('admin_verif_bad_mail') . " </h3>\n"; echo "<form action=\"{$PHP_SELF}?session={$session}&onglet=ajout-user\" method=\"POST\">\n"; echo "<input type=\"hidden\" name=\"new_login\" value=\"" . $tab_new_user['login'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_nom\" value=\"" . $tab_new_user['nom'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_prenom\" value=\"" . $tab_new_user['prenom'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_is_resp\" value=\"" . $tab_new_user['is_resp'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_resp_login\" value=\"" . $tab_new_user['resp_login'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_is_admin\" value=\"" . $tab_new_user['is_admin'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_is_hr\" value=\"" . $tab_new_user['is_hr'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_quotite\" value=\"" . $tab_new_user['quotite'] . "\">\n"; echo "<input type=\"hidden\" name=\"new_email\" value=\"" . $tab_new_user['email'] . "\">\n"; foreach ($tab_new_jours_an as $id_cong => $jours_an) { echo "<input type=\"hidden\" name=\"tab_new_jours_an[{$id_cong}]\" value=\"" . $tab_new_jours_an[$id_cong] . "\">\n"; echo "<input type=\"hidden\" name=\"tab_new_solde[{$id_cong}]\" value=\"" . $tab_new_solde[$id_cong] . "\">\n"; } echo "<input type=\"hidden\" name=\"saisie_user\" value=\"faux\">\n"; echo "<input class=\"btn\" type=\"submit\" value=\"" . _('form_redo') . "\">\n"; echo "</form>\n"; return 1; } else { return 0; } } }
public static function verif_new_param(&$tab_new_user, &$tab_new_jours_an, &$tab_new_solde, &$return = null) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $return = ''; foreach ($tab_new_jours_an as $id_cong => $jours_an) { $valid = verif_saisie_decimal($tab_new_jours_an[$id_cong]); //verif la bonne saisie du nombre décimal $valid = verif_saisie_decimal($tab_new_solde[$id_cong]); //verif la bonne saisie du nombre décimal } // verif des parametres reçus : // si on travaille avec la base dbconges, on teste tout, mais si on travaille avec ldap, on ne teste pas les champs qui viennent de ldap ... if (!\admin\Fonctions::test_form_add_user($tab_new_user)) { $return .= '<h3><font color="red">' . _('admin_verif_param_invalides') . '</font></h3>'; // affichage des param : $return .= htmlentities($tab_new_user['login']) . '---' . htmlentities($tab_new_user['nom']) . '---' . htmlentities($tab_new_user['prenom']) . '---' . htmlentities($tab_new_user['quotite']) . '---' . htmlentities($tab_new_user['is_resp']) . '---' . htmlentities($tab_new_user['resp_login']) . '<br>'; foreach ($tab_new_jours_an as $id_cong => $jours_an) { $return .= $tab_new_jours_an[$id_cong] . '---' . $tab_new_solde[$id_cong] . '<br>'; } $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '&onglet=ajout-user" method="POST">'; $return .= '<input type="hidden" name="new_login" value="' . $tab_new_user['login'] . '">'; $return .= '<input type="hidden" name="new_nom" value="' . $tab_new_user['nom'] . '">'; $return .= '<input type="hidden" name="new_prenom" value="' . $tab_new_user['prenom'] . '">'; $return .= '<input type="hidden" name="new_is_resp" value="' . $tab_new_user['is_resp'] . '">'; $return .= '<input type="hidden" name="new_resp_login" value="' . $tab_new_user['resp_login'] . '">'; $return .= '<input type="hidden" name="new_is_admin" value="' . $tab_new_user['is_admin'] . '">'; $return .= '<input type="hidden" name="new_is_hr" value="' . $tab_new_user['is_hr'] . '">'; $return .= '<input type="hidden" name="new_see_all" value="' . $tab_new_user['see_all'] . '">'; $return .= '<input type="hidden" name="new_quotite" value="' . $tab_new_user['quotite'] . '">'; $return .= '<input type="hidden" name="new_email" value="' . $tab_new_user['email'] . '">'; foreach ($tab_new_jours_an as $id_cong => $jours_an) { $return .= '<input type="hidden" name="tab_new_jours_an[$id_cong]" value="' . $tab_new_jours_an[$id_cong] . '">'; $return .= '<input type="hidden" name="tab_new_solde[' . $id_cong . ']" value="' . $tab_new_solde[$id_cong] . '">'; } $return .= '<input type="hidden" name="saisie_user" value="faux">'; $return .= '<input type="submit" value="' . _('form_redo') . '"">'; $return .= '</form>'; return true; } else { // verif si le login demandé n'existe pas déjà .... $sql_verif = 'SELECT u_login FROM conges_users WHERE u_login="******"'; $ReqLog_verif = \includes\SQL::query($sql_verif); $num_verif = $ReqLog_verif->num_rows; if ($num_verif != 0) { $return .= '<h3><font color="red">' . _('admin_verif_login_exist') . '</font></h3>'; $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '&onglet=ajout-user" method="POST">'; $return .= '<input type="hidden" name="new_login" value="' . $tab_new_user['login'] . '">'; $return .= '<input type="hidden" name="new_nom" value="' . $tab_new_user['nom'] . '">'; $return .= '<input type="hidden" name="new_prenom" value="' . $tab_new_user['prenom'] . '">'; $return .= '<input type="hidden" name="new_is_resp" value="' . $tab_new_user['is_resp'] . '">'; $return .= '<input type="hidden" name="new_resp_login" value="' . $tab_new_user['resp_login'] . '">'; $return .= '<input type="hidden" name="new_is_admin" value="' . $tab_new_user['is_admin'] . '">'; $return .= '<input type="hidden" name="new_is_hr" value="' . $tab_new_user['is_hr'] . '">'; $return .= '<input type="hidden" name="new_quotite" value="' . $tab_new_user['quotite'] . '">'; $return .= '<input type="hidden" name="new_email" value="' . $tab_new_user['email'] . '">'; foreach ($tab_new_jours_an as $id_cong => $jours_an) { $return .= '<input type="hidden" name="tab_new_jours_an[' . $id_cong . ']" value="' . $tab_new_jours_an[$id_cong] . '">'; $return .= '<input type="hidden" name="tab_new_solde[' . $id_cong . ']" value="' . $tab_new_solde[$id_cong] . '">'; } $return .= '<input type="hidden" name="saisie_user" value="faux">'; $return .= '<input type="submit" value="' . _('form_redo') . '">'; $return .= '</form>'; return true; } elseif ($_SESSION['config']['where_to_find_user_email'] == "dbconges" && strrchr($tab_new_user['email'], "@") == FALSE) { $return .= '<h3>' . _('admin_verif_bad_mail') . '</h3>'; $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '&onglet=ajout-user" method="POST">'; $return .= '<input type="hidden" name="new_login" value="' . $tab_new_user['login'] . '">'; $return .= '<input type="hidden" name="new_nom" value="' . $tab_new_user['nom'] . '">'; $return .= '<input type="hidden" name="new_prenom" value="' . $tab_new_user['prenom'] . '">'; $return .= '<input type="hidden" name="new_is_resp" value="' . $tab_new_user['is_resp'] . '">'; $return .= '<input type="hidden" name="new_resp_login" value="' . $tab_new_user['resp_login'] . '">'; $return .= '<input type="hidden" name="new_is_admin" value="' . $tab_new_user['is_admin'] . '">'; $return .= '<input type="hidden" name="new_is_hr" value="' . $tab_new_user['is_hr'] . '">'; $return .= '<input type="hidden" name="new_quotite" value="' . $tab_new_user['quotite'] . '">'; $return .= '<input type="hidden" name="new_email" value="' . $tab_new_user['email'] . '">'; foreach ($tab_new_jours_an as $id_cong => $jours_an) { $return .= '<input type="hidden" name="tab_new_jours_an[' . $id_cong . ']" value="' . $tab_new_jours_an[$id_cong] . '">'; $return .= '<input type="hidden" name="tab_new_solde[' . $id_cong . ']" value="' . $tab_new_solde[$id_cong] . '">'; } $return .= '<input type="hidden" name="saisie_user" value="faux">'; $return .= '<input class="btn" type="submit" value="' . _('form_redo') . '">'; $return .= '</form>'; return true; } else { return false; } } }
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); } } }
public static function annule_conges($user_login, $tab_checkbox_annule, $tab_text_annul) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $return = ''; // recup dans un tableau de tableau les infos des types de conges et absences $tab_tout_type_abs = recup_tableau_tout_types_abs(); while ($elem_tableau = each($tab_checkbox_annule)) { $champs = explode("--", $elem_tableau['value']); $user_login = $champs[0]; $user_nb_jours_pris_float = $champs[1]; $VerifDec = verif_saisie_decimal($user_nb_jours_pris_float); $numero = $elem_tableau['key']; $numero_int = (int) $numero; $user_type_abs_id = $champs[2]; $motif_annul = addslashes($tab_text_annul[$numero_int]); /* UPDATE table "conges_periode" */ $sql1 = 'UPDATE conges_periode SET p_etat="annul", p_motif_refus="' . \includes\SQL::quote($motif_annul) . '", p_date_traitement=NOW() WHERE p_num="' . \includes\SQL::quote($numero_int) . '" AND p_etat=\'ok\';'; $ReqLog1 = \includes\SQL::query($sql1); if ($ReqLog1 && \includes\SQL::getVar('affected_rows')) { // Log de l'action log_action($numero_int, "annul", $user_login, "annulation conges {$numero} ({$user_login}) ({$user_nb_jours_pris_float} jours)"); /* UPDATE table "conges_solde_user" (jours restants) */ // on re-crédite les jours seulement pour des conges pris (pas pour les absences) // donc seulement si le type de l'absence qu'on annule est un "conges" if ($tab_tout_type_abs[$user_type_abs_id]['type'] == "conges") { $sql2 = 'UPDATE conges_solde_user SET su_solde = su_solde+"' . \includes\SQL::quote($user_nb_jours_pris_float) . '" WHERE su_login="******" AND su_abs_id="' . \includes\SQL::quote($user_type_abs_id) . '";'; $ReqLog2 = \includes\SQL::query($sql2); } //envoi d'un mail d'alerte au user (si demandé dans config de php_conges) if ($_SESSION['config']['mail_annul_conges_alerte_user']) { alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "annul_conges"); } } } $return .= _('form_modif_ok') . '<br><br>'; /* APPEL D'UNE AUTRE PAGE au bout d'une tempo de 2secondes */ $return .= '<META HTTP-EQUIV=REFRESH CONTENT="2; URL=' . $PHP_SELF . '?session=' . $session . '&user_login='******'">'; return $return; }
function ajout_conges($tab_champ_saisie, $tab_commentaire_saisie, $DEBUG=FALSE) { $PHP_SELF=$_SERVER['PHP_SELF']; $session=session_id(); foreach($tab_champ_saisie as $user_name => $tab_conges) // tab_champ_saisie[$current_login][$id_conges]=valeur du nb de jours ajouté saisi { foreach($tab_conges as $id_conges => $user_nb_jours_ajout) { $valid=verif_saisie_decimal($user_nb_jours_ajout, $DEBUG); //verif la bonne saisie du nombre décimal if($valid) { $user_nb_jours_ajout_float =(float) $user_nb_jours_ajout ; if( $DEBUG ) {echo "$user_name --- $id_conges --- $user_nb_jours_ajout_float<br>\n";} if($user_nb_jours_ajout_float!=0) { /* Modification de la table conges_users */ $sql1 = "UPDATE conges_solde_user SET su_solde = su_solde+$user_nb_jours_ajout_float WHERE su_login='******' AND su_abs_id = $id_conges " ; /* On valide l'UPDATE dans la table ! */ $ReqLog1 = SQL::query($sql1) ; /* // Enregistrement du commentaire relatif à l'ajout de jours de congés $comment = $tab_commentaire_saisie[$user_name]; $sql1 = "INSERT INTO conges_historique_ajout (ha_login, ha_date, ha_abs_id, ha_nb_jours, ha_commentaire) VALUES ('$user_name', NOW(), $id_conges, $user_nb_jours_ajout_float , '$comment')"; $ReqLog1 = SQL::query($sql1) ; */ // on insert l'ajout de conges dans la table periode $commentaire = _('resp_ajout_conges_comment_periode_user') ; insert_ajout_dans_periode($DEBUG, $user_name, $user_nb_jours_ajout_float, $id_conges, $commentaire); } } } } if( $DEBUG ) { echo "<form action=\"$PHP_SELF\" method=\"POST\">\n" ; echo "<input type=\"hidden\" name=\"session\" value=\"$session\">\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\">"; } }
public static function modifier($p_num_to_update, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $p_etat, $onglet) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $return = ''; $VerifNb = verif_saisie_decimal($new_nb_jours); $sql1 = "UPDATE conges_periode\n SET p_date_deb='{$new_debut}', p_demi_jour_deb='{$new_demi_jour_deb}', p_date_fin='{$new_fin}', p_demi_jour_fin='{$new_demi_jour_fin}', p_nb_jours='{$new_nb_jours}', p_commentaire='{$new_comment}', "; if ($p_etat == "demande") { $sql1 = $sql1 . " p_date_demande=NOW() "; } else { $sql1 = $sql1 . " p_date_traitement=NOW() "; } $sql1 = $sql1 . " WHERE p_num='{$p_num_to_update}' AND p_login='******'userlogin'] . "' ;"; $result = \includes\SQL::query($sql1); if ($_SESSION['config']['mail_modif_demande_alerte_resp']) { alerte_mail($_SESSION['userlogin'], ":responsable:", $p_num_to_update, "modif_demande_conges"); } $comment_log = "modification de demande num {$p_num_to_update} ({$new_nb_jours} jour(s)) ( de {$new_debut} {$new_demi_jour_deb} a {$new_fin} {$new_demi_jour_fin}) ({$new_comment})"; log_action($p_num_to_update, "{$p_etat}", $_SESSION['userlogin'], $comment_log); $return .= _('form_modif_ok') . '<br><br>'; /* APPEL D'UNE AUTRE PAGE */ $return .= '<form action="' . ROOT_PATH . 'utilisateur/user_index.php?session=' . $session . '&onglet=demandes_en_cours" method="POST">'; $return .= '<input class="btn" type="submit" value="' . _('form_submit') . '">'; $return .= '</form>'; return $return; }
public static function cloture_current_year_for_login($current_login, $tab_current_user, $tab_type_conges, $commentaire) { $return = ''; // 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) \hr\Fonctions::set_nouvelle_date_limite_reliquat(); //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']; /**********************************************/ /* 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; } $VerifDec = verif_saisie_decimal($new_reliquat); // // update D'ABORD du reliquat $sql_reliquat = 'UPDATE conges_solde_user SET su_reliquat = ' . $new_reliquat . ' WHERE su_login="******" AND su_abs_id = ' . $id_conges; $ReqLog_reliquat = \includes\SQL::query($sql_reliquat); } else { $new_reliquat = $user_solde_actuel; // qui est nul ou negatif } $new_solde = $user_nb_jours_ajout_an + $new_reliquat; $VerifDec = verif_saisie_decimal($new_solde); // update du solde $sql_solde = 'UPDATE conges_solde_user SET su_solde = ' . $new_solde . ' WHERE su_login="******" AND su_abs_id = ' . intval($id_conges) . ';'; $ReqLog_solde = \includes\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; // qui est nul ou negatif } else { $new_solde = $user_nb_jours_ajout_an; } $VerifDec = verif_saisie_decimal($new_solde); $sql_solde = 'UPDATE conges_solde_user SET su_solde = ' . $new_solde . ' WHERE su_login="******" AND su_abs_id = ' . intval($id_conges) . ';'; $ReqLog_solde = \includes\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="******" '; $ReqLog2 = \includes\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); } // on incrémente le num_exercice de l'application si tous les users ont été basculés. \hr\Fonctions::update_appli_num_exercice(); } return $return; }
function compter($user, $num_current_periode, $date_debut, $date_fin, $opt_debut, $opt_fin, &$comment, $num_update = null) { $date_debut = convert_date($date_debut); $date_fin = convert_date($date_fin); // verif si date_debut est bien anterieure à date_fin // ou si meme jour mais debut l'apres midi et fin le matin if (strtotime($date_debut) > strtotime($date_fin) || $date_debut == $date_fin && $opt_debut == "pm" && $opt_fin == "am") { $comment = _('calcul_nb_jours_commentaire_bad_date'); return 0; } if ($date_debut != 0 && $date_fin != 0) { // On ne peut pas calculer si, pour l'année considérée, les jours feries ont ete saisis if (verif_jours_feries_saisis($date_debut, $num_update) == FALSE || verif_jours_feries_saisis($date_fin, $num_update) == FALSE) { $comment = _('calcul_impossible') . "<br>\n" . _('jours_feries_non_saisis') . "<br>\n" . _('contacter_admin') . "<br>\n"; return 0; } /************************************************************/ // 1 : on fabrique un tableau de jours (divisé chacun en 2 demi-jour) de la date_debut à la date_fin // 2 : on verifie que le conges demandé ne chevauche pas une periode deja posée // 3 : on affecte à 0 ou 1 chaque demi jour, en fonction de s'il est travaillé ou pas // 4 : à la fin , on parcours le tableau en comptant le nb de demi-jour à 1, on multiplie ce total par 0.5, ça donne le nb de jours du conges ! $nb_jours = 0; /************************************************************/ // 1 : fabrication et initialisation du tableau des demi-jours de la date_debut à la date_fin $tab_periode_calcul = make_tab_demi_jours_periode($date_debut, $date_fin, $opt_debut, $opt_fin); /************************************************************/ // 2 : on verifie que le conges demandé ne chevauche pas une periode deja posée if (verif_periode_chevauche_periode_user($date_debut, $date_fin, $user, $num_current_periode, $tab_periode_calcul, $comment, $num_update)) { return 0; } /************************************************************/ // 3 : on affecte à 0 ou 1 chaque demi jour, en fonction de s'il est travaillé ou pas // on initialise le tableau global des jours fériés s'il ne l'est pas déjà : if (!isset($_SESSION["tab_j_feries"])) { init_tab_jours_feries(); } // on initialise le tableau global des jours fermés s'il ne l'est pas déjà : if (!isset($_SESSION["tab_j_fermeture"])) { init_tab_jours_fermeture($user); } $current_day = $date_debut; $date_limite = jour_suivant($date_fin); // on va avancer jour par jour jusqu'à la date limite et voir si chaque jour est travaillé, férié, rtt, etc ... while ($current_day != $date_limite) { // calcul du timestamp du jour courant if (substr_count($current_day, '/')) { $pieces = explode("/", $current_day); // date de la forme jj/mm/yyyy $y = $pieces[2]; $m = $pieces[1]; $j = $pieces[0]; } else { $pieces = explode("-", $current_day); // date de la forme yyyy-mm-dd $y = $pieces[0]; $m = $pieces[1]; $j = $pieces[2]; } $timestamp_du_jour = mktime(0, 0, 0, $m, $j, $y); // on regarde si le jour est travaillé ou pas dans la config de l'appli $j_name = date("D", $timestamp_du_jour); if ($j_name == "Sat" && $_SESSION['config']['samedi_travail'] == FALSE || $j_name == "Sun" && $_SESSION['config']['dimanche_travail'] == FALSE) { // on ne compte ce jour à 0 $tab_periode_calcul[$current_day]['am'] = 0; $tab_periode_calcul[$current_day]['pm'] = 0; } elseif (est_chome($timestamp_du_jour)) { // on ne compte ce jour à 0 $tab_periode_calcul[$current_day]['am'] = 0; $tab_periode_calcul[$current_day]['pm'] = 0; } else { /***************/ // verif des rtt ou temp partiel (dans la table rtt) $val_matin = "N"; $val_aprem = "N"; recup_infos_artt_du_jour($user, $timestamp_du_jour, $val_matin, $val_aprem); if ($val_matin == "Y") { // rtt le matin $tab_periode_calcul[$current_day]['am'] = 0; } if ($val_aprem == "Y") { // rtt l'après midi $tab_periode_calcul[$current_day]['pm'] = 0; } } $current_day = jour_suivant($current_day); } /************************************************************/ // 3 : on va avancer jour par jour jusqu'à la date limite pour compter le nb de demi jour à 1 $current_day = $date_debut; $date_limite = jour_suivant($date_fin); while ($current_day != $date_limite) { $nb_jours = $nb_jours + $tab_periode_calcul[$current_day]['am'] + $tab_periode_calcul[$current_day]['pm']; $current_day = jour_suivant($current_day); } $nb_jours = $nb_jours * 0.5; $VerifDec = verif_saisie_decimal($nb_jours); return $nb_jours; } else { return 0; } }
function ajout_conges($tab_champ_saisie, $tab_commentaire_saisie, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); foreach ($tab_champ_saisie as $user_name => $tab_conges) { foreach ($tab_conges as $id_conges => $user_nb_jours_ajout) { $valid = verif_saisie_decimal($user_nb_jours_ajout, $DEBUG); //verif la bonne saisie du nombre décimal if ($valid) { $user_nb_jours_ajout_float = (double) $user_nb_jours_ajout; if ($DEBUG) { echo "{$user_name} --- {$id_conges} --- {$user_nb_jours_ajout_float}<br>\n"; } if ($user_nb_jours_ajout_float != 0) { /* Modification de la table conges_users */ $sql1 = 'UPDATE conges_solde_user SET su_solde = su_solde+' . floatval($user_nb_jours_ajout_float) . ' WHERE su_login=\'' . SQL::quote($user_name) . '\' AND su_abs_id = \'' . SQL::quote($id_conges) . '\';'; /* On valide l'UPDATE dans la table ! */ $ReqLog1 = SQL::query($sql1); /* // Enregistrement du commentaire relatif à l'ajout de jours de congés $comment = $tab_commentaire_saisie[$user_name]; $sql1 = "INSERT INTO conges_historique_ajout (ha_login, ha_date, ha_abs_id, ha_nb_jours, ha_commentaire) VALUES ('$user_name', NOW(), $id_conges, $user_nb_jours_ajout_float , '$comment')"; $ReqLog1 = SQL::query($sql1) ; */ // on insert l'ajout de conges dans la table periode $commentaire = _('resp_ajout_conges_comment_periode_user'); insert_ajout_dans_periode($DEBUG, $user_name, $user_nb_jours_ajout_float, $id_conges, $commentaire); } } } } }
function ajout_global_groupe($choix_groupe, $tab_new_nb_conges_all, $tab_calcul_proportionnel, $tab_new_comment_all, $DEBUG = FALSE) { // $tab_new_nb_conges_all[$id_conges]= nb_jours // $tab_calcul_proportionnel[$id_conges]= TRUE / 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; } $nb_conges_ok = verif_saisie_decimal($nb_conges, $DEBUG); if ($nb_conges_ok) { // 1 : on update conges_solde_user $req_update = "UPDATE conges_solde_user SET su_solde = su_solde+{$nb_conges}\n\t\t\t\t\t\t\tWHERE su_login = '******' AND su_abs_id = {$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); // 3 : Enregistrement du commentaire relatif à l'ajout de jours de congés 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); } } if ($DEBUG) { echo "<form action=\"{$PHP_SELF}\" 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"; redirect(ROOT_PATH . 'responsable/resp_index.php?session=' . $session); } }