Exemple #1
0
        //Calcul du résultats des élèves
        // il s'agit du calcul de la note des élèves à une séquence pour une année donnée, en prenant en compte les notes
        // de l'élève sur toutes les évaluations des différentes matières ainsi que de leurs coéfficient

        //il s'agit de remplir la table "Annuelles"
        public void calculerResultatsAnnuelles(String codeClasse, int annee)
        {
            // calcul de la moyenne trimestrielle des élèves sur chacune des matières individuellement
            List <String[]> List = resultatAnnuelDA.calculResultatAnnuels(codeClasse, annee);

            if (List != null && List.Count != 0)
            {
                //on fabrique les objets de type ResultatAnnuelBE et on les mets dans le BD
                List <ResultatAnnuelBE> LResultatAnnuelBE = new List <ResultatAnnuelBE>();
                for (int i = 0; i < List.Count; i++)
                {
                    /*
                     * List.ElementAt(i)[0] : matricule;
                     * List.ElementAt(i)[1] : annee;
                     * List.ElementAt(i)[2] : totalPoint; // le total des points de l'élève
                     * List.ElementAt(i)[3] : moyenne; // la moyenne de l'élève
                     * List.ElementAt(i)[4] : coef; // la somme des coeficients
                     */

                    ResultatAnnuelBE resultatAnnuel = new ResultatAnnuelBE();
                    resultatAnnuel.matricule     = List.ElementAt(i)[0];
                    resultatAnnuel.point         = Convert.ToDouble(List.ElementAt(i)[2]);
                    resultatAnnuel.coef          = Convert.ToInt16(List.ElementAt(i)[4]);
                    resultatAnnuel.moyenne       = Convert.ToDouble(List.ElementAt(i)[3]);
                    resultatAnnuel.annee         = annee;
                    resultatAnnuel.rang          = 0;
                    resultatAnnuel.moyenneclasse = 0;
                    if (getMention(resultatAnnuel.moyenne) != null)
                    {
                        resultatAnnuel.mention = getMention(resultatAnnuel.moyenne);
                    }
                    else
                    {
                        resultatAnnuel.mention = "";
                    }
                    resultatAnnuel.remarque = "";

                    if (resultatAnnuel.moyenne >= 10)
                    {
                        resultatAnnuel.decision = "Admis";
                    }
                    else
                    {
                        resultatAnnuel.decision = "Echec";
                    }

                    EleveBE eleve = new EleveBE();
                    eleve.matricule = resultatAnnuel.matricule;

                    if (resultatAnnuel.moyenne >= 10)
                    {
                        if (eleveDA.rechercherNiveau(eleve, annee) != -1)
                        {
                            resultatAnnuel.newNiveau = eleveDA.rechercherNiveau(eleve, annee) + 1;
                        }
                        else
                        {
                            resultatAnnuel.newNiveau = eleveDA.rechercherNiveau(eleve, annee);
                        }
                    }
                    else
                    {
                        resultatAnnuel.newNiveau = eleveDA.rechercherNiveau(eleve, annee);
                    }

                    //resultatAnnuel.moyenneMin = 0;
                    //resultatAnnuel.moyenneMax = 0;

                    LResultatAnnuelBE.Add(resultatAnnuel);
                }

                //-------------- on calcule le rang, la moyenne générale de la classe, les moyennes min et max

                double moyenneDeLaClasse = 0; // moyenne générale de la classe
                //double moyenneMin = LResultatTrimestriels.ElementAt(0).moyenne; // moyenne mininale des élèves de la classe
                //double moyenneMax = LResultatTrimestriels.ElementAt(0).moyenne; // moyenne maximale des élèves de la classe

                //on trie la liste
                LResultatAnnuelBE = LResultatAnnuelBE.OrderByDescending(o => o.moyenne).ToList();

                ResultatAnnuelBE resultatPrecedent = new ResultatAnnuelBE();

                for (int i = 0; i < LResultatAnnuelBE.Count; i++)
                {
                    // ------------------- DEBUT détermination du rang
                    if (i == 0)
                    {                                                                  // on est sur le premier (celui qui a la plus grande note)
                        ResultatAnnuelBE oldResultat = LResultatAnnuelBE.ElementAt(i); // l'ancienne version de la moyenne (sera utilisé pour la modification)

                        LResultatAnnuelBE.ElementAt(i).rang = 1;                       // le premier pour cette séquence et cette matière

                        //on met à jour le rang dans la BD
                        //modifierMoyenne(oldResultat, ResultatAnnuelBE.ElementAt(j));

                        resultatPrecedent = LResultatAnnuelBE.ElementAt(i);
                    }
                    else
                    {
                        if (LResultatAnnuelBE.ElementAt(i).moyenne == resultatPrecedent.moyenne)
                        {
                            ResultatAnnuelBE oldResultat = LResultatAnnuelBE.ElementAt(i); // l'ancienne version de la moyenne (sera utilisé pour la modification)

                            //alors on a un ex éco (ils ont le même rang)
                            LResultatAnnuelBE.ElementAt(i).rang = resultatPrecedent.rang;

                            //on met à jour le rang dans la BD
                            //modifierMoyenne(oldResultat, LResultatAnnuelBE.ElementAt(j));
                        }
                        else
                        {
                            ResultatAnnuelBE oldResultat = LResultatAnnuelBE.ElementAt(i); // l'ancienne version de la moyenne (sera utilisé pour la modification)

                            //alors l'élève prend le rend suivant
                            //LResultatAnnuelBE.ElementAt(j).rang = moyennePrecedente.rang + 1;
                            LResultatAnnuelBE.ElementAt(i).rang = i + 1;

                            //on met à jour le rang dans la BD
                            //modifierMoyenne(oldResultat, LResultatAnnuelBE.ElementAt(j));
                        }

                        resultatPrecedent = LResultatAnnuelBE.ElementAt(i);
                    }
                    // ------------------- FIN détermination du rang

                    // ------------------- DEBUT détermination de la moyenne de la classe

                    moyenneDeLaClasse = moyenneDeLaClasse + LResultatAnnuelBE.ElementAt(i).moyenne;

                    // ------------------- FIN détermination de la moyenne de la classe



                    //// ------------------- DEBUT détermination des moyennes minimales et maximales

                    //if (LResultatAnnuelBE.ElementAt(i).moyenne < moyenneMin)
                    //    moyenneMin = LResultatAnnuelBE.ElementAt(i).moyenne;

                    //if (LResultatAnnuelBE.ElementAt(i).moyenne > moyenneMax)
                    //    moyenneMax = LResultatAnnuelBE.ElementAt(i).moyenne;

                    //// ------------------- FIN détermination des moyennes minimales et maximales
                }

                moyenneDeLaClasse = moyenneDeLaClasse / LResultatAnnuelBE.Count;

                //------------------- DEBUT mise à jour des moyennes avec les infos telles que : moyenneClasse, mention, moyenneMin, moyenneMax

                for (int i = 0; i < LResultatAnnuelBE.Count; i++)
                {
                    LResultatAnnuelBE.ElementAt(i).moyenneclasse = moyenneDeLaClasse;
                    //LResultatAnnuelBE.ElementAt(i).moyenneMin = moyenneMin;
                    //LResultatAnnuelBE.ElementAt(i).moyenneMax = moyenneMax;

                    //on met à jour le rang dans la BD
                    if (resultatAnnuelDA.rechercher(LResultatAnnuelBE.ElementAt(i)) != null)
                    {
                        resultatAnnuelDA.supprimer(LResultatAnnuelBE.ElementAt(i));
                    }

                    resultatAnnuelDA.ajouter(LResultatAnnuelBE.ElementAt(i));

                    //modifierMoyenneTrimestriel(LResultatAnnuelBE.ElementAt(i), LResultatAnnuelBE.ElementAt(i));
                }

                //------------------- FIN mise à jour des moyennes avec les infos telles que : moyenneClasse, mention, moyenneMin, moyenneMax
            }

            journalDA.journaliser("Calcul des résultats annuelles des élèves de la classe " + codeClasse + ", année " + annee);
        }
