// ajouter un Resultat Trimestriel
 public bool ajouterResultatTrimestriel(ResultatTrimestrielBE resultat)
 {
     if (resultatTrimestrielDA.ajouter(resultat))
     {
         journalDA.journaliser("enregistrement du résultat trimestriel de l'élève de matricule " + resultat.matricule + ", année : " + resultat.annee + ", trimestre : " + resultat.codeTrimestre + ", moyenne : " + resultat.moyenne);
         return(true);
     }
     return(false);
 }
 // supprimer un Resultat Trimestriel
 public bool supprimerResultatTrimestriel(ResultatTrimestrielBE resultat)
 {
     if (resultatTrimestrielDA.supprimer(resultat))
     {
         journalDA.journaliser("suppression du résultat trimestriel de l'élève de matricule " + resultat.matricule + ", année : " + resultat.annee + ", trimestre : " + resultat.codeTrimestre + ", moyenne : " + resultat.moyenne);
         return(true);
     }
     return(false);
 }
 public BulletinTrimestriel(EleveBE eleve, ClasseBE classe, int annee, int nbSequence, List <LigneBulletinTrimestriel> listLigneBulletinTrimestriel, ResultatTrimestrielBE resultattrimestriel, List <SanctionnerBE> ListSanction)
 {
     this.eleve      = null;
     this.classe     = null;
     this.annee      = annee;
     this.nbSequence = nbSequence;
     this.listLigneBulletinTrimestriel = listLigneBulletinTrimestriel;
     this.resultattrimestriel          = resultattrimestriel;
     this.ListSanction = ListSanction;
 }
        //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 "Résultat"
        public void calculerResultatsTrimestriels(String codeClasse, String codeTrimestre, int annee)
        {
            // calcul de la moyenne trimestrielle des élèves sur chacune des matières individuellement
            List <String[]> List = resultatTrimestrielDA.calculResultatTrimestriel(codeClasse, codeTrimestre, annee);

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

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

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

                    //resultatTrimestriel.moyenneMin = 0;
                    //resultatTrimestriel.moyenneMax = 0;

                    LResultatTrimestriels.Add(resultatTrimestriel);
                }

                //-------------- 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
                LResultatTrimestriels = LResultatTrimestriels.OrderByDescending(o => o.moyenne).ToList();

                ResultatTrimestrielBE resultatPrecedent = new ResultatTrimestrielBE();

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

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

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

                        resultatPrecedent = LResultatTrimestriels.ElementAt(i);
                    }
                    else
                    {
                        if (LResultatTrimestriels.ElementAt(i).moyenne == resultatPrecedent.moyenne)
                        {
                            ResultatTrimestrielBE oldResultat = LResultatTrimestriels.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)
                            LResultatTrimestriels.ElementAt(i).rang = resultatPrecedent.rang;

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

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

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

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

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

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

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



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

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

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

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

                moyenneDeLaClasse = moyenneDeLaClasse / LResultatTrimestriels.Count;

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

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

                    //on met à jour le rang dans la BD
                    if (resultatTrimestrielDA.rechercher(LResultatTrimestriels.ElementAt(i)) != null)
                    {
                        supprimerResultatTrimestriel(LResultatTrimestriels.ElementAt(i));
                    }

                    ajouterResultatTrimestriel(LResultatTrimestriels.ElementAt(i));

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

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

            journalDA.journaliser("Calcul des résultats trimestriels des élèves de la classe : " + codeClasse + ", trimestre : " + codeTrimestre + ", année : " + annee);
        }
Esempio n. 5
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;
            }
        }