public void enregistrerAppreciationResultat(string matricule, string periode, string choixPeriode, int annee, string appreciation) { List <ResultatBE> ListResultats = new List <ResultatBE>(); if (periode.Equals("Séquence")) { ListResultats = resultatDA.listerSuivantCritere(" matricule = '" + matricule + "' AND codeSeq = '" + choixPeriode + "' AND annee = '" + annee + "'"); } else if (periode.Equals("Trimestre")) { ListResultats = resultatDA.listerSuivantCritere(" matricule = '" + matricule + "' AND codeTrimestre = '" + choixPeriode + "' AND annee = '" + annee + "'"); } else if (periode.Equals("Année")) { ListResultats = resultatDA.listerSuivantCritere(" matricule = '" + matricule + "' AND annee = '" + annee + "'"); } if (ListResultats != null && ListResultats.Count != 0) { ResultatBE ancienResultat = new ResultatBE(); ancienResultat = ListResultats.ElementAt(0); ResultatBE nouveauResultat = new ResultatBE(); nouveauResultat = ancienResultat; nouveauResultat.appreciation = appreciation; modifierResultat(ancienResultat, nouveauResultat); } }
// supprimer un Resultat public bool supprimerResultat(ResultatBE resultat) { if (resultatDA.supprimer(resultat)) { journalDA.journaliser("suppression du résultat séquentiel de l'élève de matricule " + resultat.matricule + ". séquence : " + resultat.codeseq + ", année : " + resultat.annee + ", moyenne : " + resultat.moyenne); return(true); } return(false); }
// modifier un Resultat public bool modifierResultat(ResultatBE resultat, ResultatBE newResultat) { if (resultatDA.modifier(resultat, newResultat)) { journalDA.journaliser("modification du résultat séquentiel de l'élève de matricule " + resultat.matricule + ". séquence : " + resultat.codeseq + ", année : " + resultat.annee + ". ancienne moyenne : " + resultat.moyenne + ", nouvelle moyenne : " + newResultat.moyenne); return(true); } return(false); }
// ajouter un Resultat public bool ajouterResultat(ResultatBE resultat) { if (resultatDA.ajouter(resultat)) { journalDA.journaliser("enregistrement d'un résultat séquentiel de l'élève de matricule " + resultat.matricule + ". séquence : " + resultat.codeseq + ", année : " + resultat.annee + ", moyenne : " + resultat.moyenne); return(true); } return(false); }
// rechercher un Resultat public ResultatBE rechercherResultat(ResultatBE resultat) { return(resultatDA.rechercher(resultat)); }
//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 calculerResultats(String codeClasse, String codeSequence, int annee) { List <EleveBE> listeEleve = eleveDA.listeEleveDuneClasse(codeClasse, annee); GenererBulletinsSequentielBL genererBulletinBL = new GenererBulletinsSequentielBL(); foreach (EleveBE e in listeEleve) { genererBulletinBL.DefinirLesAvertissementsEtBlamesDunEleve(e.matricule, codeSequence, annee); } // calcul de la moyenne Sequentielle des élèves sur chacune des matières individuellement List <String[]> List = resultatDA.calculResultatSequentiel(codeClasse, codeSequence, annee); if (List != null && List.Count != 0) { //on fabrique les objets de type Resultat Sequentiel et on les mets dans le BD List <ResultatBE> LResultatSequentiels = new List <ResultatBE>(); for (int i = 0; i < List.Count; i++) { /* * List.ElementAt(i)[0] : matricule; * List.ElementAt(i)[1] : codeSequence; * 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 */ ResultatBE resultatSequentiel = new ResultatBE(); resultatSequentiel.codeseq = codeSequence; resultatSequentiel.matricule = List.ElementAt(i)[0]; resultatSequentiel.point = Convert.ToDouble(List.ElementAt(i)[3]); resultatSequentiel.coef = Convert.ToInt16(List.ElementAt(i)[5]); resultatSequentiel.moyenne = Convert.ToDouble(List.ElementAt(i)[4]); resultatSequentiel.annee = annee; resultatSequentiel.rang = 0; resultatSequentiel.moyenneclasse = 0; if (getMention(resultatSequentiel.moyenne) != null) { resultatSequentiel.mention = getMention(resultatSequentiel.moyenne); } else { resultatSequentiel.mention = ""; } resultatSequentiel.remarque = ""; if (resultatSequentiel.moyenne >= 10) { resultatSequentiel.decision = "Admis"; } else { resultatSequentiel.decision = "Echec"; } //resultatSequentiel.moyenneMin = 0; //resultatresultatSequentiel.moyenneMax = 0; LResultatSequentiels.Add(resultatSequentiel); } //-------------- 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 LResultatSequentiels = LResultatSequentiels.OrderByDescending(o => o.moyenne).ToList(); ResultatBE resultatPrecedent = new ResultatBE(); for (int i = 0; i < LResultatSequentiels.Count; i++) { // ------------------- DEBUT détermination du rang if (i == 0) { // on est sur le premier (celui qui a la plus grande note) ResultatBE oldResultat = LResultatSequentiels.ElementAt(i); // l'ancienne version de la moyenne (sera utilisé pour la modification) LResultatSequentiels.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 = LResultatSequentiels.ElementAt(i); } else { if (LResultatSequentiels.ElementAt(i).moyenne == resultatPrecedent.moyenne) { ResultatBE oldResultat = LResultatSequentiels.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) LResultatSequentiels.ElementAt(i).rang = resultatPrecedent.rang; //on met à jour le rang dans la BD //modifierMoyenne(oldResultat, LMoyenneAvecRang.ElementAt(j)); } else { ResultatBE oldResultat = LResultatSequentiels.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; LResultatSequentiels.ElementAt(i).rang = i + 1; //on met à jour le rang dans la BD //modifierMoyenne(oldResultat, LMoyenneAvecRang.ElementAt(j)); } resultatPrecedent = LResultatSequentiels.ElementAt(i); } // ------------------- FIN détermination du rang // ------------------- DEBUT détermination de la moyenne de la classe moyenneDeLaClasse = moyenneDeLaClasse + LResultatSequentiels.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 / LResultatSequentiels.Count; //------------------- DEBUT mise à jour des moyennes avec les infos telles que : moyenneClasse, mention, moyenneMin, moyenneMax for (int i = 0; i < LResultatSequentiels.Count; i++) { LResultatSequentiels.ElementAt(i).moyenneclasse = moyenneDeLaClasse; //LResultatTrimestriels.ElementAt(i).moyenneMin = moyenneMin; //LResultatTrimestriels.ElementAt(i).moyenneMax = moyenneMax; //on met à jour le rang dans la BD if (resultatDA.rechercher(LResultatSequentiels.ElementAt(i)) != null) { resultatDA.supprimer(LResultatSequentiels.ElementAt(i)); } resultatDA.ajouter(LResultatSequentiels.ElementAt(i)); //modifierMoyenneSequentiel(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 séquentiels des élèves de la classe : " + codeClasse + ", séquence : " + codeSequence + ", année : " + annee); }
public bool modifierResultat(ResultatBE resultat, ResultatBE newResultat) { return(resultatDA.modifier(resultat, newResultat)); }
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; } }
public BullettinSequentiel(EleveBE eleve, ClasseBE classe, int annee, int nbEvaluation, List <LigneBulletinSequentiel> listLigneBulletinSequentiel, ResultatBE resultatSequentiel, List <SanctionnerBE> ListSanction) { this.eleve = null; this.classe = null; this.annee = annee; this.nbEvaluation = nbEvaluation; this.listLigneBulletinSequentiel = listLigneBulletinSequentiel; this.resultatSequentiel = resultatSequentiel; this.ListSanction = ListSanction; }