Exemple #1
0
        /// <summary>
        /// Führt den Check durch.
        /// </summary>
        /// <param name="schueler">Der Schüler.</param>
        public override void Check(Schueler schueler)
        {
            SeminarfachnoteTableAdapter seminarfachAdapter = new SeminarfachnoteTableAdapter();
              var seminarfachnoten = seminarfachAdapter.GetDataBySchuelerId(schueler.Id);
              if (seminarfachnoten.Count == 0)
              {
            contr.Add(null,"Es liegt keine Seminarfachnote vor.");
              }
              else
              {
            if (seminarfachnoten[0].IsGesamtnoteNull())
            {
              contr.Add(null, "Es liegt keine Seminarfachnote vor.");
            }
            else
            {
              /* s. UnterpunktungsChecker
              var note = seminarfachnoten[0].Gesamtnote;

              if (note < 4)
              {
            contr.Add(null, "Im Seminarfach wurden " + note + " Punkte erzielt.");
              }
              */

              if (seminarfachnoten[0].IsThemaLangNull() && seminarfachnoten[0].IsThemaKurzNull())
              {
            contr.Add(null, "Es liegt kein Seminarfachthema vor.");
              }
            }
            }
        }
Exemple #2
0
        /// <summary>
        /// Führt den Check durch.
        /// </summary>
        /// <param name="schueler">Der Schüler.</param>
        /// <param name="reason">Die Art der Prüfung.</param>
        /// <returns>Array mit Fehler- oder Problemmeldungen. Kann auch leer sein.</returns>
        public override void Check(Schueler schueler, Zeitpunkt reason, NotenCheckResults res)
        {
            SeminarfachnoteTableAdapter seminarfachAdapter = new SeminarfachnoteTableAdapter();
              var seminarfachnoten = seminarfachAdapter.GetDataBySchuelerId(schueler.Id);
              if (seminarfachnoten.Count == 0)
              {
            res.Add(schueler, null,"Es liegt keine Seminarfachnote vor.");
              }
              else
              {
            var note = seminarfachnoten[0].Gesamtnote;
            var thema = seminarfachnoten[0].ThemaLang;

            if (note < 4)
            {
            res.Add(schueler, null, "Im Seminarfach wurden " +note+" Punkte erzielt.");
            }

            if (string.IsNullOrEmpty(thema))
            {
            res.Add(schueler, null, "Es liegt kein Seminarfachthema vor.");
            }
            }
        }
