function affichage($user, $date_debut, $date_fin, $opt_debut, $opt_fin, $p_num = "") { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $comment = " "; // calcul : $nb_jours = compter($user, $p_num, $date_debut, $date_fin, $opt_debut, $opt_fin, $comment); $tab['nb'] = $nb_jours; $tab['comm'] = $comment; if (!$_SESSION['config']['rempli_auto_champ_nb_jours_pris']) { $tab['nb'] = ""; } echo json_encode($tab); }
function affichage($user, $date_debut, $date_fin, $opt_debut, $opt_fin, $DEBUG = FALSE, $p_num = "") { if ($DEBUG) { echo "user = {$user}, date_debut = {$date_debut}, date_fin = {$date_fin}, opt_debut = {$opt_debut}, opt_fin = {$opt_fin}<br>\n"; } $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $comment = " "; // calcul : $nb_jours = compter($user, $p_num, $date_debut, $date_fin, $opt_debut, $opt_fin, $comment, $DEBUG); $tab['nb'] = $nb_jours; $tab['comm'] = $comment; if (!$_SESSION['config']['rempli_auto_champ_nb_jours_pris']) { $tab['nb'] = ""; } echo json_encode($tab); }
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); }
defined('_PHP_CONGES') or die('Restricted access'); $user_login = $_SESSION['userlogin']; $p_num = getpost_variable('p_num'); $onglet = getpost_variable('onglet'); $p_num_to_update = getpost_variable('p_num_to_update'); $p_etat = getpost_variable('p_etat'); $new_debut = getpost_variable('new_debut'); $new_demi_jour_deb = getpost_variable('new_demi_jour_deb'); $new_fin = getpost_variable('new_fin'); $new_demi_jour_fin = getpost_variable('new_demi_jour_fin'); $new_comment = getpost_variable('new_comment'); //conversion des dates $new_debut = convert_date($new_debut); $new_fin = convert_date($new_fin); if ($_SESSION['config']['disable_saise_champ_nb_jours_pris']) { $new_nb_jours = compter($user_login, $p_num_to_update, $new_debut, $new_fin, $new_demi_jour_deb, $new_demi_jour_fin, $new_comment, $DEBUG); } else { $new_nb_jours = getpost_variable('new_nb_jours'); } /*************************************/ // TITRE echo '<h1>' . _('user_modif_demande_titre') . '</h1>'; if ($p_num != "") { confirmer($p_num, $onglet, $DEBUG); } else { if ($p_num_to_update != "") { 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, $DEBUG); } else { // renvoit sur la page principale . redirect(ROOT_PATH . 'utilisateur/user_index.php', false); }
$mois_calendrier_saisie_debut = getpost_variable('mois_calendrier_saisie_debut', 0) ; $year_calendrier_saisie_fin = getpost_variable('year_calendrier_saisie_fin', 0) ; $mois_calendrier_saisie_fin = getpost_variable('mois_calendrier_saisie_fin', 0) ; $tri_date = getpost_variable('tri_date', "ascendant") ; $tab_checkbox_annule = getpost_variable('tab_checkbox_annule') ; $tab_radio_traite_demande = getpost_variable('tab_radio_traite_demande') ; $tab_text_refus = getpost_variable('tab_text_refus') ; $tab_text_annul = getpost_variable('tab_text_annul') ; $new_demande_conges = getpost_variable('new_demande_conges', 0) ; $new_debut = getpost_variable('new_debut') ; $new_demi_jour_deb = getpost_variable('new_demi_jour_deb') ; $new_fin = getpost_variable('new_fin') ; $new_demi_jour_fin = getpost_variable('new_demi_jour_fin') ; if($_SESSION['config']['disable_saise_champ_nb_jours_pris']) // zone de texte en readonly et grisée { $new_nb_jours = compter($user_login, '', $new_debut, $new_fin, $new_demi_jour_deb, $new_demi_jour_fin, $comment, $DEBUG); } else { $new_nb_jours = getpost_variable('new_nb_jours') ; } $new_comment = getpost_variable('new_comment') ; $new_type = getpost_variable('new_type') ; $year_affichage = getpost_variable('year_affichage' , date("Y") ); /*************************************/ if ( !is_resp_of_user($_SESSION['userlogin'] , $user_login)) { redirect(ROOT_PATH . 'deconnexion.php'); exit; }
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); }
/** * Encapsule le comportement du module de gestion des congés des utilisateurs * * @return void * @access public * @static */ public static function traiteUserModule() { //var pour resp_traite_user.php $user_login = getpost_variable('user_login'); $year_calendrier_saisie_debut = getpost_variable('year_calendrier_saisie_debut', 0); $mois_calendrier_saisie_debut = getpost_variable('mois_calendrier_saisie_debut', 0); $year_calendrier_saisie_fin = getpost_variable('year_calendrier_saisie_fin', 0); $mois_calendrier_saisie_fin = getpost_variable('mois_calendrier_saisie_fin', 0); $tri_date = getpost_variable('tri_date', "ascendant"); $tab_checkbox_annule = getpost_variable('tab_checkbox_annule'); $tab_radio_traite_demande = getpost_variable('tab_radio_traite_demande'); $tab_text_refus = getpost_variable('tab_text_refus'); $tab_text_annul = getpost_variable('tab_text_annul'); $new_demande_conges = getpost_variable('new_demande_conges', 0); $new_debut = getpost_variable('new_debut'); $new_demi_jour_deb = getpost_variable('new_demi_jour_deb'); $new_fin = getpost_variable('new_fin'); $new_demi_jour_fin = getpost_variable('new_demi_jour_fin'); $return = ''; if ($_SESSION['config']['disable_saise_champ_nb_jours_pris']) { // zone de texte en readonly et grisée $new_nb_jours = compter($user_login, '', $new_debut, $new_fin, $new_demi_jour_deb, $new_demi_jour_fin, $comment); } else { $new_nb_jours = getpost_variable('new_nb_jours'); } $new_comment = getpost_variable('new_comment'); $new_type = getpost_variable('new_type'); $year_affichage = getpost_variable('year_affichage', date("Y")); /*************************************/ if (!is_resp_of_user($_SESSION['userlogin'], $user_login)) { redirect(ROOT_PATH . 'deconnexion.php'); exit; } /************************************/ // si une annulation de conges a été selectionée : if ($tab_checkbox_annule != "") { $return .= \responsable\Fonctions::annule_conges($user_login, $tab_checkbox_annule, $tab_text_annul); } elseif ($tab_radio_traite_demande != "") { $return .= \responsable\Fonctions::traite_demandes($user_login, $tab_radio_traite_demande, $tab_text_refus); } elseif ($new_demande_conges == 1) { $return .= \responsable\Fonctions::new_conges($user_login, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type); } else { $return .= \responsable\Fonctions::affichage($user_login, $year_affichage, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin, $tri_date); } return $return; }
/** * Encapsule le comportement du module de modification d'absence * * * @return void * @access public * @static */ public static function modificationAbsenceModule() { $user_login = $_SESSION['userlogin']; $p_num = getpost_variable('p_num'); $onglet = getpost_variable('onglet'); $p_num_to_update = getpost_variable('p_num_to_update'); $p_etat = getpost_variable('p_etat'); $new_debut = getpost_variable('new_debut'); $new_demi_jour_deb = getpost_variable('new_demi_jour_deb'); $new_fin = getpost_variable('new_fin'); $new_demi_jour_fin = getpost_variable('new_demi_jour_fin'); $new_comment = getpost_variable('new_comment'); $return = ''; //conversion des dates $new_debut = convert_date($new_debut); $new_fin = convert_date($new_fin); if ($_SESSION['config']['disable_saise_champ_nb_jours_pris']) { $new_nb_jours = compter($user_login, $p_num_to_update, $new_debut, $new_fin, $new_demi_jour_deb, $new_demi_jour_fin, $new_comment); } else { $new_nb_jours = getpost_variable('new_nb_jours'); } /*************************************/ // TITRE $return .= '<h1>' . _('user_modif_demande_titre') . '</h1>'; if ($p_num != "") { $return .= \utilisateur\Fonctions::confirmer($p_num, $onglet); } else { if ($p_num_to_update != "") { $return .= \utilisateur\Fonctions::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); } else { // renvoit sur la page principale . redirect(ROOT_PATH . 'utilisateur/user_index.php', false); } } return $return; }
function commit_new_fermeture($new_date_debut, $new_date_fin, $groupe_id, $id_type_conges, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); // on transforme les formats des dates $tab_date_debut = explode("/", $new_date_debut); // date au format d/m/Y $date_debut = $tab_date_debut[2] . "-" . $tab_date_debut[1] . "-" . $tab_date_debut[0]; $tab_date_fin = explode("/", $new_date_fin); // date au format d/m/Y $date_fin = $tab_date_fin[2] . "-" . $tab_date_fin[1] . "-" . $tab_date_fin[0]; if ($DEBUG) { echo "date_debut = {$date_debut} // date_fin = {$date_fin}<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"; } //****************************** // !!!! // type d'absence à modifier .... // $id_type_conges = 1 ; //"cp" : conges payes //calcul de l'ID de de la fermeture (en fait l'ID de la saisie de fermeture) $new_fermeture_id = get_last_fermeture_id($DEBUG) + 1; /***********************************************/ /** enregistrement des jours de fermetures **/ $tab_fermeture = array(); for ($current_date = $date_debut; $current_date <= $date_fin; $current_date = jour_suivant($current_date)) { $tab_fermeture[] = $current_date; } if ($DEBUG) { echo "tab_fermeture =<br>\n"; print_r($tab_fermeture); echo "<br>\n"; } // on insere les nouvelles dates saisies dans conges_jours_fermeture $result = insert_year_fermeture($new_fermeture_id, $tab_fermeture, $groupe_id, $DEBUG); $opt_debut = 'am'; $opt_fin = 'pm'; /*********************************************************/ /** insersion des jours de fermetures pour chaque user **/ 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 compte le nb de jour à enlever au user (par periode et au total) // on ne met à jour la table conges_periode $nb_jours = 0; $comment = ""; // $nb_jours = compter($current_login, $date_debut, $date_fin, $opt_debut, $opt_fin, $comment, $DEBUG); $nb_jours = compter($current_login, "", $date_debut, $date_fin, $opt_debut, $opt_fin, $comment, $DEBUG); if ($DEBUG) { echo "<br>user_login : "******" nbjours : " . $nb_jours . "<br>\n"; } // on ne met à jour la table conges_periode . $commentaire = _('divers_fermeture'); $etat = "ok"; $num_periode = insert_dans_periode($current_login, $date_debut, $opt_debut, $date_fin, $opt_fin, $nb_jours, $commentaire, $id_type_conges, $etat, $new_fermeture_id, $DEBUG); // mise à jour du solde de jours de conges pour l'utilisateur $current_login if ($nb_jours != 0) { soustrait_solde_et_reliquat_user($current_login, "", $nb_jours, $id_type_conges, $date_debut, $opt_debut, $date_fin, $opt_fin, $DEBUG); } } // on recharge les jours fermés dans les variables de session init_tab_jours_fermeture($_SESSION['userlogin'], $DEBUG); echo '<div class="wrapper">'; if ($result) { echo "<br>" . _('form_modif_ok') . "<br><br>\n"; } else { echo "<br>" . _('form_modif_not_ok') . " !<br><br>\n"; } $comment_log = "saisie des jours de fermeture de {$date_debut} a {$date_fin}"; 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>'; }
$new_debut = getpost_variable('new_debut'); $new_demi_jour_deb = getpost_variable('new_demi_jour_deb'); $new_fin = getpost_variable('new_fin'); $new_demi_jour_fin = getpost_variable('new_demi_jour_fin'); $new_comment = getpost_variable('new_comment'); if ($_SESSION['config']['disable_saise_champ_nb_jours_pris']) { $new_debut2 = explode('-', $new_debut); $new_debut2 = array_reverse($new_debut2); $new_debut2 = implode('-', $new_debut2); $new_fin2 = explode('-', $new_fin); $new_fin2 = array_reverse($new_fin2); $new_fin2 = implode('-', $new_fin2); $new_nb_jours = compter($_SESSION['userlogin'], '', $new_debut2, $new_fin2, $new_demi_jour_deb, $new_demi_jour_fin, $comm, $DEBUG, $p_num_to_update); } else $new_nb_jours = getpost_variable('new_nb_jours'); /*************************************/ // TITRE echo '<h1>'. _('user_modif_demande_titre') .'</h1>'; echo "<br><br>\n"; if($p_num!="") { confirmer($p_num, $onglet, $DEBUG); }
function affichage($user, $date_debut, $date_fin, $opt_debut, $opt_fin, $DEBUG = FALSE) { if ($DEBUG) { echo "user = {$user}, date_debut = {$date_debut}, date_fin = {$date_fin}, opt_debut = {$opt_debut}, opt_fin = {$opt_fin}<br>\n"; } $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $comment = " "; header_popup(); echo "<h1>{$user}</h1>\n"; echo "<form action=\"{$PHP_SELF}?session={$session}\" method=\"POST\">\n"; echo "<table>\n"; echo "<tr>\n"; // calcul : // $nb_jours=compter($user, $date_debut, $date_fin, $opt_debut, $opt_fin, $comment, $DEBUG); $nb_jours = compter($user, "", $date_debut, $date_fin, $opt_debut, $opt_fin, $comment, $DEBUG); echo "<td align=\"center\"><h2>" . _('calcul_nb_jours_nb_jours') . " <b>{$nb_jours}</b></h2></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td align=\"center\"><i><font color=\"red\">{$comment}<font/></i></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td align=\"center\"><i>" . _('calcul_nb_jours_reportez') . " \"" . _('saisie_conges_nb_jours') . "\" " . _('calcul_nb_jours_form') . ".</i></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td align=\"center\"> </td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td align=\"center\">\n"; echo " <input type=\"button\" value=\"" . _('form_close_window') . "\" onClick=\"javascript:window.close();\">\n"; echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "</form>\n"; if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) { if ($comment == " " && $DEBUG == FALSE) { echo "<script>envoi('{$nb_jours}'); window.close()</script>"; } else { echo "<script>envoi('{$nb_jours}')</script>"; } } bottom(); }