/// <summary> /// Führt den Check durch. /// </summary> /// <param name="schueler">Der Schüler.</param> /// <param name="reason">Die Art der Prüfung.</param> public override void Check(Schueler schueler, Zeitpunkt reason, NotenCheckResults res) { FpANotenTableAdapter fpAAdapter = new FpANotenTableAdapter(); var fpANoten = fpAAdapter.GetDataBySchuelerId(schueler.Id); if (fpANoten.Count == 0) { res.Add(schueler, null, "Es liegt keine FpA-Note vor."); } else { var note = fpANoten[0].Note; if (note == 3) { res.Add(schueler, null, "Die fachpraktische Ausbildung wurde ohne Erfolg durchlaufen."); } } }
/// <summary> /// Methode importiert die Zeugnisnoten des Vorjahres. /// </summary> /// <param name="fileName">Der Dateiname.</param> public static void ImportiereNoten(string fileName) { using (FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) using (StreamReader reader = new StreamReader(stream)) { var schuelerAdapter = new SchuelerTableAdapter(); var fpaAdapter = new FpANotenTableAdapter(); Dictionary<string, Kurs> kurse = GetKursverzeichnis(); kurse.Add("G", GetGeschichteKurs()); while (!reader.EndOfStream) { string[] line = reader.ReadLine().Split(SeparatorChar); int schuelerId = int.Parse(line[0]); var schuelerGefunden = schuelerAdapter.GetDataById(schuelerId); if (schuelerGefunden == null || schuelerGefunden.Count == 0) { continue; } var schueler = new Schueler(schuelerGefunden[0]); if (schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Zwoelf) { // nur bei Schülern in der zwölften Klasse wird irgendetwas importiert if (line.Length == 5) { //notenzeile string nachname = line[1]; string fachKuerzel = line[2]; string lehrerKuerzel = line[3]; if (string.IsNullOrEmpty(line[4])) // was das heißt ist aber auch fraglich. keine Note? { continue; } byte zeugnisnote = byte.Parse(line[4]); if (schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Zwoelf) { schueler.MeldeAn(kurse[fachKuerzel.ToUpper()]); BerechneteNote bnote = new BerechneteNote(kurse[fachKuerzel.ToUpper()].Id, schueler.Id); bnote.ErstesHalbjahr = false; bnote.JahresfortgangGanzzahlig = zeugnisnote; bnote.Abschlusszeugnis = zeugnisnote; bnote.writeToDB(); } } else if (line.Length == 3) { //FpA-Zeile string nachname = line[1]; int gesamterfolg = int.Parse(line[2]); fpaAdapter.Insert(schuelerId, "", null, null, null, null, gesamterfolg, null, null); } else throw new InvalidOperationException("Diese Zeile hat " + line.Length + " Spalten. Das ist mir unbekannt"); } } } TrageFehlendeSchülerInDummykurseEin(); }
/// <summary> /// Konstruktor. /// </summary> /// <param name="schuelerId">Die Id des anzuzeigenden Schülers.</param> public Notenbogen(int schuelerId) { log.Debug("Öffne Notenbogen SchülerId=" + schuelerId); InitializeComponent(); schueler = new Schueler(schuelerId); nameTextBox.Text = schueler.NameVorname; klasseTextBox.Text = schueler.getKlasse.Data.Bezeichnung; textBoxAdresse.Text = schueler.Data.AnschriftStrasse + "\n" + schueler.Data.AnschriftPLZ + " " + schueler.Data.AnschriftOrt + "\n Tel.:" + schueler.Data.AnschriftTelefonnummer; SchuelerNoten noten = schueler.getNoten; // Row[lineCount] für schriftliche und Row[lineCount+1] für mündliche Noten int lineCount = 0; foreach(var kursNoten in noten.alleFaecher) { dataGridNoten.Rows.Add(2); dataGridNoten.Rows[lineCount + 1].Height += 2; dataGridNoten.Rows[lineCount + 1].DividerHeight = 2; dataGridNoten.Rows[lineCount].Cells[0].Value = kursNoten.getFach.Bezeichnung; InsertNoten(1, lineCount, kursNoten.getNoten(Halbjahr.Erstes, Notentyp.Schulaufgabe)); InsertNoten(1, lineCount+1, kursNoten.sonstigeLeistungen(Halbjahr.Erstes)); InsertNoten(10, lineCount, kursNoten.getNoten(Halbjahr.Zweites, Notentyp.Schulaufgabe)); InsertNoten(10, lineCount+1, kursNoten.sonstigeLeistungen(Halbjahr.Zweites)); InsertSchnitt(8,lineCount,kursNoten.getSchnitt(Halbjahr.Erstes)); BerechneteNote zeugnis = kursNoten.getSchnitt(Halbjahr.Zweites); InsertSchnitt(18,lineCount, zeugnis); InsertNoten(20, lineCount, kursNoten.getNoten(Halbjahr.Zweites, Notentyp.APSchriftlich)); InsertNoten(20, lineCount + 1, kursNoten.getNoten(Halbjahr.Zweites, Notentyp.APMuendlich)); if (zeugnis != null) { if (zeugnis.PruefungGesamt != null) { dataGridNoten.Rows[lineCount].Cells[21].Value = zeugnis.PruefungGesamt; dataGridNoten.Rows[lineCount].Cells[22].Value = zeugnis.SchnittFortgangUndPruefung; dataGridNoten.Rows[lineCount].Cells[23].Value = zeugnis.Abschlusszeugnis; } else dataGridNoten.Rows[lineCount].Cells[23].Value = zeugnis.JahresfortgangGanzzahlig; } lineCount = lineCount + 2; } if (schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Elf) { FpANotenTableAdapter fpAAdapter = new FpANotenTableAdapter(); var fpANoten = fpAAdapter.GetDataBySchuelerId(schueler.Id); if (fpANoten.Count == 1) { textBoxFpABemerkung.Text = fpANoten[0].Bemerkung; listBoxFpA.SelectedIndex = fpANoten[0].Note; } } if (schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Dreizehn) { SeminarfachnoteTableAdapter seminarfachAdapter = new SeminarfachnoteTableAdapter(); var seminarfachnoten = seminarfachAdapter.GetDataBySchuelerId(schueler.Id); if (seminarfachnoten.Count == 1) { numericUpDownSeminarfach.Value = seminarfachnoten[0].Gesamtnote; textBoxSeminarfachthemaKurz.Text = seminarfachnoten[0].ThemaKurz; textBoxSeminarfachthemaLang.Text = seminarfachnoten[0].ThemaLang; } } }
/// <summary> /// Methode importiert die Zeugnisnoten des Vorjahres. /// </summary> /// <param name="fileName">Der Dateiname.</param> public static void ImportiereNotenAusWinSD(string fileName) { using (FileStream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) using (StreamReader reader = new StreamReader(stream)) { var schuelerAdapter = new SchuelerTableAdapter(); var fpaAdapter = new FpANotenTableAdapter(); Kurs geschichte = GetGeschichteKurs(); Dictionary<string, Kurs> kurse = new Dictionary<string, Kurs>(); kurse.Add("W11", FindOrCreateDummyKurs("Rechtslehre aus elfter Jahrgangsstufe", "Rl")); kurse.Add("S11", FindOrCreateDummyKurs("Chemie aus elfter Jahrgangsstufe", "C")); kurse.Add("T11", FindOrCreateDummyKurs("TZ aus elfter Jahrgangsstufe", "TZ")); kurse.Add("A11", null); // laut Stundentafel legt der Agrarzweig außer Geschichte nichts ab. while (!reader.EndOfStream) { string[] line = reader.ReadLine().Split(SeparatorChar); if (line.Length == 5) { //notenzeile int schuelerId = int.Parse(line[0]); string faecherspiegel = line[1]; fpaNote fpaNote = OmnisDB.Konstanten.GetFpaNoteFromString(line[2]); byte? geschichteNote = string.IsNullOrEmpty(line[3]) ? (byte?)null : byte.Parse(line[3]); byte? zweitesAbgelegtesFachNote = string.IsNullOrEmpty(line[4]) ? (byte?)null : byte.Parse(line[4]); var schuelerGefunden = schuelerAdapter.GetDataById(schuelerId); if (schuelerGefunden == null || schuelerGefunden.Count == 0) { continue; } var schueler = new Schueler(schuelerGefunden[0]); if (geschichteNote != null) { TrageNoteEin(geschichte, (byte)geschichteNote, schueler); } Kurs zweitesFach = kurse[faecherspiegel]; if (zweitesFach != null && zweitesAbgelegtesFachNote != null) { TrageNoteEin(zweitesFach, (byte)zweitesAbgelegtesFachNote, schueler); } fpaAdapter.Insert(schuelerId, "", null, null, null, null, (int)fpaNote,null,null); } else throw new InvalidOperationException("Diese Zeile hat " + line.Length + " Spalten. Das ist mir unbekannt"); } } TrageFehlendeSchülerInDummykurseEin(); }
private void buttonSpeichern_Click(object sender, EventArgs e) { if (schueler != null && schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Elf) { FpANotenTableAdapter fpAAdapter = new FpANotenTableAdapter(); var fpANoten = fpAAdapter.GetDataBySchuelerId(schueler.Id); if (fpANoten.Count == 1) { fpAAdapter.Update(listBoxFpA.SelectedIndex, textBoxFpABemerkung.Text, schueler.Id); } else { fpAAdapter.Insert(schueler.Id, listBoxFpA.SelectedIndex, textBoxFpABemerkung.Text); } } if (schueler != null && schueler.getKlasse.Jahrgangsstufe == Jahrgangsstufe.Dreizehn) { SeminarfachnoteTableAdapter seminarfachAdapter = new SeminarfachnoteTableAdapter(); var seminarfachnoten = seminarfachAdapter.GetDataBySchuelerId(schueler.Id); if (seminarfachnoten.Count == 1) { seminarfachAdapter.Update((int)numericUpDownSeminarfach.Value, textBoxSeminarfachthemaLang.Text, textBoxSeminarfachthemaKurz.Text, schueler.Id); } else { seminarfachAdapter.Insert(schueler.Id, (int)numericUpDownSeminarfach.Value, textBoxSeminarfachthemaLang.Text, textBoxSeminarfachthemaKurz.Text); } } }