Exemple #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;
              }
            }
        }
        /// <summary>
        /// Konstruktor.
        /// </summary>
        /// <param name="sourceFileName">Der Dateiname des Exportfiles der leeren DZeugnis-Tabelle.</param>
        /// <param name="targetFileName">Der Dateiname des zu erstellenden ImportFiles der DZeugnis-Tabelle.</param>
        public DZeugnisFileController(string sourceFileName, string targetFileName, Zeitpunkt zeitpunkt)
        {
            Faecherspiegel faecher = new Faecherspiegel();
              SchuelerTableAdapter ada = new SchuelerTableAdapter();

              using (FileStream inStream = new FileStream(sourceFileName, FileMode.Open, FileAccess.Read))
              using (StreamReader reader = new StreamReader(inStream, Encoding.GetEncoding("iso-8859-1")))
              using (FileStream outStream = new FileStream(targetFileName, FileMode.Create, FileAccess.Write))
              using (StreamWriter writer = new StreamWriter(outStream, Encoding.GetEncoding("iso-8859-1")))
              {
            while (!reader.EndOfStream)
            {
              var zeile = new VerwalteZeile(reader.ReadLine());
              int schuelerId = int.Parse(zeile[Konstanten.schuelerIdCol]);

              // Prüfe vorher, ob der Schüler existiert (hier kommen tausend Schüler aus den Vorjahren)
              if (ada.GetDataById(schuelerId).Count == 0)
              {
            continue;
              }

              Schueler schueler = Zugriff.Instance.SchuelerRep.Find(schuelerId);
              if (BrauchtZeugnis(schueler, zeitpunkt))
              {
            zeile[Konstanten.fpaCol] = Konstanten.GetFpaString(GetFpaNote(zeitpunkt, schueler));
            KlassenzielOderGefaehrdung zielerreichung = GetZielerreichung(zeitpunkt, schueler);
            zeile[Konstanten.klassenzielOderGefaehrdungCol] = Konstanten.GetKlassenzielOderGefaehrdungString(zielerreichung);
            if (zeitpunkt == Zeitpunkt.ErstePA || zeitpunkt == Zeitpunkt.ZweitePA || zeitpunkt == Zeitpunkt.DrittePA)
            {
              zeile[Konstanten.zeugnisartCol] = zielerreichung == KlassenzielOderGefaehrdung.AbschlusspruefungOhneErfolg ? "J" : "A";
              zeile[Konstanten.APBestandenCol] = Konstanten.GetBestandenString(GetBestanden(zeitpunkt, schueler));
            }

            zeile[Konstanten.abweisungCol] = Konstanten.GetAbweisungString(schueler.GefahrDerAbweisung);

            var seminarfachNote = new SeminarfachnoteTableAdapter().GetDataBySchuelerId(schuelerId);
            if (seminarfachNote != null && seminarfachNote.Count == 1 && !seminarfachNote[0].IsGesamtnoteNull())
            {
              zeile[Konstanten.seminarfachGesamtnote] = string.Format(CultureInfo.CurrentCulture, "{0:00}", seminarfachNote[0].Gesamtnote);
              zeile[Konstanten.seminarfachThema] = !string.IsNullOrEmpty(seminarfachNote[0].ThemaKurz) ? seminarfachNote[0].ThemaKurz : seminarfachNote[0].ThemaLang.Substring(0, 128);
            }

            string faecherspiegel = zeile[Konstanten.faecherspiegelCol];
            if (string.IsNullOrEmpty(faecherspiegel))
            {
              log.Warn("Für den Schüler " + schueler.NameVorname + " gibt es keinen passenden Fächerspiegel!");
              continue;
            }
            for (int i = 0; i < 30; i++)
            {
              zeile[Konstanten.notePflichtfach1Col + i] = faecher.GetFachNoteString(faecherspiegel, i, schueler.getKlasse.Schulart, schueler, zeitpunkt);
            }

            if (Konstanten.ZeugnisartFromString(zeile[Konstanten.zeugnisartCol]) != Zeugnisart.Zwischenzeugnis)
            {
              for (int i = 0; i < 20; i++)
              {
                zeile[Konstanten.jahresfortgangPflichtfach1Col + i] = faecher.FindeJahresfortgangsNoten(faecherspiegel, i, schueler.getKlasse.Schulart, schueler, zeitpunkt);
                zeile[Konstanten.APschriftlichPflichtfach1Col + i] = faecher.FindeAPSchriftlichNoten(faecherspiegel, i, schueler.getKlasse.Schulart, schueler, zeitpunkt);
                zeile[Konstanten.APmuendlichPflichtfach1Col + i] = faecher.FindeAPMuendlichNoten(faecherspiegel, i, schueler.getKlasse.Schulart, schueler, zeitpunkt);
                zeile[Konstanten.gesamtNoteMitAPGanzzahlig1Col + i] = faecher.GetFachNoteString(faecherspiegel, i, schueler.getKlasse.Schulart, schueler, zeitpunkt);
              }
            }

            SucheWahlpflichtfach(zeitpunkt, faecher, zeile, schueler, Konstanten.weiteresFach1BezeichnungCol, Konstanten.weiteresFach1NoteCol);
            SucheWahlpflichtfach(zeitpunkt, faecher, zeile, schueler, Konstanten.weiteresFach2BezeichnungCol, Konstanten.weiteresFach2NoteCol);
            SucheWahlpflichtfach(zeitpunkt, faecher, zeile, schueler, Konstanten.weiteresFach3BezeichnungCol, Konstanten.weiteresFach3NoteCol);
              }

              // rausgeschrieben werden immer alle Zeugnisse, da im Import "ersetzen" angehakt werden muss
              writer.WriteLine(zeile.ToString());
            }
              }
        }
Exemple #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);
            }
              }
        }