// on verifie si la periode saisie ne chevauche pas une periode existante if (verif_periode_chevauche_periode_groupe($date_debut_yyyy_mm_dd, $date_fin_yyyy_mm_dd, '', $tab_periode_calcul, $groupe_id, $DEBUG)) { $code_erreur = 5; // code erreur : fermeture chevauche une periode deja saisie $choix_action = "saisie_dates"; } } } if ($onglet == 'calendar') { // les jours fériés de l'annee de la periode saisie ne sont pas enregistrés if ($code_erreur == 1) { echo "<div class=\"alert alert-danger\">" . _('admin_jours_fermeture_annee_non_saisie') . "</div>\n"; } /************************************************/ // CALENDRIER DES FERMETURES affiche_calendrier_fermeture($year, $DEBUG); } elseif ($choix_action == "saisie_dates") { if ($groupe_id == "") { // choix du groupe n'a pas été fait ($_SESSION['config']['fermeture_par_groupe']==FALSE) $groupe_id = 0; } // $new_date_debut est anterieure a $new_date_fin if ($code_erreur == 2) { echo "<div class=\"alert alert-danger\">" . _('admin_jours_fermeture_dates_incompatibles') . "</div>\n"; } // ce ne sont des dates passées if ($code_erreur == 3) { echo "<div class=\"alert alert-danger\">" . _('admin_jours_fermeture_date_passee_error') . "</div>\n"; } // fermeture le jour même impossible if ($code_erreur == 4) {
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); }