示例#1
0
        //-------- méthodes qui recherche les statistiques d'une année d'une classe
        public StatistiqueClasseBE getStatistiqueDuneAnnee(String codeClasse, int annee)
        {
            //string codeClasse;
            int    effectif;
            int    nbAdmis;
            string pourcentageAdmis;
            int    nbEchec;
            string pourcentageEchec;

            StatistiqueClasseBE stat;

            try
            {
                // Création d'une commande SQL
                MySqlCommand cmd = con.connexion.CreateCommand();
                cmd.CommandText = "SELECT e.codeClasse, e.effectif, r.nbAdmis, ((r.nbAdmis / e.effectif)*100) as PourcentageAdmis, " +
                                  "(e.effectif - r.nbAdmis) as nbEchec, (((e.effectif - r.nbAdmis) / e.effectif))*100 as PourcentageEchec " +
                                  "FROM   (SELECT codeClasse, count(*) as effectif " +
                                  "FROM inscrire " +
                                  "WHERE codeClasse = '" + codeClasse + "' AND annee = '" + annee + "' GROUP BY codeClasse) e, " +
                                  "(SELECT count(*) as nbAdmis " +
                                  "FROM resultatannuel " +
                                  "WHERE matricule in (SELECT matricule FROM inscrire WHERE codeClasse = '" + codeClasse + "' AND annee = '" + annee + "') " +
                                  "AND annee = '" + annee + "' AND decision = 'Admis') r;";

                using (MySqlDataReader dataReader = cmd.ExecuteReader())
                {
                    //fabriquer l'objet à retourner
                    while (dataReader.Read())
                    {
                        //codeClasse = Convert.ToString(dataReader["codeclasse"]);
                        effectif         = Convert.ToInt16(dataReader["effectif"]);
                        nbAdmis          = Convert.ToInt16(dataReader["nbAdmis"]);
                        pourcentageAdmis = Convert.ToString(Math.Round(Convert.ToDecimal(dataReader["PourcentageAdmis"]), 2)) + "%";
                        nbEchec          = Convert.ToInt16(dataReader["nbEchec"]);
                        pourcentageEchec = Convert.ToString(Math.Round(Convert.ToDecimal(dataReader["PourcentageEchec"]), 2)) + "%";

                        stat = new StatistiqueClasseBE(codeClasse, effectif, nbAdmis, pourcentageAdmis, nbEchec, pourcentageEchec);

                        return(stat);
                    }

                    return(null);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(null);
            }
        }
示例#2
0
        private void cmdOK_Click_New(object sender, RoutedEventArgs e)
        {
            if (validerFormulaire())
            {
                ClasseBE classe = new ClasseBE();
                classe.codeClasse = cmbClasse.Text;
                classe            = sequenceBL.rechercherClasse(classe);
                SequenceBE sequence = new SequenceBE();
                sequence.codeseq = cmbSequence.Text;
                sequence         = sequenceBL.rechercherSequence(sequence);
                string        nomprof       = "";
                List <string> codematieres  = new List <string>();
                List <string> codesanctions = new List <string>();

                eleves.Clear();
                recapitulatif_new.Clear();
                LigneRecapSeq ligne;
                eleves = sequenceBL.listeEleveDuneClasse(classe, annee);
                foreach (EleveBE eleve in eleves)
                {
                    ligne = new LigneRecapSeq();
                    ligne = sequenceBL.recapitulatifSequentielEleve_new(eleve, classe.codeClasse, sequence.codeseq, annee);
                    recapitulatif_new.Add(ligne);
                }

                nomprof       = sequenceBL.obtenirProfTitulaire(classe.codeClasse, annee);
                codematieres  = sequenceBL.listeCodeMatiereDuneClasse(classe.codeClasse, annee);
                codesanctions = disciplineBL.listerCodeDiscipline();

                sequenceBL.journaliser("Impression du recapitulatif sequentiel de " + classe.codeClasse + " de la " + sequence.codeseq);

                // on tri la liste suivant le nom croissant avant d'imprimer
                List <LigneRecapSeq> tampon = recapitulatif_new.OrderBy(o => o.nom).ToList();
                recapitulatif_new.Clear();
                foreach (LigneRecapSeq l in tampon)
                {
                    recapitulatif_new.Add(l);
                }

                double moyenne = sequenceBL.obtenirMoyenneClasse(cmbClasse.Text, cmbSequence.Text, annee);
                StatistiqueClasseBL statistiqueClasseBL = new StatistiqueClasseBL();
                StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(cmbClasse.Text, annee, cmbSequence.Text);

                CreerEtat etat = new CreerEtat("recapitulatifNoteSequentiel-" + classe.codeClasse + "-" + sequence.codeseq, "Récapitulatif des notes de la " + sequence.nomseq);
                etat.recapitulatifNotes_new(recapitulatif_new, classe, stat, nomprof, codematieres, codesanctions, annee, moyenne);
            }
        }
        /**
         * cette fonction permet de recencer pour une classe le professeur titulaire, l'effectif le taux de reussite
         * */
        public Dictionary <string, string> syntheseClasse(string codeclasse, int annee, string periode)
        {
            Dictionary <string, string> result = new Dictionary <string, string>();

            StatistiqueClasseBL               statBL      = new StatistiqueClasseBL();
            StatistiqueClasseBE               statBE      = new StatistiqueClasseBE();
            GestionRecapitulatifAnnuelBL      recapAnnuel = new GestionRecapitulatifAnnuelBL();
            GestionRecapitulatifSequentielBL  recapSeq    = new GestionRecapitulatifSequentielBL();
            GestionRecapitulatifTrimestrielBL recapTrim   = new GestionRecapitulatifTrimestrielBL();
            List <string> sequences  = listerValeurColonneSequence("codeseq");
            List <string> trimestres = listerValeurColonneTrimestre("codetrimestre");
            double        moyenne    = 0;
            string        prof       = "";

            if (sequences.Contains(periode))
            {
                moyenne = recapSeq.obtenirMoyenneClasse(codeclasse, periode, annee);
                prof    = recapSeq.obtenirProfTitulaire(codeclasse, annee);
                statBE  = statBL.getStatistiqueDuneSequence(codeclasse, annee, periode);
            }
            else if (trimestres.Contains(periode))
            {
                moyenne = recapTrim.obtenirMoyenneClasse(codeclasse, periode, annee);
                prof    = recapTrim.obtenirProfTitulaire(codeclasse, annee);
                statBE  = statBL.getStatistiqueDunTrimestre(codeclasse, annee, periode);
            }
            else
            {
                moyenne = recapAnnuel.obtenirMoyenneClasse(codeclasse, annee);
                prof    = recapAnnuel.obtenirProfTitulaire(codeclasse, annee);
                statBE  = statBL.getStatistiqueDuneAnnee(codeclasse, annee);
            }

            result.Add("prof", prof);
            result.Add("effectif", statBE.effectif.ToString());
            result.Add("moyenne", moyenne.ToString());
            result.Add("taux", statBE.pourcentageAdmis.ToString());

            return(result);
        }
示例#4
0
        private void cmdImprimer_Click(object sender, RoutedEventArgs e)
        {
            if (cmbClasse.Text != null && txtAnneeScolaire.Text != null)
            {
                CreerEtat etat   = new CreerEtat("Resultats des matieres d'une classe", "Comparaison du travail des élèves par matière");
                ClasseBE  classe = new ClasseBE();
                classe.codeClasse = cmbClasse.Text;
                classe            = statistiqueBL.rechercherClasse(classe);

                Dictionary <string, string> stat1 = new Dictionary <string, string>();
                stat1 = statistiqueBL.syntheseClasse(cmbClasse.Text, annee, cmbExamen.Text);

                etat.exportGraphesToPDF(gridChartColumn, gridChartLine, classe, annee, periode, stat1, listeSource);

                SequenceBE sequence = new SequenceBE();
                sequence.codeseq = cmbExamen.Text;
                sequence         = sequenceBL.rechercherSequence(sequence);
                string        nomprof       = "";
                List <string> codematieres  = new List <string>();
                List <string> codesanctions = new List <string>();

                eleves.Clear();
                recapitulatif_new.Clear();
                LigneRecapSeq ligne;
                eleves = sequenceBL.listeEleveDuneClasse(classe, annee);
                foreach (EleveBE eleve in eleves)
                {
                    ligne = new LigneRecapSeq();
                    ligne = sequenceBL.recapitulatifSequentielEleve_new(eleve, classe.codeClasse, sequence.codeseq, annee);
                    recapitulatif_new.Add(ligne);
                }

                nomprof       = sequenceBL.obtenirProfTitulaire(classe.codeClasse, annee);
                codematieres  = sequenceBL.listeCodeMatiereDuneClasse(classe.codeClasse, annee);
                codesanctions = disciplineBL.listerCodeDiscipline();

                sequenceBL.journaliser("Impression du recapitulatif sequentiel de " + classe.codeClasse + " de la " + sequence.codeseq);

                // on tri la liste suivant le nom croissant avant d'imprimer
                List <LigneRecapSeq> tampon = recapitulatif_new.OrderBy(o => o.nom).ToList();
                recapitulatif_new.Clear();
                foreach (LigneRecapSeq l in tampon)
                {
                    recapitulatif_new.Add(l);
                }

                double moyenne = sequenceBL.obtenirMoyenneClasse(cmbClasse.Text, cmbExamen.Text, annee);
                StatistiqueClasseBL statistiqueClasseBL = new StatistiqueClasseBL();
                StatistiqueClasseBE stat     = statistiqueClasseBL.getStatistiqueDuneSequence(cmbClasse.Text, annee, cmbExamen.Text);
                Synthese            synthese = sequenceBL.obtenirSyntheseSequentielle(cmbClasse.Text, cmbExamen.Text, annee);

                etat = new CreerEtat("recapitulatifNoteSequentiel-" + classe.codeClasse + "-" + sequence.codeseq, "Récapitulatif des notes de la " + sequence.nomseq);
                etat.recapitulatifNotes_new(recapitulatif_new, classe, stat, nomprof, codematieres, codesanctions, annee, moyenne);

                etat = new CreerEtat("recapitulatifMoyenneSequentiel-" + classe.codeClasse + "-" + sequence.codeseq, "Récapitulatif des moyennes de la " + sequence.nomseq);
                etat.recapitulatifMoyenne(recapitulatif_new, classe, stat, nomprof, codesanctions, annee, moyenne);

                etat = new CreerEtat("recapitulatifClasseSequentiel-" + classe.codeClasse + "-" + sequence.codeseq, "Bilan de la " + sequence.nomseq);
                etat.synthese_resultat_sequentiel(classe, cmbExamen.Text, synthese);

                GenererEtatDesSanctionsDuneClasseBL genererEtatDesSanctionsDuneClasseBL = new GenererEtatDesSanctionsDuneClasseBL();
                genererEtatDesSanctionsDuneClasseBL.genererEtatSanctionSequentielleDuneClasse(classe.codeClasse, sequence.codeseq, annee);

                etat = new CreerEtat("statistique-" + classe.codeClasse + "-" + sequence.codeseq, "Statistiques sur la " + sequence.nomseq);
                etat.etatPourcentageCumuleDeNotesParSequence(classe, sequence.codeseq, annee);

                etat = new CreerEtat("ConseilClasse-" + classe.codeClasse + "-" + sequence.codeseq, "Conseil de Classe de la " + sequence.nomseq);
                etat.etatConseilDeClasse(classe, sequence.codeseq, annee);
            }
        }
        private void cmdValider_Click(object sender, RoutedEventArgs e)
        {
            //on vérifit si tous les champs ont été corectement rempli
            if ((cmbClasse.Text != null && cmbPeriode.Text != null && txtAnneeScolaire.Text != null) &&
                (cmbClasse.Text != "" && cmbPeriode.Text != "" && txtAnneeScolaire.Text != ""))
            {
                classeChoisi        = cmbClasse.Text;
                periodeChoisi       = cmbChoixPeriode.Text;
                anneeScolaireChoisi = Convert.ToInt16(txtAnneeScolaire.Text);

                if (cmbPeriode.Text.Equals("Séquence"))
                {
                    if (cmbChoixPeriode.Text != null && cmbChoixPeriode.Text != "")
                    {
                        // traitement pour une Séquence

                        //--------------------- Action pour une Séquence particulière
                        List <StatistiqueClasseBE> LStatistique = new List <StatistiqueClasseBE>();

                        if (cmbClasse.Text.Equals("<Toutes Les Classes>"))
                        {
                            List <ClasseBE> ListClasse    = statistiqueClasseBL.listerToutesLesClasses();
                            int             effectifTotal = 0;
                            int             nbAdmisTotal  = 0;
                            int             nbEchecTotal  = 0;
                            for (int i = 0; i < ListClasse.Count; i++)
                            {
                                StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(ListClasse.ElementAt(i).codeClasse, Convert.ToInt16(txtAnnee.Text), cmbChoixPeriode.Text);
                                if (stat != null)
                                {
                                    effectifTotal += stat.effectif;
                                    nbAdmisTotal  += stat.nbAdmis;
                                    nbEchecTotal  += stat.nbEchec;
                                    LStatistique.Add(stat);
                                }
                            }

                            string pourcentageTotalAdmis = Convert.ToString(Math.Round((Convert.ToDecimal(nbAdmisTotal) / Convert.ToDecimal(effectifTotal)) * 100, 2)) + "%";
                            string pourcentageTotalEchec = Convert.ToString(Math.Round((Convert.ToDecimal(nbEchecTotal) / Convert.ToDecimal(effectifTotal)) * 100, 2)) + "%";

                            StatistiqueClasseBE stat2 = new StatistiqueClasseBE("TOTAL", effectifTotal, nbAdmisTotal, pourcentageTotalAdmis, nbEchecTotal, pourcentageTotalEchec);

                            if (stat2 != null)
                            {
                                LStatistique.Add(stat2);
                            }
                        }
                        else
                        {
                            //génération des statisques
                            StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(cmbClasse.Text, Convert.ToInt16(txtAnnee.Text), cmbChoixPeriode.Text);
                            if (stat != null)
                            {
                                LStatistique.Add(stat);
                            }
                        }


                        grdStatistiqueClasse.ItemsSource = LStatistique;
                    }
                    else
                    {
                        MessageBox.Show("Vous devez choisir une Séquence !");
                    }
                }
                else if (cmbPeriode.Text.Equals("Trimestre"))
                {
                    if (cmbChoixPeriode.Text != null && cmbChoixPeriode.Text != "")
                    {
                        List <StatistiqueClasseBE> LStatistique = new List <StatistiqueClasseBE>();

                        if (cmbClasse.Text.Equals("<Toutes Les Classes>"))
                        {
                            List <ClasseBE> ListClasse    = statistiqueClasseBL.listerToutesLesClasses();
                            int             effectifTotal = 0;
                            int             nbAdmisTotal  = 0;
                            int             nbEchecTotal  = 0;
                            for (int i = 0; i < ListClasse.Count; i++)
                            {
                                StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(ListClasse.ElementAt(i).codeClasse, Convert.ToInt16(txtAnnee.Text), cmbChoixPeriode.Text);
                                if (stat != null)
                                {
                                    effectifTotal += stat.effectif;
                                    nbAdmisTotal  += stat.nbAdmis;
                                    nbEchecTotal  += stat.nbEchec;
                                    LStatistique.Add(stat);
                                }
                            }

                            string pourcentageTotalAdmis = Convert.ToString(Math.Round((Convert.ToDecimal(nbAdmisTotal) / Convert.ToDecimal(effectifTotal)) * 100, 2)) + "%";
                            string pourcentageTotalEchec = Convert.ToString(Math.Round((Convert.ToDecimal(nbEchecTotal) / Convert.ToDecimal(effectifTotal)) * 100, 2)) + "%";

                            StatistiqueClasseBE stat2 = new StatistiqueClasseBE("TOTAL", effectifTotal, nbAdmisTotal, pourcentageTotalAdmis, nbEchecTotal, pourcentageTotalEchec);

                            if (stat2 != null)
                            {
                                LStatistique.Add(stat2);
                            }
                        }
                        else
                        {
                            //génération des statisques
                            StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(cmbClasse.Text, Convert.ToInt16(txtAnnee.Text), cmbChoixPeriode.Text);
                            if (stat != null)
                            {
                                LStatistique.Add(stat);
                            }
                        }


                        grdStatistiqueClasse.ItemsSource = LStatistique;
                    }
                    else
                    {
                        MessageBox.Show("Vous devez choisir un Trimestre !");
                    }
                }
                else
                {
                    // traitement pour une année

                    List <StatistiqueClasseBE> LStatistique = new List <StatistiqueClasseBE>();

                    if (cmbClasse.Text.Equals("<Toutes Les Classes>"))
                    {
                        List <ClasseBE> ListClasse    = statistiqueClasseBL.listerToutesLesClasses();
                        int             effectifTotal = 0;
                        int             nbAdmisTotal  = 0;
                        int             nbEchecTotal  = 0;
                        for (int i = 0; i < ListClasse.Count; i++)
                        {
                            StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(ListClasse.ElementAt(i).codeClasse, Convert.ToInt16(txtAnnee.Text), cmbChoixPeriode.Text);
                            if (stat != null)
                            {
                                effectifTotal += stat.effectif;
                                nbAdmisTotal  += stat.nbAdmis;
                                nbEchecTotal  += stat.nbEchec;
                                LStatistique.Add(stat);
                            }
                        }

                        string pourcentageTotalAdmis = Convert.ToString(Math.Round((Convert.ToDecimal(nbAdmisTotal) / Convert.ToDecimal(effectifTotal)) * 100, 2)) + "%";
                        string pourcentageTotalEchec = Convert.ToString(Math.Round((Convert.ToDecimal(nbEchecTotal) / Convert.ToDecimal(effectifTotal)) * 100, 2)) + "%";

                        StatistiqueClasseBE stat2 = new StatistiqueClasseBE("TOTAL", effectifTotal, nbAdmisTotal, pourcentageTotalAdmis, nbEchecTotal, pourcentageTotalEchec);

                        if (stat2 != null)
                        {
                            LStatistique.Add(stat2);
                        }
                    }
                    else
                    {
                        //génération des statisques
                        StatistiqueClasseBE stat = statistiqueClasseBL.getStatistiqueDuneSequence(cmbClasse.Text, Convert.ToInt16(txtAnnee.Text), cmbChoixPeriode.Text);
                        if (stat != null)
                        {
                            LStatistique.Add(stat);
                        }
                    }


                    grdStatistiqueClasse.ItemsSource = LStatistique;
                }
            }
            else
            {
                MessageBox.Show("Tous les champs doivent êtres remplis !! ");
            }
        }