Пример #1
0
 /// <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.");
     }
     }
 }
Пример #2
0
        /// <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();
        }
Пример #3
0
        /// <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;
              }
            }
        }
Пример #4
0
        /// <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();
        }
Пример #5
0
        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);
            }
              }
        }