コード例 #1
0
        // 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) {
コード例 #2
0
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);
}