Exemple #2
0
 public BulletinAnnuel(EleveBE eleve, ClasseBE classe, int annee, int nbTrimestre, int nbSequence, List <LigneBulletinAnnuel> listLigneBulletinAnnuel, ResultatAnnuelBE resultatannuel, List <SanctionnerBE> ListSanction)
 {
     this.eleve                   = null;
     this.classe                  = null;
     this.annee                   = annee;
     this.nbTrimestre             = nbTrimestre;
     this.nbSequence              = nbSequence;
     this.listLigneBulletinAnnuel = listLigneBulletinAnnuel;
     this.resultatannuel          = resultatannuel;
     this.ListSanction            = ListSanction;
 }
Exemple #3
0
        private void actionToExcecuteOnClick()
        {
            int            annee  = notificationBL.anneeEnCours();
            List <EleveBE> eleves = new List <EleveBE>();

            nb       = 0;
            nbreussi = 0;
            echecs   = new List <Adresse>();
            Dictionary <string, string> mappage       = new Dictionary <string, string>();
            Dictionary <string, string> mappageNumero = new Dictionary <string, string>();

            switch (action)
            {
            case CONVOCATION_PARENT:

                EleveBE eleve = new EleveBE();
                eleve.matricule = convocationParent.matricule;
                eleve           = notificationBL.rechercherEleve(eleve);
                nb       = 1;
                nbreussi = 0;

                string[] adresse = new string[2] {
                    eleve.matricule, eleve.telParent
                };
                Dictionary <string, int> result = new Dictionary <string, int>();

                if (Tools.format_number(eleve.telParent) == "")
                {
                    echecs.Add(new Adresse(eleve.telParent, eleve.nom));
                }
                else
                {
                    nbreussi++;
                    result = notificationBL.envoiSMS(adresse, convocationParent.message);
                }

                break;

            case CONVOCATION_PERSONNEL:
                EnseignantBE prof = new EnseignantBE();
                prof.codeProf = convocationPersonnel.matricule;
                prof          = notificationBL.rechercherEnseignant(prof);
                nb            = 1;
                nbreussi      = 0;

                adresse = new string[2] {
                    prof.codeProf, prof.tel
                };
                result = new Dictionary <string, int>();

                if (Tools.format_number(prof.tel) == "")
                {
                    echecs.Add(new Adresse(prof.tel, prof.nomProf));
                }
                else
                {
                    nbreussi++;
                    result = notificationBL.envoiSMS(adresse, convocationPersonnel.message);
                }

                break;

            case ENVOI_RESULTAT:
                List <string>   sequences       = notificationBL.listerValeurColonneSequence("codeseq");
                List <string>   trimestres      = notificationBL.listerValeurColonneTrimestre("codetrimestre");
                List <string[]> destinataireSMS = new List <string[]>();
                mappage       = new Dictionary <string, string>();
                mappageNumero = new Dictionary <string, string>();

                if (envoiResultat.classe == EnvoyerResultatUC.TOUTE)
                {
                    eleves = notificationBL.listeEleveDuneAnnee(annee);
                }
                else
                {
                    eleves = notificationBL.listeEleveDuneClasse(envoiResultat.classe, annee);
                }
                string message = "";
                if (eleves != null)
                {
                    nb       = eleves.Count;
                    nbreussi = 0;

                    if (sequences.Contains(envoiResultat.periode))
                    {
                        ResultatBE resultat;
                        foreach (EleveBE e in eleves)
                        {
                            resultat = new ResultatBE();
                            resultat = notificationBL.resultatSequentielleEleve(e.matricule, annee, envoiResultat.periode);

                            if (Tools.format_number(e.telParent) == "")
                            {
                                echecs.Add(new Adresse(e.telParent, e.nom));
                            }
                            else
                            {
                                nbreussi++;
                                message = "L'élève " + e.nom + " a obtenu la note de " + resultat.moyenne
                                          + " pour le compte de la Séquence " + envoiResultat.periode
                                          + " Rang " + resultat.rang
                                          + " Moyenne générale " + resultat.moyenneclasse;

                                destinataireSMS.Add(new string[3] {
                                    e.matricule, e.telParent, message
                                });
                                mappage.Add(e.matricule, e.nom);
                                mappageNumero.Add(e.matricule, e.telParent);
                            }
                        }
                    }

                    if (trimestres.Contains(envoiResultat.periode))
                    {
                        ResultatTrimestrielBE resultat;
                        foreach (EleveBE e in eleves)
                        {
                            resultat = new ResultatTrimestrielBE();
                            resultat = notificationBL.resultatTrimestrielEleve(e.matricule, annee, envoiResultat.periode);

                            if (Tools.format_number(e.telParent) == "")
                            {
                                echecs.Add(new Adresse(e.telParent, e.nom));
                            }
                            else
                            {
                                nbreussi++;
                                message = "L'élève " + e.nom + " a obtenu la note de " + resultat.moyenne
                                          + " pour le compte du Trimestre " + envoiResultat.periode
                                          + " Rang " + resultat.rang
                                          + " Moyenne générale " + resultat.moyenneclasse;

                                destinataireSMS.Add(new string[3] {
                                    e.matricule, e.telParent, message
                                });
                                mappage.Add(e.matricule, e.nom);
                                mappageNumero.Add(e.matricule, e.telParent);
                            }
                        }
                    }

                    if (EnvoyerResultatUC.ANNUEL == envoiResultat.periode)
                    {
                        ResultatAnnuelBE resultat;
                        foreach (EleveBE e in eleves)
                        {
                            resultat = new ResultatAnnuelBE();
                            resultat = notificationBL.resultatAnnuelDunEleve(e.matricule, annee);

                            if (Tools.format_number(e.telParent) == "")
                            {
                                echecs.Add(new Adresse(e.telParent, e.nom));
                            }
                            else
                            {
                                nbreussi++;
                                message = "L'élève " + e.nom + " a obtenu la note annuelle de " + resultat.moyenne
                                          + " pour le compte de l'année académique : " + (annee - 1) + "/" + annee
                                          + " Rang " + resultat.rang
                                          + " Moyenne générale " + resultat.moyenneclasse;

                                destinataireSMS.Add(new string[3] {
                                    e.matricule, e.telParent, message
                                });
                                mappage.Add(e.matricule, e.nom);
                                mappageNumero.Add(e.matricule, e.telParent);
                            }
                        }
                    }
                }

                result = new Dictionary <string, int>();
                result = notificationBL.envoiSMS(destinataireSMS);
                //if (result != null)
                //{
                //    foreach (KeyValuePair<string, string> element in mappage)
                //    {
                //        if (result[element.Key] != 0)
                //            echecs.Add(new Adresse(mappageNumero[element.Key], element.Value));
                //    }
                //    nbreussi = nb - echecs.Count;
                //}
                //else
                //{
                //    foreach (KeyValuePair<string, string> element in mappage)
                //    {
                //        echecs.Add(new Adresse(mappageNumero[element.Key], element.Value));
                //    }
                //}

                break;

            case REUNION:
                destinataireSMS = new List <string[]>();
                mappage         = new Dictionary <string, string>();
                mappageNumero   = new Dictionary <string, string>();
                nbreussi        = 0;
                nb = 0;

                if (ReunionUC.ENSEIGNANT == reunion.concerne)
                {
                    List <EnseignantBE> liste = new List <EnseignantBE>();
                    liste = notificationBL.listerToutEnseignants();
                    if (liste != null)
                    {
                        nb = liste.Count;
                        foreach (EnseignantBE e in liste)
                        {
                            if (Tools.format_number(e.tel) == "")
                            {
                                echecs.Add(new Adresse(e.tel, e.nomProf));
                            }
                            else
                            {
                                nbreussi++;
                                destinataireSMS.Add(new string[2] {
                                    e.codeProf, e.tel
                                });
                                mappage.Add(e.codeProf, e.nomProf);
                                mappageNumero.Add(e.codeProf, e.tel);
                            }
                        }
                    }
                }
                else if (ReunionUC.PARENT == reunion.concerne)
                {
                    List <EleveBE> list = new List <EleveBE>();
                    list = notificationBL.listeEleveDuneAnnee(annee);
                    if (list != null)
                    {
                        nb = list.Count;
                        foreach (EleveBE e in list)
                        {
                            if (Tools.format_number(e.telParent) == "")
                            {
                                echecs.Add(new Adresse(e.telParent, e.nom));
                            }
                            else
                            {
                                nbreussi++;
                                destinataireSMS.Add(new string[2] {
                                    e.matricule, e.telParent
                                });
                                mappage.Add(e.matricule, e.nom);
                                mappageNumero.Add(e.matricule, e.telParent);
                            }
                        }
                    }
                }
                else if (ReunionUC.MIXTE == reunion.concerne)
                {
                    List <EnseignantBE> liste = new List <EnseignantBE>();
                    liste = notificationBL.listerToutEnseignants();
                    if (liste != null)
                    {
                        nb = liste.Count;
                        foreach (EnseignantBE e in liste)
                        {
                            if (Tools.format_number(e.tel) == "")
                            {
                                echecs.Add(new Adresse(e.tel, e.nomProf));
                            }
                            else
                            {
                                nbreussi++;
                                destinataireSMS.Add(new string[2] {
                                    e.codeProf, e.tel
                                });
                                mappage.Add(e.codeProf, e.nomProf);
                                mappageNumero.Add(e.codeProf, e.tel);
                            }
                        }
                    }
                    List <EleveBE> list = new List <EleveBE>();
                    list = notificationBL.listeEleveDuneAnnee(annee);
                    if (list != null)
                    {
                        nb += list.Count;
                        foreach (EleveBE e in list)
                        {
                            if (Tools.format_number(e.telParent) == "")
                            {
                                echecs.Add(new Adresse(e.telParent, e.nom));
                            }
                            else
                            {
                                nbreussi++;
                                destinataireSMS.Add(new string[2] {
                                    e.matricule, e.telParent
                                });
                                mappage.Add(e.matricule, e.nom);
                                mappageNumero.Add(e.matricule, e.telParent);
                            }
                        }
                    }
                }

                message = reunion.message;
                result  = new Dictionary <string, int>();
                result  = notificationBL.envoiSMS(destinataireSMS, message);

                //if (result != null)
                //{
                //    foreach (KeyValuePair<string, string> element in mappage)
                //    {
                //        if (result[element.Key] != 0)
                //            echecs.Add(new Adresse(mappageNumero[element.Key], element.Value));
                //    }
                //    nbreussi = nb - echecs.Count;
                //}
                //else
                //    foreach (KeyValuePair<string, string> element in mappage)
                //    {
                //        echecs.Add(new Adresse(mappageNumero[element.Key], element.Value));
                //    }

                break;

            case REUNION_ELEVE:
                destinataireSMS = new List <string[]>();
                eleves          = new List <EleveBE>();
                mappage         = new Dictionary <string, string>();
                mappageNumero   = new Dictionary <string, string>();
                nbreussi        = 0;

                if (ReunionEleveUC.SERIE == reunionEleve.concerne)
                {
                    eleves = notificationBL.listeEleveDuneSerie(reunionEleve.code, annee);
                    if (eleves != null)
                    {
                        foreach (EleveBE e in eleves)
                        {
                            if (Tools.format_number(e.telParent) == "")
                            {
                                echecs.Add(new Adresse(e.telParent, e.nom));
                            }
                            else
                            {
                                nbreussi++;
                                destinataireSMS.Add(new string[2] {
                                    e.matricule, e.telParent
                                });
                                mappage.Add(e.matricule, e.nom);
                                mappageNumero.Add(e.matricule, e.telParent);
                            }
                        }
                    }
                }
                else if (ReunionEleveUC.CYCLE == reunionEleve.concerne)
                {
                    eleves = notificationBL.listeEleveDunCycle(reunionEleve.code, annee);
                    if (eleves != null)
                    {
                        foreach (EleveBE e in eleves)
                        {
                            if (Tools.format_number(e.telParent) == "")
                            {
                                echecs.Add(new Adresse(e.telParent, e.nom));
                            }
                            else
                            {
                                nbreussi++;
                                destinataireSMS.Add(new string[2] {
                                    e.matricule, e.telParent
                                });
                                mappage.Add(e.matricule, e.nom);
                                mappageNumero.Add(e.matricule, e.telParent);
                            }
                        }
                    }
                }
                else if (ReunionEleveUC.NIVEAU == reunionEleve.concerne)
                {
                    eleves = notificationBL.listeEleveDunNiveau(reunionEleve.code, annee);
                    if (eleves != null)
                    {
                        foreach (EleveBE e in eleves)
                        {
                            if (Tools.format_number(e.telParent) == "")
                            {
                                echecs.Add(new Adresse(e.telParent, e.nom));
                            }
                            else
                            {
                                nbreussi++;
                                destinataireSMS.Add(new string[2] {
                                    e.matricule, e.telParent
                                });
                                mappage.Add(e.matricule, e.nom);
                                mappageNumero.Add(e.matricule, e.telParent);
                            }
                        }
                    }
                }
                else if (ReunionEleveUC.CLASSE == reunionEleve.concerne)
                {
                    eleves = notificationBL.listeEleveDuneClasse(reunionEleve.code, annee);
                    if (eleves != null)
                    {
                        foreach (EleveBE e in eleves)
                        {
                            if (Tools.format_number(e.telParent) == "")
                            {
                                echecs.Add(new Adresse(e.telParent, e.nom));
                            }
                            else
                            {
                                nbreussi++;
                                destinataireSMS.Add(new string[2] {
                                    e.matricule, e.telParent
                                });
                                mappage.Add(e.matricule, e.nom);
                                mappageNumero.Add(e.matricule, e.telParent);
                            }
                        }
                    }
                }
                else if (ReunionEleveUC.MIXTE == reunionEleve.concerne)
                {
                    eleves = notificationBL.listeEleveDuneAnnee(annee);
                    if (eleves != null)
                    {
                        foreach (EleveBE e in eleves)
                        {
                            if (Tools.format_number(e.telParent) == "")
                            {
                                echecs.Add(new Adresse(e.telParent, e.nom));
                            }
                            else
                            {
                                nbreussi++;
                                destinataireSMS.Add(new string[2] {
                                    e.matricule, e.telParent
                                });
                                mappage.Add(e.matricule, e.nom);
                                mappageNumero.Add(e.matricule, e.telParent);
                            }
                        }
                    }
                }

                nb     = eleves.Count;
                result = new Dictionary <string, int>();
                result = notificationBL.envoiSMS(destinataireSMS, reunionEleve.message);

                //if (result != null)
                //{
                //    foreach (KeyValuePair<string, string> element in mappage)
                //    {
                //        if (result[element.Key] != 0)
                //            echecs.Add(new Adresse(mappageNumero[element.Key], element.Value));
                //    }
                //    nbreussi = nb - echecs.Count;
                //}
                //else
                //    foreach (KeyValuePair<string, string> element in mappage)
                //    {
                //        echecs.Add(new Adresse(mappageNumero[element.Key], element.Value));
                //    }

                break;

            default:
                break;
            }
        }