{
					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";
Example #3
0
 /**
  * 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 .= '&nbsp&nbsp&nbsp ' . $year_affichage . '&nbsp&nbsp&nbsp';
     $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="&nbsp;";
				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;
}