// 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); }
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; } }