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, "VALID") == 0) { /* UPDATE table "conges_periode" */ $sql1 = "UPDATE conges_periode SET p_etat=\"valid\", p_date_traitement=NOW() WHERE p_num={$numero_int}"; /* On valide l'UPDATE dans la table "conges_periode" ! */ $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) : {$reponse}", $DEBUG); //envoi d'un mail d'alerte au user et au responsable du resp (pour double validation) (si demandé dans config de php_conges) if ($_SESSION['config']['mail_prem_valid_conges_alerte_user']) { alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "valid_conges", $DEBUG); } } if (strcmp($reponse, "OK") == 0) { /* UPDATE table "conges_periode" */ $sql1 = "UPDATE conges_periode SET p_etat=\"ok\", p_date_traitement=NOW() WHERE p_num={$numero_int}"; /* On valide l'UPDATE dans la table "conges_periode" ! */ $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) : {$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); // soustrait_solde_user($user_login, $user_nb_jours_pris, $type_abs, $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={$numero_int}"; //echo "$sql1<br>\n"); // Log de l'action log_action($numero_int, "refus", $user_login, "traite demande {$numero} ({$user_login}) ({$user_nb_jours_pris} jours) : refus", $DEBUG); /* On valide l'UPDATE dans la table ! */ $ReqLog1 = SQL::query($sql1); //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 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 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); } }
public static function traite_all_demande_en_cours($tab_bt_radio, $tab_text_refus) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $return = ''; 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; $return .= $numero . '---' . $user_login . '---' . $user_nb_jours_pris . '---' . $reponse . '<br>'; /* Modification de la table conges_periode */ if (strcmp($reponse, "VALID") == 0) { /* UPDATE table "conges_periode" */ $sql1 = 'UPDATE conges_periode SET p_etat=\'valid\', p_date_traitement=NOW() WHERE p_num="' . \includes\SQL::quote($numero_int) . '" AND p_etat=\'demande\';'; /* On valide l'UPDATE dans la table "conges_periode" ! */ $ReqLog1 = \includes\SQL::query($sql1); if ($ReqLog1 && \includes\SQL::getVar('affected_rows')) { // Log de l'action log_action($numero_int, "valid", $user_login, "traite demande {$numero} ({$user_login}) ({$user_nb_jours_pris} jours) : {$reponse}"); //envoi d'un mail d'alerte au user et au responsable du resp (pour double validation) (si demandé dans config de libertempo) if ($_SESSION['config']['mail_prem_valid_conges_alerte_user']) { alerte_mail($_SESSION['userlogin'], $user_login, $numero_int, "valid_conges"); } } } if (strcmp($reponse, "OK") == 0) { /* UPDATE table "conges_periode" */ $sql1 = 'UPDATE conges_periode SET p_etat="ok", p_date_traitement=NOW() WHERE p_num="' . \includes\SQL::quote($numero_int) . '" AND ( p_etat=\'valid\' OR p_etat=\'demande\' );'; /* On valide l'UPDATE dans la table "conges_periode" ! */ $ReqLog1 = \includes\SQL::query($sql1); if ($ReqLog1 && \includes\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}"); /* 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); //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"); } } } 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="' . \includes\SQL::quote($numero_int) . '" AND ( p_etat=\'valid\' OR p_etat=\'demande\' );'; /* On valide l'UPDATE dans la table ! */ $ReqLog1 = \includes\SQL::query($sql1); if ($ReqLog1 && \includes\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"); //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"); } } } } $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 . '&onglet=traitement_demandes">'; return $return; }
public static function suppression($p_num_to_delete, $onglet) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $return = ''; if ($_SESSION['config']['mail_supp_demande_alerte_resp']) { alerte_mail($_SESSION['userlogin'], ":responsable:", $p_num_to_delete, "supp_demande_conges"); } $sql_delete = 'DELETE FROM conges_periode WHERE p_num = ' . \includes\SQL::quote($p_num_to_delete) . ' AND p_login="******";'; $result_delete = \includes\SQL::query($sql_delete); $comment_log = "suppression de demande num {$p_num_to_delete}"; log_action($p_num_to_delete, "", $_SESSION['userlogin'], $comment_log); if ($result_delete) { $return .= _('form_modif_ok') . "<br><br> \n"; } else { $return .= _('form_modif_not_ok') . "<br><br> \n"; } /* 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 .= '<a href="">'; return $return; }
<?php $local_scripts = curPage(); if ($local_scripts[0] == "user_index.php") { $pattern = "&onglet="; $which_onglet = explode($pattern, $local_scripts[1]); if (empty($which_onglet) || $which_onglet[1] == "nouvelle_absence" || $which_onglet[0] == $local_scripts[1]) { $nb_days_cet = getpost_variable("nb_days_cet"); $comments_cet = getpost_variable("comments_cet"); $user_login = $_SESSION['userlogin']; if (!empty($nb_days_cet)) { $text = 'Merci. Votre demande de ' . $nb_days_cet . ' jours va être transmise.'; alerte_mail($user_login, ":responsable:", "0", "cet_demande", FALSE); $query_insert_cet = 'INSERT INTO conges_plugin_cet(pc_jours_demandes,pc_comments,pc_u_login) VALUES("' . $nb_days_cet . '","' . $comments_cet . '","' . $user_login . '")'; $exec_query_cet = SQL::query($query_insert_cet); } else { $text = '<br /><form method="POST" name="form2">Nombre de jours demandés pour alimenter votre CET : <input type="text" name="nb_days_cet"> Commentaires <input type="text" name="comments_cet"><input type="submit" /></form>'; } echo "<script>\n \$(document).ready(function(){\n \$('.nouvelle_absence').before('" . $text . "');\n });\n </script>"; } }
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 = $champs[1]; $VerifDec = verif_saisie_decimal($user_nb_jours_pris); $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} 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) . '" 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 new_demande($new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type, $DEBUG = FALSE) { //conversion des dates $new_debut = convert_date($new_debut); $new_fin = convert_date($new_fin); // print_r($new_fin); //$new_nb_jours = get_nb_jour($new_debut, $new_fin, $new_demi_jour_deb, $new_demi_jour_fin); $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); // echo " $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type<br><br>\n"; // exit; // verif validité des valeurs saisies $valid = verif_saisie_new_demande($new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment); // verifie que le solde de conges sera encore positif après validation if ($_SESSION['config']['solde_toujours_positif']) { $valid = $valid && verif_solde_user($_SESSION['userlogin'], $new_type, $new_nb_jours, $DEBUG); } if ($valid) { if (in_array(get_type_abs($new_type, $DEBUG), array('conges', 'conges_exceptionnels'))) { $new_etat = 'demande'; } else { $new_etat = 'ok'; } $new_comment = addslashes($new_comment); $periode_num = insert_dans_periode($_SESSION['userlogin'], $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type, $new_etat, 0, $DEBUG); if ($periode_num != 0) { echo schars(_('form_modif_ok')) . ' !<br><br>' . "\n"; //envoi d'un mail d'alerte au responsable (si demandé dans config de php_conges) if ($_SESSION['config']['mail_new_demande_alerte_resp']) { alerte_mail($_SESSION['userlogin'], ":responsable:", $periode_num, "new_demande", $DEBUG); } } else { echo schars(_('form_modif_not_ok')) . ' !<br><br>' . "\n"; } } else { echo schars(_('resp_traite_user_valeurs_not_ok')) . ' !<br><br>' . "\n"; } /* RETOUR PAGE PRINCIPALE */ // echo '<form action="'.$PHP_SELF.'?session='.$session.'" method="POST">'; // echo '<input type="submit" value="'. _('form_retour') .'">'; // echo '</form>'; echo "<a class=\"btn\" href=\"{$PHP_SELF}?session={$session}\">" . _('form_retour') . "</a>\n"; }