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_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 new_conges($user_login, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type_id, $DEBUG=FALSE) { $PHP_SELF=$_SERVER['PHP_SELF']; $session=session_id(); // 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); if($valid) { echo "$user_login---$new_debut _ $new_demi_jour_deb---$new_fin _ $new_demi_jour_fin---$new_nb_jours---$new_comment---$new_type_id<br>\n"; // recup dans un tableau de tableau les infos des types de conges et absences $tab_tout_type_abs = recup_tableau_tout_types_abs( $DEBUG); /**********************************/ /* insert dans conges_periode */ /**********************************/ $new_etat="ok"; $result=insert_dans_periode($user_login, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type_id, $new_etat, 0, $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 annule est un "conges" if(isset($tab_tout_type_abs[$new_type_id]['type']) && $tab_tout_type_abs[$new_type_id]['type']=="conges") { $user_nb_jours_pris_float=(float) $new_nb_jours ; soustrait_solde_et_reliquat_user($user_login, "", $user_nb_jours_pris_float, $new_type_id, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin , $DEBUG); } $comment_log = "saisie conges par le responsable pour $user_login ($new_nb_jours jour(s)) type_conges = $new_type_id ( de $new_debut $new_demi_jour_deb a $new_fin $new_demi_jour_fin) ($new_comment)"; log_action(0, "", $user_login, $comment_log, $DEBUG); if($result) echo _('form_modif_ok') ."<br><br> \n"; else echo _('form_modif_not_ok') ."<br><br> \n"; } else { echo _('resp_traite_user_valeurs_not_ok') ."<br><br> \n"; } /* APPEL D'UNE AUTRE PAGE */ echo "<form action=\"$PHP_SELF?session=$session&onglet=traite_user&user_login=$user_login\" method=\"POST\"> \n"; echo "<input type=\"submit\" value=\"". _('form_retour') ."\">\n"; echo "</form> \n"; }
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 new_demande($new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type) { //conversion des dates $new_debut = convert_date($new_debut); $new_fin = convert_date($new_fin); $return = ''; $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); // 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 && \utilisateur\Fonctions::verif_solde_user($_SESSION['userlogin'], $new_type, $new_nb_jours); } if ($valid) { if (in_array(\utilisateur\Fonctions::get_type_abs($new_type), array('conges', 'conges_exceptionnels'))) { $resp_du_user = get_tab_resp_du_user($_SESSION['userlogin']); if (array_key_exists('conges', $resp_du_user) || empty($resp_du_user)) { $new_etat = 'ok'; soustrait_solde_et_reliquat_user($_SESSION['userlogin'], "", $new_nb_jours, $new_type, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin); } else { $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); if ($periode_num != 0) { $return .= schars(_('form_modif_ok')) . ' !<br><br>.'; //envoi d'un mail d'alerte au responsable (si demandé dans config de php_conges) if ($_SESSION['config']['mail_new_demande_alerte_resp']) { if (in_array(\utilisateur\Fonctions::get_type_abs($new_type), array('absences'))) { alerte_mail($_SESSION['userlogin'], ":responsable:", $periode_num, "new_absence"); } else { alerte_mail($_SESSION['userlogin'], ":responsable:", $periode_num, "new_demande"); } } } else { $return .= schars(_('form_modif_not_ok')) . ' !<br><br>.'; } } else { $return .= schars(_('resp_traite_user_valeurs_not_ok')) . ' !<br><br>.'; } $return .= '<a class="btn" href="' . $PHP_SELF . '?session=' . $session . '">' . _('form_retour') . '</a>'; 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>'; }