function bulletin($tab_moy, $current_eleve_login, $compteur, $total, $periode1, $periode2, $nom_periode, $gepiYear, $id_classe, $affiche_rang, $test_coef, $affiche_categories, $couleur_lignes = NULL)
{
    //global $nb_notes,$nombre_eleves,$type_etablissement,$type_etablissement2;
    global $nb_notes, $type_etablissement, $type_etablissement2;
    global $display_moy_gen;
    global $affiche_coef;
    global $bull_intitule_app;
    global $affiche_deux_moy_gen;
    global $affiche_colonne_moy_classe;
    //$affiche_colonne_moy_classe="n";
    global $gepi_denom_mention;
    if ($gepi_denom_mention == '') {
        $gepi_denom_mention = "mention";
    }
    //=========================
    global $utilisation_tablekit;
    if ($periode1 != $periode2) {
        //unset($utilisation_tablekit);
        $utilisation_tablekit = "no";
    }
    //=========================
    // Pour éviter dans bulletin() d'afficher le lien vers saisie_avis2.php depuis la page saisie_avis2.php
    global $temoin_page_courante;
    global $bull_simp_larg_tab, $bull_simp_larg_col1, $bull_simp_larg_col2, $bull_simp_larg_col3, $bull_simp_larg_col4;
    global $themessage;
    if (!isset($themessage) || $themessage == "") {
        $themessage = "Des saisies n\\'ont pas été enregistrées. Voulez-vous vraiment quitter sans enregistrer ?";
    }
    $alt = 1;
    // Initialisation des tableaux
    // $tab_afficher_liens_modif_app[$id_groupe][$num_per]
    // $tab_afficher_liens_valider_modif_app[$loop_per]
    //$tab_afficher_liens_modif_app=array();
    //$tab_afficher_liens_valider_modif_app=array();
    $tmp_tab = afficher_liens_modif_app($id_classe, $periode1, $periode2);
    $tab_afficher_liens_modif_app = $tmp_tab[0];
    $tab_afficher_liens_valider_modif_app = $tmp_tab[1];
    $afficher_proposition_correction = "n";
    if (count($tab_afficher_liens_modif_app) > 0) {
        $afficher_proposition_correction = "y";
    }
    /*
    echo "<pre>";
    print_r($tab_afficher_liens_modif_app);
    echo "</pre>";
    */
    $tab_statuts_signalement_faute_autorise = array('administrateur', 'professeur', 'cpe', 'scolarite');
    $afficher_signalement_faute = "n";
    if (in_array($_SESSION['statut'], $tab_statuts_signalement_faute_autorise)) {
        if ($_SESSION['statut'] == 'professeur' && mb_substr(getSettingValue('autoriser_signalement_faute_app_prof'), 0, 1) == 'y') {
            $afficher_signalement_faute = "y";
        } elseif ($_SESSION['statut'] == 'professeur' && mb_substr(getSettingValue('autoriser_signalement_faute_app_pp'), 0, 1) == 'y') {
            // Tester si le prof est pp de la classe
            if (is_pp($_SESSION['login'], $id_classe)) {
                $afficher_signalement_faute = "y";
            }
        } elseif ($_SESSION['statut'] == 'scolarite' && mb_substr(getSettingValue('autoriser_signalement_faute_app_scol'), 0, 1) == 'y') {
            $afficher_signalement_faute = "y";
        } elseif ($_SESSION['statut'] == 'cpe' && mb_substr(getSettingValue('autoriser_signalement_faute_app_cpe'), 0, 1) == 'y') {
            $afficher_signalement_faute = "y";
        }
    }
    if ($afficher_signalement_faute == 'y' || $afficher_proposition_correction == "y") {
        // A N'INSERER QUE POUR LES COMPTES DE PERSONNELS... de façon à éviter de donner les mails des profs à des élèves
        if (!isset($necessaire_signalement_fautes_insere) || $necessaire_signalement_fautes_insere == "n") {
            lib_signalement_fautes();
        }
        global $signalement_id_groupe;
        $envoi_mail_actif = getSettingValue('envoi_mail_actif');
    }
    global $mysqli;
    $tab_modif_app_proposees = array();
    $tab_mes_groupes = array();
    if ($_SESSION['statut'] == 'professeur') {
        //$tab_mes_groupes=array();
        $sql = "SELECT jgp.id_groupe FROM j_groupes_professeurs jgp WHERE login = '******'login'] . "';";
        //echo "$sql<br />";
        $res = mysqli_query($GLOBALS["mysqli"], $sql);
        if (mysqli_num_rows($res) > 0) {
            while ($lig = mysqli_fetch_object($res)) {
                $tab_mes_groupes[] = $lig->id_groupe;
                $sql = "SELECT * FROM matieres_app_corrections WHERE id_groupe='{$lig->id_groupe}';";
                $res_mad = mysqli_query($mysqli, $sql);
                if ($res_mad->num_rows > 0) {
                    while ($lig_mad = $res_mad->fetch_object()) {
                        $tab_modif_app_proposees[$lig_mad->id_groupe][$lig_mad->periode][$lig_mad->login] = $lig_mad->appreciation;
                    }
                }
            }
        }
        if (getSettingAOui('visuCorrectionsAppProposeesProfs')) {
            $sql = "SELECT DISTINCT ma.* FROM matieres_app_corrections ma,j_groupes_classes jgc WHERE jgc.id_groupe=ma.id_groupe AND jgc.id_classe='{$id_classe}';";
            //echo "$sql<br />";
            $res_mad = mysqli_query($mysqli, $sql);
            if ($res_mad->num_rows > 0) {
                while ($lig_mad = $res_mad->fetch_object()) {
                    $tab_modif_app_proposees[$lig_mad->id_groupe][$lig_mad->periode][$lig_mad->login] = $lig_mad->appreciation;
                }
            }
        }
        if (!isset($necessaire_corriger_appreciation_insere) || $necessaire_corriger_appreciation_insere == "n") {
            lib_corriger_appreciation();
        }
        global $corriger_app_id_groupe;
        //global $tab_mes_groupes;
        /*
        echo "tab_mes_groupes:<pre>";
        print_r($tab_mes_groupes);
        echo "</pre>";
        */
    } elseif ($_SESSION['statut'] == 'scolarite') {
        $sql = "SELECT DISTINCT ma.* FROM matieres_app_corrections ma,j_groupes_classes jgc WHERE jgc.id_groupe=ma.id_groupe AND jgc.id_classe='{$id_classe}';";
        //echo "$sql<br />";
        $res_mad = mysqli_query($mysqli, $sql);
        if ($res_mad->num_rows > 0) {
            while ($lig_mad = $res_mad->fetch_object()) {
                $tab_modif_app_proposees[$lig_mad->id_groupe][$lig_mad->periode][$lig_mad->login] = $lig_mad->appreciation;
            }
        }
        if (getSettingAOui('AccesModifAppreciationScol')) {
            if (!isset($necessaire_corriger_appreciation_insere) || $necessaire_corriger_appreciation_insere == "n") {
                lib_corriger_appreciation();
            }
        }
    }
    // données requise :
    //- le login de l'élève    : $current_eleve_login
    //- $compteur : compteur
    //- $total : nombre total d'élèves
    //- $periode1 : numéro de la première période à afficher
    //- $periode2 : numéro de la dernière période à afficher
    //- $nom_periode : tableau des noms de période
    //- $gepiYear : année
    //- $id_classe : identifiant de la classe.
    //==========================================================
    // AJOUT: boireaus 20080218
    //        Dispositif de restriction des accès aux appréciations pour les comptes responsables/eleves
    //echo "\$_SESSION['statut']=".$_SESSION['statut']."<br />";
    //echo "\$periode1=$periode1<br />";
    //echo "\$periode2=$periode2<br />";
    unset($tab_acces_app);
    $tab_acces_app = array();
    $tab_acces_app = acces_appreciations($periode1, $periode2, $id_classe);
    //==========================================================
    $nb_periodes = $periode2 - $periode1 + 1;
    $on_continue = "yes";
    if ($nb_periodes == 1) {
        // S'il n'est demandé qu'une seule période:
        // Test pour savoir si l'élève appartient à la classe pour la période considérée
        $test_eleve_app = sql_query1("select count(login) from j_eleves_classes where login='******' and id_classe='" . $id_classe . "' and periode='" . $periode1 . "'");
        if ($test_eleve_app == 0) {
            $on_continue = "no";
        }
    }
    if ($on_continue == 'yes') {
        // Mis hors de la fonction
        //$affiche_coef=sql_query1("SELECT display_coef FROM classes WHERE id='".$id_classe."'");
        //echo "\$affiche_categories=$affiche_categories<br />";
        $data_eleve = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM eleves WHERE login='******'");
        // Récupération du champ auto_increment
        $current_id_eleve = old_mysql_result($data_eleve, 0, "id_eleve");
        $current_eleve_nom = old_mysql_result($data_eleve, 0, "nom");
        $current_eleve_prenom = old_mysql_result($data_eleve, 0, "prenom");
        $current_eleve_sexe = old_mysql_result($data_eleve, 0, "sexe");
        $current_eleve_naissance = old_mysql_result($data_eleve, 0, "naissance");
        $current_eleve_naissance = affiche_date_naissance($current_eleve_naissance);
        $current_eleve_elenoet = old_mysql_result($data_eleve, 0, "elenoet");
        $data_profsuivi = mysqli_query($GLOBALS["mysqli"], "SELECT u.login FROM utilisateurs u, j_eleves_professeurs j WHERE (j.login='******' AND j.professeur = u.login AND j.id_classe='{$id_classe}') ");
        $current_eleve_profsuivi_login = @old_mysql_result($data_profsuivi, 0, "login");
        echo "<input type='hidden' name='nom_prenom_eleve[{$current_id_eleve}]' id='nom_prenom_eleve_{$current_id_eleve}' value=\"{$current_eleve_nom} {$current_eleve_prenom}\" />\n";
        $data_etab = mysqli_query($GLOBALS["mysqli"], "SELECT e.* FROM etablissements e, j_eleves_etablissements j WHERE (j.id_eleve ='{$current_eleve_elenoet}' AND e.id = j.id_etablissement) ");
        $current_eleve_etab_id = @old_mysql_result($data_etab, 0, "id");
        $current_eleve_etab_nom = @old_mysql_result($data_etab, 0, "nom");
        $current_eleve_etab_niveau = @old_mysql_result($data_etab, 0, "niveau");
        $current_eleve_etab_type = @old_mysql_result($data_etab, 0, "type");
        $current_eleve_etab_cp = @old_mysql_result($data_etab, 0, "cp");
        $current_eleve_etab_ville = @old_mysql_result($data_etab, 0, "ville");
        if ($current_eleve_etab_niveau != '') {
            foreach ($type_etablissement as $type_etab => $nom_etablissement) {
                if ($current_eleve_etab_niveau == $type_etab) {
                    $current_eleve_etab_niveau_nom = $nom_etablissement;
                }
            }
            if ($current_eleve_etab_cp == 0) {
                $current_eleve_etab_cp = '';
            }
            if ($current_eleve_etab_type == 'aucun') {
                $current_eleve_etab_type = '';
            } else {
                $current_eleve_etab_type = $type_etablissement2[$current_eleve_etab_type][$current_eleve_etab_niveau];
            }
        }
        $classe_eleve = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM classes WHERE id='{$id_classe}'");
        $current_eleve_classe = old_mysql_result($classe_eleve, 0, "classe");
        $id_classe = old_mysql_result($classe_eleve, 0, "id");
        $regime_doublant_eleve = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM j_eleves_regime WHERE login = '******'");
        $current_eleve_regime = old_mysql_result($regime_doublant_eleve, 0, "regime");
        $current_eleve_doublant = old_mysql_result($regime_doublant_eleve, 0, "doublant");
        //-------------------------------
        // On affiche l'en-tête : Les données de l'élève
        //-------------------------------
        echo "<span class='bull_simpl'><span class='bold'>{$current_eleve_nom} {$current_eleve_prenom}</span>";
        if ($current_eleve_sexe == "M") {
            echo ", né le {$current_eleve_naissance}";
        } else {
            echo ", née le {$current_eleve_naissance}";
        }
        if ($current_eleve_regime == "d/p") {
            echo ",&nbsp;demi-pensionnaire";
        }
        if ($current_eleve_regime == "ext.") {
            echo ",&nbsp;externe";
        }
        if ($current_eleve_regime == "int.") {
            echo ",&nbsp;interne";
        }
        if ($current_eleve_regime == "i-e") {
            if ($current_eleve_sexe == "M") {
                echo ",&nbsp;interne&nbsp;externé";
            } else {
                echo ",&nbsp;interne&nbsp;externée";
            }
        }
        if ($current_eleve_doublant == 'R') {
            if ($current_eleve_sexe == "M") {
                echo ", <b>redoublant</b>";
            } else {
                echo ", <b>redoublante</b>";
            }
        }
        echo "&nbsp;&nbsp;-&nbsp;&nbsp;Classe de {$current_eleve_classe}, année scolaire {$gepiYear}<br />\n";
        if ($current_eleve_etab_nom != '') {
            echo "Etablissement d'origine : ";
            if ($current_eleve_etab_id != '990') {
                echo "{$current_eleve_etab_niveau_nom} {$current_eleve_etab_type} {$current_eleve_etab_nom} ({$current_eleve_etab_cp} {$current_eleve_etab_ville})<br />\n";
            } else {
                echo "hors de France<br />\n";
            }
        }
        if ($periode1 < $periode2) {
            echo "Résultats de : ";
            $nb = $periode1;
            while ($nb < $periode2 + 1) {
                echo $nom_periode[$nb];
                if ($nb < $periode2) {
                    echo " - ";
                }
                $nb++;
            }
            echo ".</span>";
        } else {
            $temp = my_strtolower($nom_periode[$periode1]);
            echo "Résultats du {$temp}.</span>";
        }
        //
        //-------------------------------
        // Fin de l'en-tête
        // Initialisation de variable pour le cas où un élève n'est dans aucun enseignement sur une période
        $style_bordure_cell = "border: 1px solid black; border-top: 1px dashed black; border-bottom: 1px dashed black;";
        // On initialise le tableau :
        $bull_simp_larg_tab_defaut = 680;
        $bull_simp_larg_col1_defaut = 120;
        $bull_simp_larg_col2_defaut = 38;
        $bull_simp_larg_col3_defaut = 38;
        $bull_simp_larg_col4_defaut = 20;
        $larg_tab = $bull_simp_larg_tab_defaut;
        $larg_col1 = $bull_simp_larg_col1_defaut;
        $larg_col2 = $bull_simp_larg_col3_defaut;
        $larg_col3 = $bull_simp_larg_col3_defaut;
        $larg_col4 = $bull_simp_larg_col4_defaut;
        if (preg_match("/^[0-9]{1,}\$/", $bull_simp_larg_tab)) {
            $larg_tab = $bull_simp_larg_tab;
        }
        if (preg_match("/^[0-9]{1,}\$/", $bull_simp_larg_col1)) {
            $larg_col1 = $bull_simp_larg_col1;
        }
        if (preg_match("/^[0-9]{1,}\$/", $bull_simp_larg_col2)) {
            $larg_col2 = $bull_simp_larg_col2;
        }
        if (preg_match("/^[0-9]{1,}\$/", $bull_simp_larg_col3)) {
            $larg_col3 = $bull_simp_larg_col3;
        }
        if (preg_match("/^[0-9]{1,}\$/", $bull_simp_larg_col4)) {
            $larg_col4 = $bull_simp_larg_col4;
        }
        if ($bull_simp_larg_tab < $bull_simp_larg_col1 + $bull_simp_larg_col2 + $bull_simp_larg_col3 + $bull_simp_larg_col4) {
            $larg_tab = $bull_simp_larg_tab_defaut;
            $larg_col1 = $bull_simp_larg_col1_defaut;
            $larg_col2 = $bull_simp_larg_col2_defaut;
            $larg_col3 = $bull_simp_larg_col3_defaut;
            $larg_col4 = $bull_simp_larg_col4_defaut;
        }
        $larg_col5 = $larg_tab - $larg_col1 - $larg_col2 - $larg_col3 - $larg_col4;
        //=========================
        // MODIF: boireaus 20080315
        //echo "<table width=$larg_tab border=1 cellspacing=1 cellpadding=1>\n";
        echo "<table width={$larg_tab} class='boireaus";
        if ($utilisation_tablekit == "ok") {
            echo " sortable resizable";
        }
        echo "' cellspacing='1' cellpadding='1' summary='Matières/Notes/Appréciations'>\n";
        //=========================
        echo "<thead>\n";
        echo "<tr><td width=\"{$larg_col1}\" class='bull_simpl text'>{$compteur}";
        if ($total != '') {
            echo "/{$total}";
        }
        echo "</td>\n";
        //====================
        // Modif: boireaus 20070626
        if ($affiche_coef == 'y') {
            if ($test_coef != 0) {
                echo "<td width=\"{$larg_col2}\" align=\"center\" class='number'><p class='bull_simpl'>Coef.</p></td>\n";
            }
        }
        //====================
        if ($affiche_colonne_moy_classe != 'n') {
            echo "<td width=\"{$larg_col2}\" align=\"center\" class='bull_simpl text'>Classe</td>\n";
        }
        echo "<td width=\"{$larg_col3}\" align=\"center\" class='bull_simpl number'>&Eacute;lève</td>\n";
        if ($affiche_rang == 'y') {
            echo "<td width={$larg_col4} align=\"center\" class='bull_simpl number'><i>Rang</i></td>\n";
        }
        echo "<td width=\"{$larg_col5}\" class='bull_simpl nosort'>{$bull_intitule_app}</td>\n";
        if ($afficher_signalement_faute == 'y') {
            // A N'INSERER QUE POUR LES COMPTES DE PERSONNELS... de façon à éviter de donner les mails des profs à des élèves
            echo "<td class='bull_simpl noprint'>Signaler</td>\n";
        }
        echo "</tr>\n";
        echo "</thead>\n";
        echo "<tbody>\n";
        //echo "</table>";
        // On attaque maintenant l'affichage des appréciations des Activités Interdisciplinaires devant apparaître en tête des bulletins :
        $call_data = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM aid_config WHERE order_display1 = 'b' ORDER BY order_display2");
        $nb_aid = mysqli_num_rows($call_data);
        $z = 0;
        while ($z < $nb_aid) {
            $display_begin = old_mysql_result($call_data, $z, "display_begin");
            $display_end = old_mysql_result($call_data, $z, "display_end");
            if ($periode1 >= $display_begin and $periode2 <= $display_end) {
                $indice_aid = @old_mysql_result($call_data, $z, "indice_aid");
                $aid_query = mysqli_query($GLOBALS["mysqli"], "SELECT id_aid FROM j_aid_eleves WHERE (login='******' and indice_aid='{$indice_aid}')");
                $aid_id = @old_mysql_result($aid_query, 0, "id_aid");
                if ($aid_id != '') {
                    affiche_aid_simple($affiche_rang, $test_coef, $indice_aid, $aid_id, $current_eleve_login, $periode1, $periode2, $id_classe, 'bull_simpl', $affiche_coef);
                }
            }
            $z++;
        }
        //------------------------------
        // Boucle 'groupes'
        //------------------------------
        // Récupération des noms de categories
        $get_cat = mysqli_query($GLOBALS["mysqli"], "SELECT id FROM matieres_categories");
        $categories = array();
        while ($row = mysqli_fetch_array($get_cat, MYSQLI_ASSOC)) {
            $categories[] = $row["id"];
        }
        $cat_names = array();
        foreach ($categories as $cat_id) {
            $cat_names[$cat_id] = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT nom_complet FROM matieres_categories WHERE id = '" . $cat_id . "'"), 0);
        }
        // Nombre de groupes sur la classe
        $nombre_groupes = count($tab_moy['current_group']);
        // Récupération des indices de l'élève $current_eleve_login dans $tab_moy
        unset($tab_login_indice);
        $nb = $periode1;
        while ($nb < $periode2 + 1) {
            //$tab_login_indice[$nb]=$tab_moy['periodes'][$nb]['tab_login_indice'][$current_eleve_login];
            // Un élève qui arrive ou part en cours d'année ne sera pas dans la classe ni dans les groupes sur certaines périodes
            //if(isset($tab_moy['periodes'][$nb]['tab_login_indice'][$current_eleve_login])) {
            if (isset($tab_moy['periodes'][$nb]['tab_login_indice'][my_strtoupper($current_eleve_login)])) {
                //$tab_login_indice[$nb]=$tab_moy['periodes'][$nb]['tab_login_indice'][$current_eleve_login];
                $tab_login_indice[$nb] = $tab_moy['periodes'][$nb]['tab_login_indice'][my_strtoupper($current_eleve_login)];
                //echo "\$tab_login_indice[$nb]=$tab_login_indice[$nb]<br />";
            }
            /*
            else {
            	echo "\$tab_moy['periodes'][$nb]['tab_login_indice'][$current_eleve_login] n'est pas affecté.<br />";
            }
            */
            $nb++;
        }
        //$j = 0;
        $prev_cat_id = null;
        //while ($j < $nombre_groupes) {
        for ($j = 0; $j < $nombre_groupes; $j++) {
            //echo "<table width=$larg_tab border=1 cellspacing=0 cellpadding=1 style='margin-bottom: 0px; border-bottom: 1px solid black; border-top: none;'>";
            $inser_ligne = 'no';
            //$group_id = old_mysql_result($appel_liste_groupes, $j, "id_groupe");
            //$current_group = get_group($group_id);
            // On récupère le groupe depuis $tab_moy
            $current_group = $tab_moy['current_group'][$j];
            //echo "<p>Groupe n°$j: ".$current_group['name']."<br />\n";
            // Coefficient pour le groupe
            $current_coef = $current_group["classes"]["classes"][$id_classe]["coef"];
            // Pour les enseignements à bonus,...
            $mode_moy = $current_group["classes"]["classes"][$id_classe]["mode_moy"];
            $current_matiere_professeur_login = $current_group["profs"]["list"];
            //$current_matiere_nom_complet = $current_group["matiere"]["nom_complet"];
            if (getSettingValue('bul_rel_nom_matieres') == 'nom_groupe') {
                $current_matiere_nom_complet = $current_group["name"];
            } elseif (getSettingValue('bul_rel_nom_matieres') == 'description_groupe') {
                $current_matiere_nom_complet = $current_group["description"];
            } else {
                $current_matiere_nom_complet = $current_group["matiere"]["nom_complet"];
            }
            $nb = $periode1;
            while ($nb < $periode2 + 1) {
                $current_classe_matiere_moyenne[$nb] = $tab_moy['periodes'][$nb]['current_classe_matiere_moyenne'][$j];
                // On teste si des notes de une ou plusieurs boites du carnet de notes doivent être affichée
                $test_cn = mysqli_query($GLOBALS["mysqli"], "select c.nom_court, c.id from cn_cahier_notes cn, cn_conteneurs c\n\t\t\twhere (cn.periode = '{$nb}' and cn.id_groupe='" . $current_group["id"] . "' and cn.id_cahier_notes = c.id_racine and c.id_racine!=c.id and c.display_bulletin = 1) ");
                $nb_ligne_cn[$nb] = mysqli_num_rows($test_cn);
                $n = 0;
                while ($n < $nb_ligne_cn[$nb]) {
                    $cn_id[$nb][$n] = old_mysql_result($test_cn, $n, 'id');
                    $cn_nom[$nb][$n] = old_mysql_result($test_cn, $n, 'nom_court');
                    $n++;
                }
                $nb++;
            }
            // Maintenant on regarde si l'élève suit bien cette matière ou pas
            //-----------------------------
            $nb = $periode1;
            while ($nb < $periode2 + 1) {
                // Test supplémentaire pour savoir si l'élève appartient à la classe pour la période considérée
                $test_eleve_app = sql_query1("select count(login) from j_eleves_classes where login='******' and id_classe='" . $id_classe . "' and periode='" . $nb . "'");
                if ((in_array($current_eleve_login, $current_group["eleves"][$nb]["list"]) or in_array(my_strtolower($current_eleve_login), $current_group["eleves"][$nb]["list"]) or in_array(my_strtoupper($current_eleve_login), $current_group["eleves"][$nb]["list"])) and $test_eleve_app != 0) {
                    $inser_ligne = 'yes';
                    $current_eleve_note[$nb] = $tab_moy['periodes'][$nb]['current_eleve_note'][$j][$tab_login_indice[$nb]];
                    $current_eleve_statut[$nb] = $tab_moy['periodes'][$nb]['current_eleve_statut'][$j][$tab_login_indice[$nb]];
                    $current_eleve_appreciation_query = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM matieres_appreciations ma, j_eleves_classes jec WHERE (ma.login='******' AND ma.id_groupe='" . $current_group["id"] . "' AND ma.periode='{$nb}' and jec.periode='{$nb}' and jec.login='******' and jec.id_classe='{$id_classe}')");
                    $current_eleve_appreciation[$nb] = @old_mysql_result($current_eleve_appreciation_query, 0, "appreciation");
                    $coef_eleve = $tab_moy['periodes'][$nb]['current_coef_eleve'][$tab_login_indice[$nb]][$j];
                    //echo "\$coef_eleve=\$tab_moy['periodes'][$nb]['current_coef_eleve'][".$tab_login_indice[$nb]."][$j]=".$coef_eleve."<br />\n";
                } else {
                    $current_eleve_note[$nb] = '';
                    $current_eleve_statut[$nb] = 'Non suivie';
                    $current_eleve_appreciation[$nb] = '';
                }
                //++++++++++++++++++++++++
                // Modif d'après F.Boisson
                // notes dans appreciation
                $sql = "SELECT cnd.note, cd.note_sur FROM cn_notes_devoirs cnd, cn_devoirs cd, cn_cahier_notes ccn WHERE cnd.login='******' AND cnd.id_devoir=cd.id AND cd.id_racine=ccn.id_cahier_notes AND ccn.id_groupe='" . $current_group["id"] . "' AND ccn.periode='{$nb}' AND cnd.statut='';";
                $result_nbct = mysqli_query($GLOBALS["mysqli"], $sql);
                $string_notes = '';
                if ($result_nbct) {
                    while ($snnote = mysqli_fetch_assoc($result_nbct)) {
                        if ($string_notes != '') {
                            $string_notes .= ", ";
                        }
                        $string_notes .= $snnote['note'];
                        if (getSettingValue("note_autre_que_sur_referentiel") == "V" || $snnote['note_sur'] != getSettingValue("referentiel_note")) {
                            $string_notes .= "/" . $snnote['note_sur'];
                        }
                    }
                }
                $current_eleve_appreciation[$nb] = str_replace('@@Notes', $string_notes, $current_eleve_appreciation[$nb]);
                //++++++++++++++++++++++++
                $nb++;
            }
            if ($inser_ligne == 'yes') {
                if ($affiche_categories) {
                    // On regarde si on change de catégorie de matière
                    if ($current_group["classes"]["classes"][$id_classe]["categorie_id"] != $prev_cat_id) {
                        $prev_cat_id = $current_group["classes"]["classes"][$id_classe]["categorie_id"];
                        // On est dans une nouvelle catégorie
                        // On récupère les infos nécessaires, et on affiche une ligne
                        // On détermine le nombre de colonnes pour le colspan
                        if ($affiche_colonne_moy_classe == 'n') {
                            $nb_total_cols = 3;
                        } else {
                            $nb_total_cols = 4;
                        }
                        //====================
                        // Modif: boireaus 20070626
                        if ($affiche_coef == 'y') {
                            if ($test_coef != 0) {
                                $nb_total_cols++;
                            }
                        }
                        //====================
                        if ($affiche_rang == 'y') {
                            $nb_total_cols++;
                        }
                        // On regarde s'il faut afficher la moyenne de l'élève pour cette catégorie
                        $affiche_cat_moyenne_query = mysqli_query($GLOBALS["mysqli"], "SELECT affiche_moyenne FROM j_matieres_categories_classes WHERE (classe_id = '" . $id_classe . "' and categorie_id = '" . $prev_cat_id . "')");
                        if (mysqli_num_rows($affiche_cat_moyenne_query) == "0") {
                            $affiche_cat_moyenne = false;
                        } else {
                            $affiche_cat_moyenne = old_mysql_result($affiche_cat_moyenne_query, 0);
                        }
                        // On a toutes les infos. On affiche !
                        echo "<tr>\n";
                        echo "<td colspan='" . $nb_total_cols . "'>\n";
                        echo "<p style='padding: 0; margin:0; font-size: 10px; text-align:left;'>" . $cat_names[$prev_cat_id] . "</p></td>\n";
                        if ($afficher_signalement_faute == 'y') {
                            // A N'INSERER QUE POUR LES COMPTES DE PERSONNELS... de façon à éviter de donner les mails des profs à des élèves
                            echo "<td class='bull_simpl noprint'>-</td>\n";
                        }
                        echo "</tr>\n";
                    }
                }
                if ($couleur_lignes == 'y') {
                    $alt = $alt * -1;
                    echo "<tr class='lig{$alt}'>\n";
                    $alt2 = $alt;
                } else {
                    echo "<tr>\n";
                }
                echo "<td ";
                if ($nb_periodes > 1) {
                    echo " rowspan= " . $nb_periodes;
                }
                //echo" width=\"$larg_col1\" class='bull_simpl'><b>$current_matiere_nom_complet</b>";
                echo " width=\"{$larg_col1}\" class='bull_simpl'><b>" . htmlspecialchars($current_matiere_nom_complet) . "</b>";
                $k = 0;
                //echo "(".$current_group['id'].")";
                $liste_email_profs_du_groupe = "";
                $liste_profs_du_groupe = "";
                while ($k < count($current_matiere_professeur_login)) {
                    echo "<br /><i>" . affiche_utilisateur($current_matiere_professeur_login[$k], $id_classe) . "</i>";
                    if ($k > 0) {
                        $liste_profs_du_groupe .= "|";
                    }
                    $liste_profs_du_groupe .= $current_matiere_professeur_login[$k];
                    $tmp_mail = retourne_email($current_matiere_professeur_login[$k]);
                    if ($tmp_mail != '') {
                        if ($liste_email_profs_du_groupe != '') {
                            $liste_email_profs_du_groupe .= ", ";
                        }
                        $liste_email_profs_du_groupe .= $tmp_mail;
                    }
                    $k++;
                }
                if (!isset($signalement_id_groupe[$current_group['id']])) {
                    echo "<input type='hidden' name='signalement_id_groupe[" . $current_group['id'] . "]' id='signalement_id_groupe_" . $current_group['id'] . "' value=\"" . $current_group['name'] . " (" . $current_group['name'] . " en " . $current_group['classlist_string'] . ")\" />\n";
                }
                echo "</td>\n";
                //====================
                // Modif: boireaus 20070626
                if ($affiche_coef == 'y') {
                    if ($test_coef != 0) {
                        //if ($current_coef > 0) $print_coef= $current_coef ; else $print_coef='-';
                        //if ($coef_eleve > 0) $print_coef= $coef_eleve; else $print_coef='-';
                        if ($coef_eleve > 0) {
                            $print_coef = number_format($coef_eleve, 1, ',', ' ');
                        } else {
                            $print_coef = '-';
                        }
                        echo "<td width=\"{$larg_col2}\"";
                        if ($nb_periodes > 1) {
                            echo " rowspan= " . $nb_periodes;
                        }
                        echo " align=\"center\"><p class='bull_simpl'>" . $print_coef . "</p></td>\n";
                    }
                }
                //====================
                $nb = $periode1;
                $print_tr = 'no';
                while ($nb < $periode2 + 1) {
                    if ($print_tr == 'yes') {
                        //echo "<tr style='border-width: 5px;'>\n";
                        if ($couleur_lignes == 'y') {
                            $alt2 = $alt2 * -1;
                            echo "<tr class='lig{$alt2}' style='border-width: 5px;'>\n";
                        } else {
                            echo "<tr>\n";
                        }
                    }
                    //=========================
                    // MODIF: boireaus 20080315
                    //echo "<td width=\"$larg_col2\" align=\"center\" class='bull_simpl'>\n";
                    //if($nb>$periode1) {$style_bordure_cell="border: 1px dashed black;";} else {$style_bordure_cell="";}
                    //$style_bordure_cell="border: 1px dashed black;";
                    if ($nb == $periode1) {
                        if ($nb == $periode2) {
                            $style_bordure_cell = "border: 1px solid black";
                        } else {
                            $style_bordure_cell = "border: 1px solid black; border-bottom: 1px dashed black";
                        }
                    } elseif ($nb == $periode2) {
                        $style_bordure_cell = "border: 1px solid black; border-top: 1px dashed black;";
                    } else {
                        $style_bordure_cell = "border: 1px solid black; border-top: 1px dashed black; border-bottom: 1px dashed black;";
                    }
                    if ($affiche_colonne_moy_classe != 'n') {
                        echo "<td width=\"{$larg_col2}\" align=\"center\" class='bull_simpl' style='{$style_bordure_cell}'>\n";
                        //=========================
                        //echo "\$nb=$nb<br />";
                        $note = number_format($current_classe_matiere_moyenne[$nb], 1, ',', ' ');
                        if ($note != "0,0") {
                            echo $note;
                        } else {
                            echo "-";
                        }
                        echo "</td>\n";
                    }
                    echo "<td width=\"{$larg_col3}\" align=\"center\" class='bull_simpl' style='{$style_bordure_cell}'>\n<b>";
                    $flag_moy[$nb] = 'no';
                    if ($current_eleve_note[$nb] != '') {
                        if ($current_eleve_statut[$nb] != '') {
                            echo $current_eleve_statut[$nb];
                        } else {
                            //$note=number_format($current_eleve_note[$nb],1, ',', ' ');
                            $note = nf($current_eleve_note[$nb]);
                            echo "{$note}";
                            $flag_moy[$nb] = 'yes';
                        }
                    } else {
                        echo '-';
                    }
                    echo "</b></td>\n";
                    //Affichage des cellules rang le cas échéant
                    if ($affiche_rang == 'y') {
                        /*
                        $rang = sql_query1("select rang from matieres_notes where (
                        periode = '".$nb."' and
                        id_groupe = '".$current_group["id"]."' and
                        login = '******' )
                        ");
                        if (($rang == 0) or ($rang == -1)){
                        	$rang = "-";
                        }
                        else{
                        	//$rang.="/".$nb_notes[$current_group["id"]][$nb];
                        	//if(isset($nb_notes[$current_group["id"]][$nb])){
                        		$rang.="/".$nb_notes[$current_group["id"]][$nb];
                        	//}
                        	//$rang.="<br />\$nb_notes[".$current_group["id"]."][$nb]";
                        }
                        */
                        $rang = "-";
                        if (isset($tab_login_indice[$nb])) {
                            if (isset($tab_moy['periodes'][$nb]['current_eleve_rang'][$j][$tab_login_indice[$nb]])) {
                                // Si l'élève n'est dans le groupe que sur une période (cas des IDD), son rang n'existera pas sur certaines périodes
                                //echo "\$tab_moy['periodes'][$nb]['current_eleve_rang'][$j][".$tab_login_indice[$nb]."]=";
                                $rang = $tab_moy['periodes'][$nb]['current_eleve_rang'][$j][$tab_login_indice[$nb]];
                                //echo "$rang<br />";
                            }
                        }
                        $eff_grp_avec_note = $tab_moy['periodes'][$nb]['current_group_effectif_avec_note'][$j];
                        if ($rang != 0 && $rang != -1 && $rang != '' && $rang != '-') {
                            $rang .= "/{$eff_grp_avec_note}";
                        }
                        echo "<td width=\"{$larg_col4}\" align=\"center\" class='bull_simpl' style='{$style_bordure_cell}'><i>" . $rang . "</i></td>\n";
                    }
                    // Affichage des cases appréciations
                    echo "<td width=\"{$larg_col5}\" class='bull_simpl' style='{$style_bordure_cell}; text-align:left;'>\n";
                    // Affichage des moyennes secondaires
                    if ($nb_ligne_cn[$nb] != 0) {
                        $tiret = 'no';
                        for ($cn = 0; $cn < $nb_ligne_cn[$nb]; $cn++) {
                            $appel_cn = mysqli_query($GLOBALS["mysqli"], "select note, statut from cn_notes_conteneurs where (login='******' and id_conteneur='" . $cn_id[$nb][$cn] . "')");
                            $cn_statut = @old_mysql_result($appel_cn, 0, 'statut');
                            if ($cn_statut == 'y') {
                                $cn_note = @old_mysql_result($appel_cn, 0, 'note');
                                if ($tiret == 'yes') {
                                    echo " - ";
                                }
                                echo $cn_nom[$nb][$cn] . "&nbsp;:&nbsp;" . $cn_note;
                                $tiret = 'yes';
                            }
                        }
                        echo "<br />\n";
                    }
                    //==========================================================
                    // MODIF: boireaus 20080218
                    //        Dispositif de restriction des accès aux appréciations pour les comptes responsables/eleves
                    //if ($current_eleve_appreciation[$nb]) {
                    if ($current_eleve_appreciation[$nb] && $tab_acces_app[$nb] == "y") {
                        //==========================================================
                        //======================================
                        // MODIF: boireaus
                        //echo $current_eleve_appreciation[$nb];
                        if ($current_eleve_appreciation[$nb] == "-1") {
                            // 20120409
                            echo "<div id='app_" . $current_id_eleve . "_" . $current_group['id'] . "_{$nb}'>";
                            echo "<span class='noprint'>-</span>\n";
                            echo "</div>\n";
                        } else {
                            // 20120409
                            echo "<div id='app_" . $current_id_eleve . "_" . $current_group['id'] . "_{$nb}'>";
                            if (strstr($current_eleve_appreciation[$nb], ">") || strstr($current_eleve_appreciation[$nb], "<")) {
                                echo "{$current_eleve_appreciation[$nb]}";
                            } else {
                                echo nl2br($current_eleve_appreciation[$nb]);
                            }
                            echo "</div>\n";
                            // 20131207
                            echo "<div id='proposition_app_" . $current_id_eleve . "_" . $current_group['id'] . "_{$nb}' class='noprint'>";
                            if (isset($tab_modif_app_proposees[$current_group['id']][$nb][$current_eleve_login])) {
                                echo "<div style='border:1px solid red; color: green'><strong>Proposition de correction en attente&nbsp;:</strong><br />" . $tab_modif_app_proposees[$current_group['id']][$nb][$current_eleve_login] . "</div>";
                            }
                            echo "</div>";
                            echo "<textarea name='appreciation_" . $current_id_eleve . "_" . $current_group['id'] . "[{$nb}]' id='appreciation_" . $current_id_eleve . "_" . $current_group['id'] . "_{$nb}' style='display:none;'>" . $current_eleve_appreciation[$nb] . "</textarea>\n";
                        }
                        //======================================
                    } else {
                        // 20120409
                        echo "<div id='app_" . $current_id_eleve . "_" . $current_group['id'] . "_{$nb}'>";
                        echo "<span class='noprint'>-</span>\n";
                        echo "</div>\n";
                    }
                    echo "</td>\n";
                    if ($afficher_signalement_faute == 'y' || $afficher_proposition_correction == 'y') {
                        // A N'INSERER QUE POUR LES COMPTES DE PERSONNELS... de façon à éviter de donner les mails des profs à des élèves
                        echo "<td class='bull_simpl noprint'>";
                        if ($current_group["classe"]["ver_periode"][$id_classe][$nb] == 'O') {
                            echo "-";
                        } else {
                            // 20120409
                            echo affiche_lien_proposition_ou_correction_appreciation($current_eleve_login, $current_id_eleve, $current_eleve_prenom, $current_eleve_nom, $current_group, $id_classe, $nb, $liste_profs_du_groupe, $tab_mes_groupes, $tab_afficher_liens_modif_app);
                            /*
                            if(($_SESSION['statut']=='professeur')&&(in_array($current_group['id'],$tab_mes_groupes))) {
                            	if($current_group["classe"]["ver_periode"][$id_classe][$nb]=='N') {
                            		echo "<a href='#' onclick=\"modifier_une_appreciation('$current_eleve_login', '$current_id_eleve', '".$current_group['id']."', '$liste_profs_du_groupe', '$nb', 'corriger') ;return false;\" title=\"Modifier l'appréciation en période $nb pour $current_eleve_prenom $current_eleve_nom.
                            Si vous vous apercevez que vous avez fait une faute de frappe, ou si vous souhaitez modifier votre appréciation, ce lien est là pour ça.\" class='noprint'><img src='../images/edit16.png' width='16' height='16' /></a> ";
                            	}
                            	elseif(isset($tab_afficher_liens_modif_app[$current_group['id']][$nb])) {
                            		if($tab_afficher_liens_modif_app[$current_group['id']][$nb]=='y') {
                            			echo "<a href='#' onclick=\"modifier_une_appreciation('$current_eleve_login', '$current_id_eleve', '".$current_group['id']."', '$liste_profs_du_groupe', '$nb', 'proposer') ;return false;\" title=\"Proposer une correction de l'appréciation en période $nb pour $current_eleve_prenom $current_eleve_nom.
                            Si vous vous apercevez que vous avez fait une faute de frappe, ou si vous souhaitez simplement modifier votre appréciation, ce lien est là pour ça.\" class='noprint'><img src='../images/edit16.png' width='16' height='16' /></a> ";
                            		}
                            		elseif($tab_afficher_liens_modif_app[$current_group['id']][$nb]=='yy') {
                            			echo "<a href='#' onclick=\"modifier_une_appreciation('$current_eleve_login', '$current_id_eleve', '".$current_group['id']."', '$liste_profs_du_groupe', '$nb', 'corriger') ;return false;\" title=\"Modifier l'appréciation en période $nb pour $current_eleve_prenom $current_eleve_nom.
                            Si vous vous apercevez que vous avez fait une faute de frappe, ou si vous souhaitez modifier votre appréciation, ce lien est là pour ça.\" class='noprint'><img src='../images/edit16.png' width='16' height='16' /></a> ";
                            		}
                            		//echo "plop";
                            	}
                            }
                            */
                            // Tester si l'adresse mail du/des profs de l'enseignement est renseignée et si l'envoi de mail est actif.
                            // Sinon, on pourrait enregistrer le signalement dans une table actions_signalements pour affichage comme le Panneau d'affichage
                            if ($afficher_signalement_faute == 'y') {
                                echo "<a href=\"mailto:{$liste_email_profs_du_groupe}?Subject=[Gepi]: Signaler un problème/faute&body=Bonjour,Je pense que vous avez commis une faute de frappe pour {$current_eleve_login} dans l enseignement n°" . $current_group['id'] . ".Cordialement.-- " . casse_mot($_SESSION['prenom'], 'majf2') . " " . $_SESSION['nom'] . "\"";
                                if ($envoi_mail_actif != 'n') {
                                    //echo " onclick=\"alert('plop');return false;\"";
                                    echo " onclick=\"signaler_une_faute('{$current_eleve_login}', '{$current_id_eleve}', '" . $current_group['id'] . "', '{$liste_profs_du_groupe}', '{$nb}') ;return false;\"";
                                }
                                echo " title=\"Signaler une faute de frappe, d'orthographe ou autre...\nSi vous vous apercevez que ce collègue a fait une erreur,\nvous pouvez lui envoyer un mail pour l'alerter.\nCe lien est là pour ça.\" target='_blank'><img src='../images/icons/mail.png' width='16' height='16' alt='Signaler un problème/faute par mail' /></a>";
                                echo "<span id='signalement_effectue_" . $current_id_eleve . "_" . $current_group['id'] . "_{$nb}'></span>";
                            }
                        }
                        echo "</td>\n";
                    }
                    echo "</tr>\n";
                    $print_tr = 'yes';
                    $nb++;
                }
                /*
                // On calcule les moyennes générales de l'élève et de la classe :
                if ($test_coef != 0) {
                	$nb=$periode1;
                	while ($nb < $periode2+1) {
                		if ($flag_moy[$nb] == 'yes') {
                		
                			//===========================
                			// MODIF: boireaus 20070627
                			//$total_coef[$nb] += $current_coef;
                			//$total_points_classe[$nb] += $current_coef*$current_classe_matiere_moyenne[$nb];
                			//$total_points_eleve[$nb] += $current_coef*$current_eleve_note[$nb];
                		
                			if($mode_moy=='-') {
                				$total_coef_eleve[$nb] += $coef_eleve;
                				$total_points_eleve[$nb] += $coef_eleve*$current_eleve_note[$nb];
                		
                				$total_coef_classe[$nb] += $current_coef;
                				$total_points_classe[$nb] += $current_coef*$current_classe_matiere_moyenne[$nb];
                			}
                			elseif($mode_moy=='sup10') {
                				if($current_eleve_note[$nb]>10) {
                					$total_points_eleve[$nb] += $coef_eleve*($current_eleve_note[$nb]-10);
                				}
                		
                				if($current_classe_matiere_moyenne[$nb]>0) {
                					$total_points_classe[$nb] += $current_coef*($current_classe_matiere_moyenne[$nb]-10);
                				}
                			}
                			else {
                				echo "<p>ANOMALIE&nbsp;: \$mode_moy='$mode_moy' mode inconnu pour ".$current_group['name']."</p>\n";
                			}
                		
                			//===========================
                		
                			//if($affiche_categories=='1'){
                			if(($affiche_categories=='1')||($affiche_categories==true)){
                				$total_cat_classe[$nb][$prev_cat_id] += $current_coef*$current_classe_matiere_moyenne[$nb];
                		
                				//===========================
                				// MODIF: boireaus 20070627
                				//$total_cat_eleve[$nb][$prev_cat_id] += $current_coef*$current_eleve_note[$nb];
                				$total_cat_eleve[$nb][$prev_cat_id] += $coef_eleve*$current_eleve_note[$nb];
                				//$total_cat_coef[$nb][$prev_cat_id] += $current_coef;
                				$total_cat_coef_eleve[$nb][$prev_cat_id] += $coef_eleve;
                				$total_cat_coef_classe[$nb][$prev_cat_id] += $current_coef;
                				//===========================
                			}
                		}
                		$nb++;
                	}
                }
                */
            }
            //$j++;
            //  echo "</table>";
        }
        //echo "<table width=$larg_tab border=1 cellspacing=1 cellpadding=1>";
        // On attaque maintenant l'affichage des appréciations des Activités Interdisciplinaires devant apparaître en fin de bulletin :
        $call_data = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM aid_config WHERE order_display1 = 'e' ORDER BY order_display2");
        $nb_aid = mysqli_num_rows($call_data);
        $z = 0;
        while ($z < $nb_aid) {
            $display_begin = old_mysql_result($call_data, $z, "display_begin");
            $display_end = old_mysql_result($call_data, $z, "display_end");
            if ($periode1 >= $display_begin and $periode2 <= $display_end) {
                $indice_aid = @old_mysql_result($call_data, $z, "indice_aid");
                $aid_query = mysqli_query($GLOBALS["mysqli"], "SELECT id_aid FROM j_aid_eleves WHERE (login='******' and indice_aid='{$indice_aid}')");
                $aid_id = @old_mysql_result($aid_query, 0, "id_aid");
                if ($aid_id != '') {
                    affiche_aid_simple($affiche_rang, $test_coef, $indice_aid, $aid_id, $current_eleve_login, $periode1, $periode2, $id_classe, 'bull_simpl', $affiche_coef);
                }
            }
            $z++;
        }
        //echo "</table>";
        //echo "<table width=$larg_tab border=1 cellspacing=1 cellpadding=1>";
        //====================================================================
        //====================================================================
        //====================================================================
        echo "</tbody>\n";
        // Affichage des moyennes générales
        echo "<tfoot>\n";
        if ($display_moy_gen == "y") {
            if ($test_coef != 0) {
                echo "<tr>\n<td";
                if ($nb_periodes > 1) {
                    echo " rowspan=" . $nb_periodes;
                }
                echo ">\n<p class='bull_simpl'><b>Moyenne générale</b></p>\n</td>\n";
                //====================
                // Modif: boireaus 20070626
                if ($affiche_coef == 'y') {
                    echo "<td";
                    if ($nb_periodes > 1) {
                        echo " rowspan=" . $nb_periodes;
                    }
                    echo " align=\"center\" style='{$style_bordure_cell}'>-</td>\n";
                }
                //====================
                $nb = $periode1;
                $print_tr = 'no';
                while ($nb < $periode2 + 1) {
                    //=============================
                    //if($nb==$periode1){echo "<tr>\n";}
                    if ($print_tr == 'yes') {
                        echo "<tr style='border-width: 5px;'>\n";
                    }
                    //=============================
                    //=========================
                    // AJOUT: boireaus 20080315
                    if ($nb == $periode1) {
                        if ($nb == $periode2) {
                            $style_bordure_cell = "border: 1px solid black";
                        } else {
                            $style_bordure_cell = "border: 1px solid black; border-bottom: 1px dashed black";
                        }
                    } elseif ($nb == $periode2) {
                        $style_bordure_cell = "border: 1px solid black; border-top: 1px dashed black;";
                    } else {
                        $style_bordure_cell = "border: 1px solid black; border-top: 1px dashed black; border-bottom: 1px dashed black;";
                    }
                    //=========================
                    if ($affiche_colonne_moy_classe != 'n') {
                        echo "<td class='bull_simpl' align=\"center\" style='{$style_bordure_cell}'>\n";
                        /*
                        //echo "\$total_points_classe[$nb]=$total_points_classe[$nb]<br />\n";
                        //echo "\$tab_moy_gen[$nb]=$tab_moy_gen[$nb]<br />\n";
                        //if ($total_points_classe[$nb] != 0) {
                        if(($total_points_classe[$nb]!=0)||(isset($tab_moy_gen[$nb]))) {
                        	//$moy_classe=number_format($total_points_classe[$nb]/$total_coef[$nb],1, ',', ' ');
                        	
                        	//=========================
                        	// MODIF: boireaus 20080316
                        	//$moy_classe=number_format($total_points_classe[$nb]/$total_coef_classe[$nb],1, ',', ' ');
                        	//$moy_classe=number_format($tab_moy_gen[$nb],1, ',', ' ');
                        	$moy_classe=$tab_moy_gen[$nb];
                        	//=========================
                        } else {
                        	$moy_classe = '-';
                        }
                        //echo "$moy_classe";
                        echo nf($moy_classe);
                        */
                        echo nf($tab_moy['periodes'][$nb]['moy_generale_classe'], 2);
                        if ($affiche_deux_moy_gen == 1) {
                            echo "<br />\n";
                            $moy_classe1 = $tab_moy['periodes'][$nb]['moy_generale_classe1'];
                            echo "<i>" . nf($moy_classe1, 2) . "</i>\n";
                        }
                        echo "</td>\n";
                    }
                    echo "<td class='bull_simpl' align=\"center\" style='{$style_bordure_cell}'>\n";
                    /*
                    if ($total_points_eleve[$nb] != '0') {
                    	//$moy_eleve=number_format($total_points_eleve[$nb]/$total_coef[$nb],1, ',', ' ');
                    	$moy_eleve=number_format($total_points_eleve[$nb]/$total_coef_eleve[$nb],1, ',', ' ');
                    } else {
                    	$moy_eleve = '-';
                    }
                    */
                    if (isset($tab_login_indice[$nb])) {
                        $moy_eleve = $tab_moy['periodes'][$nb]['moy_gen_eleve'][$tab_login_indice[$nb]];
                        echo "<b>" . nf($moy_eleve, 2) . "</b>\n";
                        if ($affiche_deux_moy_gen == 1) {
                            echo "<br />\n";
                            $moy_eleve1 = $tab_moy['periodes'][$nb]['moy_gen_eleve1'][$tab_login_indice[$nb]];
                            echo "<i><b>" . nf($moy_eleve1, 2) . "</b></i>\n";
                        }
                    } else {
                        echo "-\n";
                    }
                    echo "</td>\n";
                    if ($affiche_rang == 'y') {
                        $rang = sql_query1("select rang from j_eleves_classes where (\n\t\t\t\t\tperiode = '" . $nb . "' and\n\t\t\t\t\tid_classe = '" . $id_classe . "' and\n\t\t\t\t\tlogin = '******' )\n\t\t\t\t\t");
                        $nombre_eleves = count($tab_moy['periodes'][$nb]['current_eleve_login']);
                        if ($rang == 0 or $rang == -1) {
                            $rang = "-";
                        } else {
                            $rang .= "/" . $nombre_eleves;
                        }
                        echo "<td class='bull_simpl' align=\"center\" style='{$style_bordure_cell}'>" . $rang . "</td>\n";
                    }
                    if ($affiche_categories) {
                        echo "<td class='bull_simpl' style='{$style_bordure_cell}; text-align:left;'>\n";
                        foreach ($categories as $cat_id) {
                            // MODIF: boireaus 20070627 ajout du test et utilisation de $total_cat_coef_eleve, $total_cat_coef_classe
                            // Tester si cette catégorie doit avoir sa moyenne affichée
                            $affiche_cat_moyenne_query = mysqli_query($GLOBALS["mysqli"], "SELECT affiche_moyenne FROM j_matieres_categories_classes WHERE (classe_id = '" . $id_classe . "' and categorie_id = '" . $cat_id . "')");
                            if (mysqli_num_rows($affiche_cat_moyenne_query) == "0") {
                                $affiche_cat_moyenne = false;
                            } else {
                                $affiche_cat_moyenne = old_mysql_result($affiche_cat_moyenne_query, 0);
                            }
                            if ($affiche_cat_moyenne) {
                                /*
                                //if ($total_cat_coef[$nb][$cat_id] != "0") {
                                if ($total_cat_coef_eleve[$nb][$cat_id] != "0") {
                                	//$moy_eleve=number_format($total_cat_eleve[$nb][$cat_id]/$total_cat_coef[$nb][$cat_id],1, ',', ' ');
                                	//$moy_classe=number_format($total_cat_classe[$nb][$cat_id]/$total_cat_coef[$nb][$cat_id],1, ',', ' ');
                                	$moy_eleve=number_format($total_cat_eleve[$nb][$cat_id]/$total_cat_coef_eleve[$nb][$cat_id],1, ',', ' ');
                                	
                                	if ($total_cat_coef_classe[$nb][$cat_id] != "0") {
                                		$moy_classe=number_format($total_cat_classe[$nb][$cat_id]/$total_cat_coef_classe[$nb][$cat_id],1, ',', ' ');
                                	}
                                	else{
                                		$moy_classe="-";
                                	}
                                	
                                	echo $cat_names[$cat_id] . " - <b>".$moy_eleve."</b> (classe : " . $moy_classe . ")<br/>\n";
                                }
                                */
                                // Si l'élève est bien dans la classe sur la période $nb
                                if (isset($tab_login_indice[$nb])) {
                                    $moy_eleve = $tab_moy['periodes'][$nb]['moy_cat_eleve'][$tab_login_indice[$nb]][$cat_id];
                                    $moy_classe = $tab_moy['periodes'][$nb]['moy_cat_classe'][$tab_login_indice[$nb]][$cat_id];
                                    echo $cat_names[$cat_id] . " - <b>" . nf($moy_eleve, 2) . "</b> (classe : " . nf($moy_classe, 2) . ")<br/>\n";
                                }
                            }
                        }
                        echo "</td>\n</tr>\n";
                    } else {
                        echo "<td class='bull_simpl' style='text-align:left; {$style_bordure_cell}'>-</td>\n</tr>\n";
                    }
                    $nb++;
                    $print_tr = 'yes';
                }
            }
        }
        echo "</tfoot>\n";
        echo "</table>\n";
        // Les absences
        // On ne les affiche que si dans le bulletin HTML, on affiche les absences
        if (getSettingAOui('bull_affiche_absences')) {
            echo "<span class='bull_simpl'><b>Absences et retards:</b></span>\n";
            //echo "<table width=$larg_tab border=1 cellspacing=1 cellpadding=1>\n";
            echo "<table width='{$larg_tab}' class='boireaus' cellspacing='1' cellpadding='1' summary='Absences et retards'>\n";
            $nb = $periode1;
            while ($nb < $periode2 + 1) {
                //On vérifie si le module est activé
                if (getSettingValue("active_module_absence") != '2' || getSettingValue("abs2_import_manuel_bulletin") == 'y') {
                    $current_eleve_absences_query = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM absences WHERE (login='******' AND periode='{$nb}')");
                    $eleve_abs[$nb] = @old_mysql_result($current_eleve_absences_query, 0, "nb_absences");
                    $eleve_abs_nj[$nb] = @old_mysql_result($current_eleve_absences_query, 0, "non_justifie");
                    $eleve_retards[$nb] = @old_mysql_result($current_eleve_absences_query, 0, "nb_retards");
                    $current_eleve_appreciation_absences = @old_mysql_result($current_eleve_absences_query, 0, "appreciation");
                    $eleve_app_abs[$nb] = @old_mysql_result($current_eleve_absences_query, 0, "appreciation");
                } else {
                    // Initialisations files
                    require_once "../lib/initialisationsPropel.inc.php";
                    $eleve = EleveQuery::create()->findOneByLogin($current_eleve_login);
                    if ($eleve != null) {
                        $current_eleve_absences_query = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM absences WHERE (login='******' AND periode='{$nb}')");
                        $eleve_abs[$nb] = $eleve->getDemiJourneesAbsenceParPeriode($nb)->count();
                        $eleve_abs_nj[$nb] = $eleve->getDemiJourneesNonJustifieesAbsenceParPeriode($nb)->count();
                        $eleve_retards[$nb] = $eleve->getRetardsParPeriode($nb)->count();
                        $current_eleve_appreciation_absences = @old_mysql_result($current_eleve_absences_query, 0, "appreciation");
                        $eleve_app_abs[$nb] = @old_mysql_result($current_eleve_absences_query, 0, "appreciation");
                    }
                }
                if ($eleve_abs[$nb] !== '' and $eleve_abs_nj[$nb] !== '') {
                    $eleve_abs_j[$nb] = $eleve_abs[$nb] - $eleve_abs_nj[$nb];
                } else {
                    $eleve_abs_j[$nb] = "?";
                }
                if ($eleve_abs_nj[$nb] === '') {
                    $eleve_abs_nj[$nb] = "?";
                }
                if ($eleve_retards[$nb] === '') {
                    $eleve_retards[$nb] = "?";
                }
                //====================================
                // AJOUT: boireaus 20080317
                if ($nb == $periode1) {
                    if ($nb == $periode2) {
                        $style_bordure_cell = "border: 1px solid black";
                    } else {
                        $style_bordure_cell = "border: 1px solid black; border-bottom: 1px dashed black";
                    }
                } elseif ($nb == $periode2) {
                    $style_bordure_cell = "border: 1px solid black; border-top: 1px dashed black;";
                } else {
                    $style_bordure_cell = "border: 1px solid black; border-top: 1px dashed black; border-bottom: 1px dashed black;";
                }
                //====================================
                $nb_colspan_abs = 0;
                if (getSettingValue('bull_affiche_abs_tot') == 'y') {
                    $nb_colspan_abs++;
                }
                if (getSettingValue('bull_affiche_abs_nj') == 'y') {
                    $nb_colspan_abs++;
                }
                if (getSettingValue('bull_affiche_abs_ret') == 'y') {
                    $nb_colspan_abs++;
                }
                echo "<tr>\n<td valign=top class='bull_simpl' style='{$style_bordure_cell}'>{$nom_periode[$nb]}</td>\n";
                // Test pour savoir si l'élève appartient à la classe pour la période considérée
                $test_eleve_app = sql_query1("select count(login) from j_eleves_classes where login='******' and id_classe='" . $id_classe . "' and periode='" . $nb . "'");
                if (getSettingValue('bull_affiche_abs_tot') == 'y' || getSettingValue('bull_affiche_abs_nj') == 'y' || getSettingValue('bull_affiche_abs_ret') == 'y') {
                    if ($test_eleve_app != 0) {
                        // 20130215
                        if (getSettingValue('bull_affiche_abs_tot') == 'y') {
                            if (getSettingValue('bull_affiche_abs_nj') == 'y') {
                                echo "<td valign=top class='bull_simpl' style='{$style_bordure_cell}'>\n";
                                if ($eleve_abs_j[$nb] == "1") {
                                    echo "Absences justifiées : une demi-journée";
                                } else {
                                    if ($eleve_abs_j[$nb] != "0") {
                                        echo "Absences justifiées : {$eleve_abs_j[$nb]} demi-journées";
                                    } else {
                                        echo "Aucune absence justifiée";
                                    }
                                }
                                echo "</td>\n";
                                echo "<td valign=top class='bull_simpl' style='{$style_bordure_cell}'>\n";
                                if ($eleve_abs_nj[$nb] == '1') {
                                    echo "Absences non justifiées : une demi-journée";
                                } else {
                                    if ($eleve_abs_nj[$nb] != '0') {
                                        echo "Absences non justifiées : {$eleve_abs_nj[$nb]} demi-journées";
                                    } else {
                                        echo "Aucune absence non justifiée";
                                    }
                                }
                                echo "</td>\n";
                            } else {
                                echo "<td valign=top class='bull_simpl' style='{$style_bordure_cell}'>\n";
                                if ($eleve_abs[$nb] > 0) {
                                    echo "Nombre de demi-journées : " . $eleve_abs[$nb];
                                } else {
                                    echo "Aucune absence";
                                }
                                echo "</td>\n";
                            }
                        } elseif (getSettingValue('bull_affiche_abs_nj') == 'y') {
                            echo "<td valign=top class='bull_simpl' style='{$style_bordure_cell}'>\n";
                            if ($eleve_abs_nj[$nb] == "1") {
                                echo "Absences non-justifiées : une demi-journée";
                            } else {
                                if ($eleve_abs_nj[$nb] != "0") {
                                    echo "Absences non-justifiées : {$eleve_abs_nj[$nb]} demi-journées";
                                } else {
                                    echo "Aucune absence non-justifiée";
                                }
                            }
                            echo "</td>\n";
                        }
                        if (getSettingValue('bull_affiche_abs_ret') == 'y') {
                            echo "<td valign=top class='bull_simpl' style='{$style_bordure_cell}'>Nb. de retards : {$eleve_retards[$nb]}</td>\n";
                        }
                        echo "</tr>\n";
                    } else {
                        if (getSettingValue('bull_affiche_abs_tot') == 'y') {
                            echo "<td valign=top class='bull_simpl' style='{$style_bordure_cell}'>-</td>\n";
                        }
                        if (getSettingValue('bull_affiche_abs_nj') == 'y') {
                            echo "<td valign=top class='bull_simpl' style='{$style_bordure_cell}'>-</td>\n";
                        }
                        if (getSettingValue('bull_affiche_abs_ret') == 'y') {
                            echo "<td valign=top class='bull_simpl' style='{$style_bordure_cell}'>-</td>\n";
                        }
                        echo "</tr>\n";
                    }
                } else {
                    if ($nb_colspan_abs > 0) {
                        echo "<td colspan='{$nb_colspan_abs}' valign=top class='bull_simpl' style='{$style_bordure_cell}'>-</td>\n";
                    } else {
                        echo "<td valign=top class='bull_simpl' style='{$style_bordure_cell}'>-</td>\n";
                    }
                    echo "</tr>\n";
                }
                //Ajout Eric
                if ($current_eleve_appreciation_absences != "") {
                    if ($test_eleve_app != 0) {
                        echo "<tr>\n";
                        echo "<td valign=top class='bull_simpl' style='{$style_bordure_cell}'>&nbsp;</td>\n";
                        if ($nb_colspan_abs > 0) {
                            echo "<td valign=top class='bull_simpl' colspan=\"{$nb_colspan_abs}\" style='text-align:left; {$style_bordure_cell}'>";
                        } else {
                            echo "<td valign=top class='bull_simpl' style='text-align:left; {$style_bordure_cell}'>";
                        }
                        echo " Observation(s) : {$current_eleve_appreciation_absences}</td>\n</tr>\n";
                    } else {
                        echo "<tr><td valign=top class='bull_simpl' style='{$style_bordure_cell}'>&nbsp;</td><td valign=top class='bull_simpl' colspan=\"3\" style='{$style_bordure_cell}'>-</td>\n</tr>\n";
                    }
                }
                $nb++;
            }
            echo "</table>\n";
        }
        $tab_classe_periode = get_infos_classe_periode($id_classe);
        // Maintenant, on met l'avis du conseil de classe :
        echo "<span class='bull_simpl'><b>Avis du conseil de classe </b> ";
        if ($current_eleve_profsuivi_login) {
            $gepi_prof_suivi = ucfirst(retourne_denomination_pp($id_classe));
            echo "<b>(" . ucfirst($gepi_prof_suivi) . " : <i>" . affiche_utilisateur($current_eleve_profsuivi_login, $id_classe) . "</i>)</b>";
        }
        echo " :</span>\n";
        $larg_col1b = $larg_tab - $larg_col1;
        echo "<table width=\"{$larg_tab}\" class='boireaus' cellspacing='1' cellpadding='1' summary='Avis du conseil de classe'>\n";
        $nb = $periode1;
        while ($nb < $periode2 + 1) {
            //=========================
            if ($nb == $periode1) {
                if ($nb == $periode2) {
                    $style_bordure_cell = "border: 1px solid black";
                } else {
                    $style_bordure_cell = "border: 1px solid black; border-bottom: 1px dashed black";
                }
            } elseif ($nb == $periode2) {
                $style_bordure_cell = "border: 1px solid black; border-top: 1px dashed black;";
            } else {
                $style_bordure_cell = "border: 1px solid black; border-top: 1px dashed black; border-bottom: 1px dashed black;";
            }
            //=========================
            $current_eleve_avis_query = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM avis_conseil_classe WHERE (login='******' AND periode='{$nb}')");
            $current_eleve_avis[$nb] = @old_mysql_result($current_eleve_avis_query, 0, "avis");
            // **** AJOUT POUR LA MENTION ****
            $current_eleve_mention[$nb] = @old_mysql_result($current_eleve_avis_query, 0, "id_mention");
            // **** FIN D'AJOUT POUR LA MENTION ****
            // Test pour savoir si l'élève appartient à la classe pour la période considérée
            $test_eleve_app = sql_query1("select count(login) from j_eleves_classes where login='******' and id_classe='" . $id_classe . "' and periode='" . $nb . "'");
            if ($current_eleve_avis[$nb] == '' or $tab_acces_app[$nb] != "y" or $test_eleve_app == 0) {
                $current_eleve_avis[$nb] = ' -';
            }
            echo "<tr>\n<td valign=\"top\" width =\"{$larg_col1}\" class='bull_simpl' style='text-align:left; {$style_bordure_cell}'>{$nom_periode[$nb]}</td>\n";
            echo "<td valign=\"top\"  width = \"{$larg_col1b}\" class='bull_simpl' style='text-align:left; {$style_bordure_cell}' title=\"Avis du conseil de classe en période n°{$nb} pour " . $current_eleve_prenom . " " . $current_eleve_nom . "\">";
            if ($temoin_page_courante != "saisie_avis2" && $tab_classe_periode[$nb]['verouiller'] != "O") {
                if ($_SESSION['statut'] == 'scolarite' || $_SESSION['statut'] == 'professeur' && is_pp($_SESSION['login'], $id_classe)) {
                    echo "<div style='float:right; width:16px;' title=\"Saisir/Modifier l'avis du conseil de classe.\" class='noprint'><a href = '../saisie/saisie_avis2.php?periode_num={$nb}&amp;id_classe={$id_classe}&amp;fiche=y&amp;current_eleve_login={$current_eleve_login}#app' onclick=\"return confirm_abandon (this, change, '{$themessage}')\"><img src='../images/edit16.png' class='icone16' alt='Editer' /></a></div>";
                    //&amp;ind_eleve_login_suiv=$ind_eleve_login_suiv
                }
            }
            echo $current_eleve_avis[$nb];
            // Ajouter par la suite une option pour faire apparaître les mentions même si c'est "-"
            //if(($current_eleve_mention[$nb]=="F")||($current_eleve_mention[$nb]=="M")||($current_eleve_mention[$nb]=="E")) {
            $afficher_les_mentions = "y";
            if ($_SESSION['statut'] == 'eleve' || $_SESSION['statut'] == 'responsable') {
                if ($tab_acces_app[$nb] != "y") {
                    $afficher_les_mentions = "n";
                }
            }
            if ($afficher_les_mentions == "y") {
                if (!isset($tableau_des_mentions_sur_le_bulletin) || !is_array($tableau_des_mentions_sur_le_bulletin) || count($tableau_des_mentions_sur_le_bulletin) == 0) {
                    $tableau_des_mentions_sur_le_bulletin = get_mentions();
                }
                if (isset($tableau_des_mentions_sur_le_bulletin[$current_eleve_mention[$nb]])) {
                    echo "<br />\n";
                    echo "<br />\n";
                    echo "<b>" . $gepi_denom_mention . " : </b>";
                    echo $tableau_des_mentions_sur_le_bulletin[$current_eleve_mention[$nb]];
                    //else {echo "-";}
                }
            }
            echo "</td>\n";
            echo "</tr>\n";
            $nb++;
        }
        echo "</table>\n";
    }
    // fin de la condition if ($on_continue == 'yes')
}
Exemple #2
0
        echo " | <a href='saisie_avis2.php?id_classe={$id_classe}&amp;periode_num=" . $lig_tmp_per->num_periode . "' onclick=\"return confirm_abandon (this, change, '{$themessage}')\">Saisie avis avec affichage bulletin simplifié</a>";
    }
}
echo "</p>\n";
echo "</form>\n";
// 20140226
if (getSettingAOui('active_mod_discipline')) {
    echo necessaire_saisie_avertissement_fin_periode();
}
// 20150318
if (getSettingValue('active_recherche_lapsus') != 'n') {
    $tab_lapsus_et_correction = retourne_tableau_lapsus_et_correction();
}
// Pour que les signalements de faute et corrections du bulletin simplifié (affiché en infobulle) fonctionnent, il faut que les fonctions javascript soient définies dans la page de départ, pas dans celle appelée par ajax/js.
require_once "../lib/bulletin_simple.inc.php";
lib_signalement_fautes();
lib_corriger_appreciation();
echo "<form enctype='multipart/form-data' action='saisie_avis1.php' method='post'>\n";
echo add_token_field(true);
if ($id_classe) {
    $classe = sql_query1("SELECT classe FROM classes WHERE id = '{$id_classe}'");
    ?>
	<p class= 'grand'>Avis du conseil de classe. Classe : <?php 
    echo $classe;
    echo " - <em style='font-size:small'>(" . $gepi_prof_suivi . "&nbsp;: " . liste_prof_suivi($id_classe, "profs", "y") . ")</em>";
    ?>
	</p>
	<?php 
    $test_periode_ouverte = 'no';
    $i = "1";
    while ($i < $nb_periode) {