{ if($sql_motif_refus=="") $sql_motif_refus= _('divers_inconnu') ; echo '<br><i>".'.schars( _('divers_motif_annul') ).'." : '.schars($sql_motif_refus).'</i>'; } echo "</td>\n"; echo "<td>"; if($sql_etat=="refus") echo _('divers_refuse') ; elseif($sql_etat=="annul") echo _('divers_annule') ; else echo schars($sql_etat); echo "</td>\n"; echo '<td class="histo">'.($user_modif_mission).'</td>'."\n"; echo '<td class="histo">'.($user_suppr_mission).'</td>'."\n"; if($_SESSION['config']['affiche_date_traitement']) { echo '<td class="histo-left">'.schars( _('divers_demande') ).' : '.schars($sql_date_demande).'<br>'.schars( _('divers_traitement') ).' : '.schars($sql_date_traitement).'</td>'."\n" ; } echo "</tr>\n"; $i = !$i; } echo "</tbody>\n\n"; echo "</table>\n\n"; } echo "<br><br>\n";
echo "</td>\n"; if ($sql_p_etat == "refus") { if ($sql_p_motif_refus == "") { $sql_p_motif_refus = _('divers_inconnu'); } echo '<td class="histo">' . schars($sql_p_motif_refus) . '</td>' . "\n"; } elseif ($sql_p_etat == "annul") { if ($sql_p_motif_refus == "") { $sql_p_motif_refus = _('divers_inconnu'); } echo '<td class="histo">' . schars($sql_p_motif_refus) . '</td>' . "\n"; } elseif ($sql_p_etat == "ok") { if ($sql_p_motif_refus == "") { $sql_p_motif_refus = " "; } echo '<td class="histo">' . schars($sql_p_motif_refus) . '</td>' . "\n"; } echo "</td>\n"; if ($_SESSION['config']['affiche_date_traitement']) { echo '<td class="histo-left">' . schars(_('divers_demande')) . ' : ' . schars($sql_p_date_demande) . '<br>' . "\n"; $text_lang_a_afficher = "divers_traitement_{$sql_p_etat}"; // p_etat='ok' OR p_etat='refus' OR p_etat='annul' ..... echo schars(_($text_lang_a_afficher)) . ' : ' . schars($sql_p_date_traitement) . '</td>' . "\n"; } echo '</tr>'; $i = !$i; } echo "</tbody>\n\n"; echo "</table>\n\n"; } echo "<br><br>\n";
/** * Encapsule le comportement du module de l'historique des autres absences * * @param string $onglet Nom de l'onglet à afficher * @param string $session Clé de session * @param string $PHP_SELF * * @return void * @access public * @static */ public static function historiqueAutresAbsencesModule($onglet, $session, $PHP_SELF) { $return = ''; if ($_SESSION['config']['where_to_find_user_email'] == "ldap") { include_once CONFIG_PATH . 'config_ldap.php'; } $tri_date = getpost_variable('tri_date', "ascendant"); $year_affichage = getpost_variable('year_affichage', date("Y")); $return = '<h1>' . _('user_historique_abs') . ' :</h1>'; // affichage de l'année et des boutons de défilement $year_affichage_prec = $year_affichage - 1; $year_affichage_suiv = $year_affichage + 1; $return .= '<b>'; $return .= '<a href="' . $PHP_SELF . '?session=' . $session . '&onglet=historique_autres_absences&year_affichage=' . $year_affichage_prec . '"><<</a>'; $return .= '    ' . $year_affichage . '   '; $return .= '<a href="' . $PHP_SELF . '?session=' . $session . '&onglet=historique_autres_absences&year_affichage=' . $year_affichage_suiv . '">>></a>'; $return .= '</b><br><br>'; // Récupération des informations $sql4 = 'SELECT p_login, p_date_deb, p_demi_jour_deb, p_date_fin, p_demi_jour_fin, p_nb_jours, p_commentaire, p_type, p_etat, p_motif_refus, p_date_demande, p_date_traitement, p_num, ta_libelle FROM conges_periode as a, conges_type_absence as b WHERE a.p_login = "******" AND (a.p_type=b.ta_id) AND (b.ta_type=\'absences\') AND (p_date_deb LIKE \'' . intval($year_affichage) . '%\' OR p_date_fin LIKE \'' . intval($year_affichage) . '%\') '; if ($tri_date == "descendant") { $sql4 = $sql4 . " ORDER BY p_date_deb DESC "; } else { $sql4 = $sql4 . " ORDER BY p_date_deb ASC "; } $ReqLog4 = \includes\SQL::query($sql4); $count4 = $ReqLog4->num_rows; if ($count4 == 0) { $return .= '<b>' . _('user_abs_aucune_abs') . '</b><br>'; } else { // AFFICHAGE TABLEAU $return .= '<table cellpadding="2" class="tablo" width="80%">'; $return .= '<thead>'; $return .= '<tr>'; $return .= '<td>'; $return .= '<a href="' . $PHP_SELF . '?session=' . $session . '&onglet=' . $onglet . '&tri_date=descendant"><img src="' . TEMPLATE_PATH . 'img/1downarrow-16x16.png" width="16" height="16" border="0" title="trier"></a>'; $return .= _('divers_debut_maj_1'); $return .= '<a href="' . $PHP_SELF . '?session=' . $session . '&onglet=' . $onglet . '&tri_date=ascendant"><img src="' . TEMPLATE_PATH . 'img/1uparrow-16x16.png" width="16" height="16" border="0" title="trier"></a>'; $return .= '</td>'; $return .= '<td>' . _('divers_fin_maj_1') . '</td>'; $return .= '<td>' . _('user_abs_type') . '</td>'; $return .= '<td>' . _('divers_nb_jours_maj_1') . '</td>'; $return .= '<td>' . _('divers_comment_maj_1') . '</td>'; $return .= '<td>' . _('divers_etat_maj_1') . '</td>'; $return .= '<td></td><td></td>'; if ($_SESSION['config']['affiche_date_traitement']) { $return .= '<td>' . _('divers_date_traitement') . '</td>'; } $return .= '</tr>'; $return .= '</thead>'; $return .= '<tbody>'; $i = true; while ($resultat4 = $ReqLog4->fetch_array()) { $sql_login = $resultat4["p_login"]; $sql_date_deb = eng_date_to_fr($resultat4["p_date_deb"]); $sql_p_demi_jour_deb = $resultat4["p_demi_jour_deb"]; if ($sql_p_demi_jour_deb == "am") { $demi_j_deb = "mat"; } else { $demi_j_deb = "aprm"; } $sql_date_fin = eng_date_to_fr($resultat4["p_date_fin"]); $sql_p_demi_jour_fin = $resultat4["p_demi_jour_fin"]; if ($sql_p_demi_jour_fin == "am") { $demi_j_fin = "mat"; } else { $demi_j_fin = "aprm"; } $sql_nb_jours = affiche_decimal($resultat4["p_nb_jours"]); $sql_commentaire = $resultat4["p_commentaire"]; //$sql_type=$resultat4["p_type"]; $sql_type = $resultat4["ta_libelle"]; $sql_etat = $resultat4["p_etat"]; $sql_motif_refus = $resultat4["p_motif_refus"]; $sql_date_demande = $resultat4["p_date_demande"]; $sql_date_traitement = $resultat4["p_date_traitement"]; $sql_num = $resultat4["p_num"]; // si le user a le droit de saisir lui meme ses absences et qu'elle n'est pas deja annulee, on propose de modifier ou de supprimer if ($sql_etat != "annul" && $_SESSION['config']['user_saisie_mission']) { $user_modif_mission = "<a href=\"user_index.php?session={$session}&p_num={$sql_num}&onglet=modif_demande\">" . _('form_modif') . "</a>"; $user_suppr_mission = "<a href=\"user_index.php?session={$session}&p_num={$sql_num}&onglet=suppr_demande\">" . _('form_supprim') . "</a>"; } else { $user_modif_mission = " - "; $user_suppr_mission = " - "; } $return .= '<tr class="' . ($i ? 'i' : 'p') . '">'; $return .= '<td class="histo">' . schars($sql_date_deb) . ' _ ' . schars($demi_j_deb) . '</td>'; $return .= '<td class="histo">' . schars($sql_date_fin) . ' _ ' . schars($demi_j_fin) . '</td>'; $return .= '<td class="histo">' . schars($sql_type) . '</td>'; $return .= '<td class="histo">' . affiche_decimal($sql_nb_jours) . '</td>'; $return .= '<td class="histo">' . schars($sql_commentaire) . '</td>'; if ($sql_etat == "refus") { if ($sql_motif_refus == "") { $sql_motif_refus = _('divers_inconnu'); } $return .= '<br><i>".' . schars(_('divers_motif_refus')) . '." : ' . schars($sql_motif_refus) . '</i>'; } elseif ($sql_etat == "annul") { if ($sql_motif_refus == "") { $sql_motif_refus = _('divers_inconnu'); } $return .= '<br><i>".' . schars(_('divers_motif_annul')) . '." : ' . schars($sql_motif_refus) . '</i>'; } $return .= '</td>'; $return .= '<td>'; if ($sql_etat == "refus") { $return .= _('divers_refuse'); } elseif ($sql_etat == "annul") { $return .= _('divers_annule'); } else { $return .= schars($sql_etat); } $return .= '</td>'; $return .= '<td class="histo">' . $user_modif_mission . '</td>'; $return .= '<td class="histo">' . $user_suppr_mission . '</td>' . "\n"; if ($_SESSION['config']['affiche_date_traitement']) { $return .= '<td class="histo-left">' . schars(_('divers_demande')) . ' : ' . schars($sql_date_demande) . '<br>' . schars(_('divers_traitement')) . ' : ' . schars($sql_date_traitement) . '</td>'; } $return .= '</tr>'; $i = !$i; } $return .= '</tbody>'; $return .= '</table>'; } $return .= '<br><br>'; return $return; }
// si on peut modifier une demande :on defini le lien à afficher if( !$_SESSION['config']['interdit_modif_demande'] ) { //on ne peut pas modifier une demande qui a déja été validé une fois (si on utilise la double validation) if($sql_p_etat=="valid") $user_modif_demande=" "; else $user_modif_demande="<a href=\"user_index.php?session=$session&p_num=$sql_p_num&onglet=modif_demande\">". _('form_modif') ."</a>" ; } $user_suppr_demande="<a href=\"user_index.php?session=$session&p_num=$sql_p_num&onglet=suppr_demande\">". _('form_supprim') ."</a>" ; echo '<tr class="'.($i?'i':'p').'">'; echo '<td class="histo">'.schars($sql_p_date_deb).' _ '.schars($demi_j_deb).'</td>'; echo '<td class="histo">'.schars($sql_p_date_fin).' _ '.schars($demi_j_fin).'</td>' ; echo '<td class="histo">'.schars($sql_p_type).'</td>' ; echo '<td class="histo">'.affiche_decimal($sql_p_nb_jours).'</td>' ; echo '<td class="histo">'.schars($sql_p_commentaire).'</td>' ; if( !$_SESSION['config']['interdit_modif_demande'] ) { echo '<td class="histo">'.($user_modif_demande).'</td>' ; } echo '<td class="histo">'.($user_suppr_demande).'</td>'."\n" ; if( $_SESSION['config']['affiche_date_traitement'] ) { if($sql_p_date_demande == NULL) echo '<td class="histo-left">'. _('divers_demande') .' : '.$sql_p_date_demande.'<br>'. _('divers_traitement') .' : '.$sql_p_date_traitement.'</td>'; else echo '<td class="histo-left">'. _('divers_demande') .' : '.$sql_p_date_demande.'<br>'. _('divers_traitement') .' : pas traité</td>'; } echo '</tr>'; $i = !$i; } echo '</tbody>';
function saisie_dates_fermeture($year, $groupe_id, $new_date_debut, $new_date_fin, $code_erreur, $DEBUG = FALSE) { $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $tab_date_debut = explode("/", $new_date_debut); // date au format d/m/Y $timestamp_date_debut = mktime(0, 0, 0, $tab_date_debut[1], $tab_date_debut[0], $tab_date_debut[2]); $date_debut_yyyy_mm_dd = $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 $timestamp_date_fin = mktime(0, 0, 0, $tab_date_fin[1], $tab_date_fin[0], $tab_date_fin[2]); $date_fin_yyyy_mm_dd = $tab_date_fin[2] . "-" . $tab_date_fin[1] . "-" . $tab_date_fin[0]; $timestamp_today = mktime(0, 0, 0, date("m"), date("d"), date("Y")); // $year=$tab_date_debut[2]; // on construit le tableau de l'année considérée $tab_year = array(); get_tableau_jour_fermeture($year, $tab_year, $groupe_id, $DEBUG); if ($DEBUG) { echo "tab_year = "; print_r($tab_year); echo "<br>\n"; } /************************************************/ // GESTION DES ERREURS DE SAISIE : // // $code_erreur=1 ; // code erreur : jour feriés non saisis // $code_erreur=2 ; // code erreur : $new_date_debut est posterieure a $new_date_fin // $code_erreur=3 ; // code erreur : saisie de date passée // $code_erreur=4 ; // code erreur : saisie de aujourd'hui // $code_erreur=5 ; // code erreur : fermeture chevauche une periode deja saisie // on verifie que $new_date_debut est anterieure a $new_date_fin if ($code_erreur == 2) { echo "<br><center><h3><font color=\"red\">" . _('admin_jours_fermeture_dates_incompatibles') . ".</font></h3></center><br><br>\n"; } // on verifie que ce ne sont pas des dates passées if ($code_erreur == 3) { echo "<br><center><h3><font color=\"red\">" . _('admin_jours_fermeture_date_passee_error') . ".</font></h3></center><br><br>\n"; } // on verifie si les jours fériés de l'annee de la periode saisie sont enregistrés : sinon BUG au calcul des soldes des users ! if ($code_erreur == 1) { echo "<br><center><h3><font color=\"red\">" . _('admin_jours_fermeture_annee_non_saisie') . ".</font></h3></center><br><br>\n"; } // on verifie si la periode saisie ne chevauche pas une : // fabrication et initialisation du tableau des demi-jours de la date_debut à la date_fin if ($code_erreur == 4) { echo "<br><center><h3><font color=\"red\">" . _('admin_jours_fermeture_fermeture_aujourd_hui') . ".</font></h3></center><br><br>\n"; } if ($code_erreur == 5) { echo "<br><center><h3><font color=\"red\">" . _('admin_jours_fermeture_chevauche_periode') . ".</font></h3></center><br><br>\n"; } /************************************************/ // FORMULAIRE DE SAISIE D'UNE NOUVELLE FERMETURE + liens de navigation d'une annee a l'autre echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\"width=\"100%\">\n"; echo "<tr align=\"center\">\n"; // cellulle de gauche : bouton annee precedente echo "<td align=\"left\">\n"; $annee_precedente = $year - 1; echo '<a href="' . schars($PHP_SELF) . '?session=' . schars($session) . '&year=' . schars($annee_precedente) . '&groupe_id=' . schars($groupe_id) . '"> << ' . schars(_('admin_jours_chomes_annee_precedente')) . '</a>' . "\n"; echo "</td>\n"; // cellulle centrale : saisie d'une fermeture echo "<td width=\"450\">\n"; echo "<fieldset class=\"cal_saisie\">\n"; echo "<legend class=\"boxlogin\">" . _('admin_jours_fermeture_new_fermeture') . "</legend>\n"; /************************************************/ // FORMULAIRE echo "<form action=\"{$PHP_SELF}?session={$session}\" method=\"POST\">\n"; /************************************************/ // table contenant le fieldset echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n"; echo "<tr align=\"center\">\n"; echo "<td>\n"; echo "<fieldset class=\"cal_saisie\">\n"; // tableau contenant saisie de date (avec javascript pour afficher les calendriers) echo "<table cellpadding=\"2\" cellspacing=\"2\" border=\"0\">\n"; echo "<tr align=\"center\">\n"; echo "<td>\n"; echo _('divers_date_debut') . " : <input type=\"text\" name=\"new_date_debut\" class=\"calendrier DatePicker_trigger\" value=\"{$new_date_debut}\" />\n"; echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "</fieldset>\n"; echo "</td>\n"; echo "<td>\n"; echo "<fieldset class=\"cal_saisie\">\n"; // tableau contenant les mois echo "<table cellpadding=\"2\" cellspacing=\"2\" border=\"0\">\n"; // ligne des boutons de défilement echo "<tr align=\"center\">\n"; echo "<td>\n"; echo _('divers_date_fin') . " : <input type=\"text\" name=\"new date_fin\" class=\"calendrier DatePicker_trigger\" value=\"{$new_date_fin}\" />\n"; echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "</fieldset>\n"; echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; /************************************************/ // SELECTION DU TYPE DE CONGES AUQUEL AFFECTER CETTE FERMETURE echo "<br>\n"; // Affichage d'un SELECT de formulaire pour choix d'un type d'absence echo _('admin_jours_fermeture_affect_type_conges'); affiche_select_conges_id($DEBUG); /************************************************/ //table contenant les boutons echo "<table cellpadding=\"2\" cellspacing=\"3\" border=\"0\" >\n"; echo "<tr align=\"center\">\n"; echo "<td>\n"; echo "<input type=\"hidden\" name=\"groupe_id\" value=\"{$groupe_id}\">\n"; echo "<input type=\"hidden\" name=\"choix_action\" value=\"commit_new_fermeture\">\n"; echo "<input type=\"submit\" value=\"" . _('form_submit') . "\"> \n"; echo "<input type=\"button\" value=\"" . _('form_cancel') . "\" onClick=\"javascript:window.close();\">\n"; echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "</form>\n"; // FIN FORMULAIRE echo "</fieldset>\n"; echo "</td>\n"; // cellulle de droite : bouton annee suivante echo "<td align=\"right\">\n"; $annee_suivante = $year + 1; echo "<a href=\"{$PHP_SELF}?session={$session}&year={$annee_suivante}&groupe_id={$groupe_id}\">" . _('admin_jours_chomes_annee_suivante') . " >> </a>\n"; echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; /************************************************/ // HISTORIQUE DES FERMETURES $tab_periodes_fermeture = array(); get_tableau_periodes_fermeture($tab_periodes_fermeture, $groupe_id, $DEBUG); if (count($tab_periodes_fermeture) != 0) { echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n"; echo "<tr align=\"center\">\n"; echo "<td>\n"; echo "<fieldset class=\"cal_saisie\">\n"; echo "<legend class=\"boxlogin\">" . _('admin_jours_fermeture_enregistrees') . "</legend>\n"; // tableau contenant saisie de date (avec javascript pour afficher les calendriers) echo "<table class=\"histo\">\n"; foreach ($tab_periodes_fermeture as $tab_periode) { $date_affiche_1 = eng_date_to_fr($tab_periode['date_deb']); $date_affiche_2 = eng_date_to_fr($tab_periode['date_fin']); $fermeture_id = $tab_periode['fermeture_id']; echo "<tr align=\"center\">\n"; echo "<td>\n"; echo _('divers_du') . " <b>{$date_affiche_1}</b> " . _('divers_au') . " <b>{$date_affiche_2}</b> (id {$fermeture_id})\n"; echo "</td>\n"; echo "<td>\n"; echo "<a href=\"{$PHP_SELF}?session={$session}&choix_action=annul_fermeture&fermeture_id={$fermeture_id}&fermeture_date_debut={$date_affiche_1}&fermeture_date_fin={$date_affiche_2}\">" . _('admin_annuler_fermeture') . "</a>\n"; echo "</td>\n"; echo "</tr>\n"; } echo "</table>\n"; echo "</fieldset>\n"; echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; } /************************************************/ // CALENDRIER DES FERMETURES echo "<br><br>\n"; affiche_calendrier_fermeture($year, $tab_year, $DEBUG); }
function echange_absence_rtt($onglet, $new_debut_string, $new_fin_string, $new_comment, $moment_absence_ordinaire, $moment_absence_souhaitee, $DEBUG = FALSE) { //$DEBUG=TRUE; $PHP_SELF = $_SERVER['PHP_SELF']; $session = session_id(); $duree_demande_1 = ""; $duree_demande_2 = ""; $valid = TRUE; // verif si les dates sont renseignées (si ce n'est pas le cas, on ne verifie meme pas la suite !) // $new_debut et $new_fin sont des string au format : $year-$mois-$jour-X (avec X = j pour "jour entier", a pour "a" (matin), et p pour "pm" (apres midi) ) if ($new_debut_string == "" || $new_fin_string == "") { $valid = FALSE; } else { $date_1 = explode("-", $new_debut_string); $year_debut = $date_1[0]; $mois_debut = $date_1[1]; $jour_debut = $date_1[2]; $demi_jour_debut = $date_1[3]; $new_debut = "{$year_debut}-{$mois_debut}-{$jour_debut}"; $date_2 = explode("-", $new_fin_string); $year_fin = $date_2[0]; $mois_fin = $date_2[1]; $jour_fin = $date_2[2]; $demi_jour_fin = $date_2[3]; $new_fin = "{$year_fin}-{$mois_fin}-{$jour_fin}"; /********************************************/ // traitement du jour d'absence à remplacer // verif de la concordance des demandes avec l'existant, et affectation de valeurs à entrer dans la database if ($demi_jour_debut == "j") { if ($moment_absence_ordinaire == "j") { $nouvelle_presence_date_1 = "J"; $nouvelle_absence_date_1 = "N"; $duree_demande_1 = "jour"; } elseif ($moment_absence_ordinaire == "a") { $nouvelle_presence_date_1 = "M"; $nouvelle_absence_date_1 = "A"; $duree_demande_1 = "demi"; } elseif ($moment_absence_ordinaire == "p") { $nouvelle_presence_date_1 = "A"; $nouvelle_absence_date_1 = "M"; $duree_demande_1 = "demi"; } } elseif ($demi_jour_debut == "a") { if ($moment_absence_ordinaire == "j") { $nouvelle_presence_date_1 = "J"; $nouvelle_absence_date_1 = "N"; $duree_demande_1 = "demi"; } elseif ($moment_absence_ordinaire == "a") { if ($new_debut == $new_fin) { $nouvelle_presence_date_1 = "M"; $nouvelle_absence_date_1 = "A"; } else { $nouvelle_presence_date_1 = "J"; $nouvelle_absence_date_1 = "N"; } $duree_demande_1 = "demi"; } elseif ($moment_absence_ordinaire == "p") { if ($DEBUG) { echo "false_1<br>\n"; } $valid = FALSE; } } elseif ($demi_jour_debut == "p") { if ($moment_absence_ordinaire == "j") { $nouvelle_presence_date_1 = "J"; $nouvelle_absence_date_1 = "N"; $duree_demande_1 = "demi"; } elseif ($moment_absence_ordinaire == "a") { if ($DEBUG) { echo "false_2<br>\n"; } $valid = FALSE; } elseif ($moment_absence_ordinaire == "p") { if ($new_debut == $new_fin) { $nouvelle_presence_date_1 = "A"; $nouvelle_absence_date_1 = "M"; } else { $nouvelle_presence_date_1 = "J"; $nouvelle_absence_date_1 = "N"; } $duree_demande_1 = "demi"; } } else { $valid = FALSE; } /**********************************************/ // traitement du jour de présence à remplacer // verif de la concordance des demandes avec l'existant, et affectation de valeurs à entrer dans la database if ($demi_jour_fin == "j") { if ($moment_absence_souhaitee == "j") { $nouvelle_presence_date_2 = "N"; $nouvelle_absence_date_2 = "J"; $duree_demande_2 = "jour"; } elseif ($moment_absence_souhaitee == "a") { $nouvelle_presence_date_2 = "A"; $nouvelle_absence_date_2 = "M"; $duree_demande_2 = "demi"; } elseif ($moment_absence_souhaitee == "p") { $nouvelle_presence_date_2 = "M"; $nouvelle_absence_date_2 = "A"; $duree_demande_2 = "demi"; } } elseif ($demi_jour_fin == "a") { if ($moment_absence_souhaitee == "j") { $nouvelle_presence_date_2 = "N"; $nouvelle_absence_date_2 = "J"; $duree_demande_2 = "demi"; } elseif ($moment_absence_souhaitee == "a") { if ($new_debut == $new_fin) { $nouvelle_presence_date_2 = "A"; $nouvelle_absence_date_2 = "M"; } else { $nouvelle_presence_date_2 = "N"; $nouvelle_absence_date_2 = "j"; } $duree_demande_2 = "demi"; } elseif ($moment_absence_souhaitee == "p") { if ($DEBUG) { echo "false_3<br>\n"; } $valid = FALSE; } } elseif ($demi_jour_fin == "p") { if ($moment_absence_souhaitee == "j") { $nouvelle_presence_date_2 = "N"; $nouvelle_absence_date_2 = "J"; $duree_demande_2 = "demi"; } elseif ($moment_absence_souhaitee == "a") { if ($DEBUG) { echo "false_4<br>\n"; } $valid = FALSE; } elseif ($moment_absence_souhaitee == "p") { if ($new_debut == $new_fin) { $nouvelle_presence_date_2 = "M"; $nouvelle_absence_date_2 = "A"; } else { $nouvelle_presence_date_2 = "N"; $nouvelle_absence_date_2 = "J"; } $duree_demande_2 = "demi"; } } else { if ($DEBUG) { echo "false_5<br>\n"; } $valid = FALSE; } if ($DEBUG) { echo schars($new_debut) . ' - ' . schars($demi_jour_debut) . ' :: ' . schars($new_fin) . ' - ' . schars($demi_jour_fin) . '<br>' . "\n"; echo schars($duree_demande_1) . ' :: ' . schars($duree_demande_2) . '<br>' . "\n"; } // verif de la concordance des durée (journée avec journée ou 1/2 journée avec1/2 journée) if ($duree_demande_1 == "" || $duree_demande_2 == "" || $duree_demande_1 != $duree_demande_2) { $valid = FALSE; } } if ($valid) { echo schars($_SESSION['userlogin']) . ' --- ' . schars($new_debut) . ' --- ' . schars($new_fin) . ' --- ' . schars($new_comment) . '<br>' . "\n"; // insert du jour d'absence ordinaire (qui n'en sera plus un ou qu'a moitie ...) // e_presence = N (non) , J (jour entier) , M (matin) ou A (apres-midi) // verif si le couple user/date1 existe dans conges_echange_rtt ... $sql_verif_echange1 = 'SELECT e_absence, e_presence from conges_echange_rtt WHERE e_login=\'' . SQL::quote($_SESSION['userlogin']) . '\' AND e_date_jour=\'' . SQL::quote($new_debut) . '\';'; $result_verif_echange1 = SQL::query($sql_verif_echange1); $count_verif_echange1 = $result_verif_echange1->num_rows; // si le couple user/date1 existe dans conges_echange_rtt : on update if ($count_verif_echange1 != 0) { $new_comment = addslashes($new_comment); //$resultat1=$result_verif_echange1->fetch_array(); //if($resultatverif_echange1['e_absence'] == 'N' ) $sql1 = 'UPDATE conges_echange_rtt SET e_absence=\'' . $nouvelle_absence_date_1 . '\', e_presence=\'' . $nouvelle_presence_date_1 . '\', e_comment=\'' . $new_comment . '\' WHERE e_login=\'' . $_SESSION['userlogin'] . '\' AND e_date_jour=\'' . SQL::quote($new_debut) . '\' '; } else { $sql1 = "INSERT into conges_echange_rtt (e_login, e_date_jour, e_absence, e_presence, e_comment)\n\t\t\t\t\tVALUES ('" . $_SESSION['userlogin'] . "','{$new_debut}','{$nouvelle_absence_date_1}', '{$nouvelle_presence_date_1}', '{$new_comment}')"; } $result1 = SQL::query($sql1); // insert du jour d'absence souhaité (qui en devient un) // e_absence = N (non) , J (jour entier) , M (matin) ou A (apres-midi) // verif si le couple user/date2 existe dans conges_echange_rtt ... $sql_verif_echange2 = 'SELECT e_absence, e_presence from conges_echange_rtt WHERE e_login=\'' . SQL::quote($_SESSION['userlogin']) . '\' AND e_date_jour=\'' . SQL::quote($new_fin) . '\';'; $result_verif_echange2 = SQL::query($sql_verif_echange2); $count_verif_echange2 = $result_verif_echange2->num_rows; // si le couple user/date2 existe dans conges_echange_rtt : on update if ($count_verif_echange2 != 0) { $sql2 = 'UPDATE conges_echange_rtt SET e_absence=\'' . $nouvelle_absence_date_2 . '\', e_presence=\'' . $nouvelle_presence_date_2 . '\', e_comment=\'' . $new_comment . '\' WHERE e_login=\'' . $_SESSION['userlogin'] . '\' AND e_date_jour=\'' . $new_fin . '\' '; } else { $sql2 = "INSERT into conges_echange_rtt (e_login, e_date_jour, e_absence, e_presence, e_comment)\n\t\t\t\t\tVALUES ('" . $_SESSION['userlogin'] . "','{$new_fin}','{$nouvelle_absence_date_2}', '{$nouvelle_presence_date_2}', '{$new_comment}')"; } $result2 = SQL::query($sql2); $comment_log = "echange absence - rtt ({$new_debut_string} / {$new_fin_string})"; log_action(0, "", $_SESSION['userlogin'], $comment_log, $DEBUG); if ($result1 && $result2) { echo " Changements pris en compte avec succes !<br><br> \n"; } else { echo " ERREUR ! Une erreur s'est produite : contactez votre responsable !<br><br> \n"; } } else { echo " ERREUR ! Les valeurs saisies sont invalides ou manquantes !!!<br><br> \n"; } /* RETOUR PAGE PRINCIPALE */ echo " <form action=\"{$PHP_SELF}?session={$session}&onglet={$onglet}\" method=\"POST\"> \n"; echo "<input type=\"submit\" value=\"Retour\">\n"; echo " </form> \n"; }
function verif_solde_user($user_login, $type_conges, $nb_jours, $DEBUG = FALSE) { $verif = TRUE; // on ne tient compte du solde que pour les absences de type conges (conges avec solde annuel) if (get_type_abs($type_conges, $DEBUG) == "conges") { // recup du solde de conges de type $type_conges pour le user de login $user_login $select_solde = 'SELECT su_solde FROM conges_solde_user WHERE su_login=\'' . SQL::quote($user_login) . '\' AND su_abs_id=' . SQL::quote($type_conges); $ReqLog_solde_conges = SQL::query($select_solde); $resultat_solde = $ReqLog_solde_conges->fetch_array(); $sql_solde_user = $resultat_solde["su_solde"]; // recup du nombre de jours de conges de type $type_conges pour le user de login $user_login qui sont à valider par son resp ou le grd resp $select_solde_a_valider = 'SELECT SUM(p_nb_jours) FROM conges_periode WHERE p_login=\'' . SQL::quote($user_login) . '\' AND p_type=' . SQL::quote($type_conges) . ' AND (p_etat=\'demande\' OR p_etat=\'valid\') '; $ReqLog_solde_conges_a_valider = SQL::query($select_solde_a_valider); $resultat_solde_a_valider = $ReqLog_solde_conges_a_valider->fetch_array(); $sql_solde_user_a_valider = $resultat_solde_a_valider["SUM(p_nb_jours)"]; if ($sql_solde_user_a_valider == NULL) { $sql_solde_user_a_valider = 0; } // vérification du solde de jours de type $type_conges if ($sql_solde_user < $nb_jours + $sql_solde_user_a_valider) { echo '<p class="bg-danger">' . schars(_('verif_solde_erreur_part_1')) . ' (' . (double) schars($nb_jours) . ') ' . schars(_('verif_solde_erreur_part_2')) . ' (' . (double) schars($sql_solde_user) . ') ' . schars(_('verif_solde_erreur_part_3')) . ' (' . (double) schars($sql_solde_user_a_valider) . ')</p>' . "\n"; $verif = FALSE; } } return $verif; }