"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cast_de_nrw_schule_svws_core_utils_enm_ENMDatenManager = exports.ENMDatenManager = void 0; const JavaObject_1 = require("../../../java/lang/JavaObject"); const ENMKlasse_1 = require("../../../core/data/enm/ENMKlasse"); const ENMLeistung_1 = require("../../../core/data/enm/ENMLeistung"); const ENMFach_1 = require("../../../core/data/enm/ENMFach"); const ENMJahrgang_1 = require("../../../core/data/enm/ENMJahrgang"); const HashMap_1 = require("../../../java/util/HashMap"); const ENMLerngruppe_1 = require("../../../core/data/enm/ENMLerngruppe"); const ENMLehrer_1 = require("../../../core/data/enm/ENMLehrer"); const ENMSchueler_1 = require("../../../core/data/enm/ENMSchueler"); const ENMFoerderschwerpunkt_1 = require("../../../core/data/enm/ENMFoerderschwerpunkt"); const ENMDaten_1 = require("../../../core/data/enm/ENMDaten"); const Note_1 = require("../../../core/types/Note"); const ENMNote_1 = require("../../../core/data/enm/ENMNote"); const Foerderschwerpunkt_1 = require("../../../core/types/statkue/Foerderschwerpunkt"); class ENMDatenManager extends JavaObject_1.JavaObject { daten; mapLehrer = new HashMap_1.HashMap(); mapSchueler = new HashMap_1.HashMap(); mapFaecher = new HashMap_1.HashMap(); mapJahrgaenge = new HashMap_1.HashMap(); mapKlassen = new HashMap_1.HashMap(); lerngruppenIDZaehler = 1; mapLerngruppen = new HashMap_1.HashMap(); /** * Implementation for method overloads of 'constructor' */ constructor(__param0) { super(); if ((typeof __param0 === "undefined")) { this.daten = new ENMDaten_1.ENMDaten(); } else if (((typeof __param0 !== "undefined") && ((__param0 instanceof JavaObject_1.JavaObject) && (__param0.isTranspiledInstanceOf('de.nrw.schule.svws.core.data.enm.ENMDaten'))))) { let daten = (0, ENMDaten_1.cast_de_nrw_schule_svws_core_data_enm_ENMDaten)(__param0); this.daten = daten; } else throw new Error('invalid method overload'); } /** * Fügt alle Noten des Core-Type {@link Note} zu dem Noten-Katalog der ENM-Datei hinzu. */ addNoten() { if (this.daten.noten.size() > 0) return; let noten = Note_1.Note.values(); for (let i = 0; i < noten.length; i++) { let note = noten[i]; let enmNote = new ENMNote_1.ENMNote(); enmNote.kuerzel = note.kuerzel; enmNote.notenpunkte = note.notenpunkte; enmNote.text = note.text; this.daten.noten.add(enmNote); } } /** * Fügt alle Förderschwerpunkte des Core-Type {@link Foerderschwerpunkt} zu dem * Förderschwerpunkt-Katalog der ENM-Datei hinzu. * * @param schulform die Schulform, für welche die zulässigen Förderschwerpunkte * zurückgegeben werden */ addFoerderschwerpunkte(schulform) { if (this.daten.foerderschwerpunkte.size() > 0) return; let foerderschwerpunkte = Foerderschwerpunkt_1.Foerderschwerpunkt.get(schulform); for (let i = 0; i < foerderschwerpunkte.size(); i++) { let foerderschwerpunkt = foerderschwerpunkte.get(i); let enmFoerderschwerpunkt = new ENMFoerderschwerpunkt_1.ENMFoerderschwerpunkt(); enmFoerderschwerpunkt.kuerzel = foerderschwerpunkt.kuerzel; enmFoerderschwerpunkt.beschreibung = foerderschwerpunkt.beschreibung; this.daten.foerderschwerpunkte.add(enmFoerderschwerpunkt); } } /** * Fügt einen Lehrer hinzu und überprüft dabei, ob der Lehrer schon in der Liste vorhanden ist. * * @param id die eindeutige ID des Lehrers * @param kuerzel das Kürzel des Lehrers * @param nachname der Nachname des Lehrers * @param vorname der Vorname des Lehrers * @param eMailDienstlich die Dienst-Email-Adresse des Lehrers * * @return true, falls der Lehrer hinzugefügt wurde, ansonsten false */ addLehrer(id, kuerzel, nachname, vorname, eMailDienstlich) { if (this.mapLehrer.get(id) !== null) return false; let enmLehrer = new ENMLehrer_1.ENMLehrer(); enmLehrer.id = id; enmLehrer.kuerzel = kuerzel; enmLehrer.nachname = nachname; enmLehrer.vorname = vorname; enmLehrer.eMailDienstlich = eMailDienstlich; this.daten.lehrer.add(enmLehrer); this.mapLehrer.put(id, enmLehrer); return true; } /** * Fügt einen Schueler hinzu und überprüft dabei, ob der Schueler schon in der Liste vorhanden ist. * * @param id die ID des Schülers in der SVWS-DB * @param jahrgangID die ID des aktuellen Jahrgangs, in dem sich der Schüler befindet * @param klasseID die ID der aktuellen Klasse, in der sich der Schüler befindet * @param nachname der Nachname des Schülers (z.B. Mustermann) * @param vorname der Vorname des Schülers (z.B. Max) * @param geschlecht das Geschlecht des Schülers * @param bilingualeSprache gibt an, ob sich der Schüler aktuell im bilingualen Bildungsgang befindet * (wenn ja, z.B. F) oder nicht (null) * @param istZieldifferent gibt an, ob der Schüler Ziel-different unterrichtet wird * @param istDaZFoerderung gibt an, ob der Schüler Deutsch-Förderung mit Deutsch als Zweitsprache (DaZ) * bekommt (Seiteneinsteiger, z.B. Flüchtlingskinder) * * @return true, falls der Schueler hinzugefügt wurde, ansonsten false */ addSchueler(id, jahrgangID, klasseID, nachname, vorname, geschlecht, bilingualeSprache, istZieldifferent, istDaZFoerderung) { if (this.mapSchueler.get(id) !== null) return false; let enmSchueler = new ENMSchueler_1.ENMSchueler(); enmSchueler.id = id; enmSchueler.jahrgangID = jahrgangID; enmSchueler.nachname = nachname; enmSchueler.vorname = vorname; enmSchueler.geschlecht = geschlecht.kuerzel; enmSchueler.bilingualeSprache = bilingualeSprache; enmSchueler.istZieldifferent = istZieldifferent; enmSchueler.istDaZFoerderung = istDaZFoerderung; this.daten.schueler.add(enmSchueler); this.mapSchueler.put(id, enmSchueler); return true; } /** * Fügt ein Fach hinzu und überprüft dabei, ob das Fach schon in der Liste vorhanden ist. * * @param id die eindeutige ID des Faches * @param kuerzel das Kürzel des Faches, wie es im Rahmen der amtlichen Schulstatistik verwendet wird. (z.B. D) * @param kuerzelAnzeige das Kürzel des Faches, wie es im Rahmen der Schule benannt wird und angezeigt werden soll. (z.B. D) * @param sortierung die Reihenfolge des Faches bei der Sortierung der Fächer. (z.B. 37) * @param istFremdsprache gibt an, ob es sich bei dem Fach um eine Fremdsprache handelt oder nicht * * @return true, falls das Fach hinzugefügt wurde, ansonsten false */ addFach(id, kuerzel, kuerzelAnzeige, sortierung, istFremdsprache) { if (this.mapFaecher.get(id) !== null) return false; let enmFach = new ENMFach_1.ENMFach(); enmFach.id = id; enmFach.kuerzel = kuerzel; enmFach.kuerzelAnzeige = kuerzelAnzeige; enmFach.sortierung = sortierung; enmFach.istFremdsprache = istFremdsprache; this.daten.faecher.add(enmFach); this.mapFaecher.put(id, enmFach); return true; } /** * Fügt einen Jahrgang hinzu und überprüft dabei, ob der Jahrgang schon in der Liste vorhanden ist. * * @param id die eindeutige ID des Jahrganges * @param kuerzel das Kürzel des Jahrgangs, wie es im Rahmen der amtlichen Schulstatistik verwendet wird. (z.B. EF) * @param kuerzelAnzeige das Kürzel des Jahrgangs, wie es im Rahmen der Schule benannt wird und angezeigt werden soll. (z.B. EF) * @param beschreibung die textuelle Bezeichnung des Jahrgangs. (z.B. Einführungsphase) * @param stufe die Stufe des Jahrgangs. (z.B. PR, SI, nur Berufskolleg: SII, Berufskolleg Anlage D und GOSt: SII-1, SII-2, SII-3) * @param sortierung die Reihenfolge des Jahrgangs bei der Sortierung der Jahrgänge. (z.B. 8) * * @return true, falls der Jahrgang hinzugefügt wurde, ansonsten false */ addJahrgang(id, kuerzel, kuerzelAnzeige, beschreibung, stufe, sortierung) { if (this.mapJahrgaenge.get(id) !== null) return false; let enmJahrgang = new ENMJahrgang_1.ENMJahrgang(); enmJahrgang.id = id; enmJahrgang.kuerzel = kuerzel; enmJahrgang.kuerzelAnzeige = kuerzelAnzeige; enmJahrgang.beschreibung = beschreibung; enmJahrgang.stufe = stufe; enmJahrgang.sortierung = sortierung; this.daten.jahrgaenge.add(enmJahrgang); this.mapJahrgaenge.put(id, enmJahrgang); return true; } /** * Fügt eine Klasse hinzu und überprüft dabei, ob die Klasse schon in der Liste vorhanden ist. * * @param id die eindeutige ID der Klasse * @param kuerzel das Kürzel der Klasse, wie es im Rahmen der amtlichen Schulstatistik verwendet wird. (z.B. EF) * @param kuerzelAnzeige das Kürzel der Klasse, wie es im Rahmen der Schule benannt wird und angezeigt werden soll. (z.B. EF) * @param sortierung die Reihenfolge der Klasse bei der Sortierung der Klassen. (z.B. 8) * * @return true, falls die Klasse hinzugefügt wurde, ansonsten false */ addKlasse(id, kuerzel, kuerzelAnzeige, sortierung) { if (this.mapKlassen.get(id) !== null) return false; let enmKlasse = new ENMKlasse_1.ENMKlasse(); enmKlasse.id = id; enmKlasse.kuerzel = kuerzel; enmKlasse.kuerzelAnzeige = kuerzelAnzeige; enmKlasse.sortierung = sortierung; this.daten.klassen.add(enmKlasse); this.mapKlassen.put(id, enmKlasse); return true; } /** * Liefert das ENM-Lehrer-Objekt für die angegebene Lehrer-ID zurück, * sofern die Lehrer über die Methode {@link ENMDatenManager#addLehrer(long, String, String, String, String)} * hinzugefügt wurden. * * @param id die ID des Lehrers * * @return das ENM-Lehrer-Objekt */ getLehrer(id) { return this.mapLehrer.get(id); } /** * Liefert das ENM-Schüler-Objekt für die angegebene Schüler-ID zurück, * sofern die Schüler über die Methode {@link ENMDatenManager#addSchueler(long, long, long, String, String, Geschlecht, String, boolean, boolean)} * hinzugefügt wurden. * * @param id die ID des Schülers * * @return das ENM-Schüler-Objekt */ getSchueler(id) { return this.mapSchueler.get(id); } /** * Liefert das ENM-Fächer-Objekt für die angegebene Fächer-ID zurück, * sofern die Fächer über die Methode {@link ENMDatenManager#addFach(long, String, String, int, boolean)} * hinzugefügt wurden. * * @param id die ID des Faches * * @return das ENM-Fächer-Objekt */ getFach(id) { return this.mapFaecher.get(id); } /** * Liefert das ENM-Jahrgänge-Objekt für die angegebene Jahrgangs-ID zurück, * sofern die Jahrgänge über die Methode {@link ENMDatenManager#addJahrgang(long, String, String, String, String, int)} * hinzugefügt wurden. * * @param id die ID des Jahrgangs * * @return das ENM-Jahrgänge-Objekt */ getJahrgang(id) { return this.mapJahrgaenge.get(id); } /** * Liefert das ENM-Klassen-Objekt für die angegebene Klassen-ID zurück, * sofern die Klassen über die Methode {@link ENMDatenManager#addKlasse(long, String, String, int)} * hinzugefügt wurden. * * @param id die ID der Klasse * * @return das ENM-Klassen-Objekt */ getKlasse(id) { return this.mapKlassen.get(id); } /** * Fügt eine neue Lerngruppe mit den angegebenen Parametern hinzu, falls sie noch nicht existiert. Die strID ist dabei * eine temporäre ID, die nur bei der Erstellung von ENMLerngruppen auf Serverseite genutzt wird. * * @param strID die temporäre ID der Lerngruppe, um festzustellen, ob es diese Lerngruppe bereits gibt. * @param kID die ID der Lerngruppe (Klasse oder Kurs) in der SVWS-DB * @param fachID die ID des Faches der Lerngruppe. * @param kursartID gibt die ID der Kursart an. Ist dieser Wert null, so handelt es sich um Klassen-Unterricht * @param bezeichnung die Bezeichnung der Lerngruppe (z.B. D-GK4) * @param kursartKuerzel das Kürzel der (allgemeinen) Kursart (z.B. GK) * @param bilingualeSprache das einstellige Kürzel der bilingualen Sprache, sofern es sich um eine bilinguale * Lerngruppe handelt. (z.B. F) * @param wochenstunden die Anzahl der Wochenstunden, falls es sich um einen Kurs handelt. */ addLerngruppe(strID, kID, fachID, kursartID, bezeichnung, kursartKuerzel, bilingualeSprache, wochenstunden) { if (this.mapLerngruppen.get(strID) !== null) return; let lerngruppe = new ENMLerngruppe_1.ENMLerngruppe(); lerngruppe.id = this.lerngruppenIDZaehler++; lerngruppe.kID = kID; lerngruppe.fachID = fachID; lerngruppe.kursartID = kursartID; lerngruppe.bezeichnung = bezeichnung; lerngruppe.kursartKuerzel = kursartKuerzel; lerngruppe.bilingualeSprache = bilingualeSprache; lerngruppe.wochenstunden = wochenstunden; this.mapLerngruppen.put(strID, lerngruppe); this.daten.lerngruppen.add(lerngruppe); } /** * Liefert die Lerngruppe mit der übergebenen (temporären) ID zurück. * * @param strID die temporäre ID der Lerngruppe, um festzustellen, ob es diese Lerngruppe bereits gibt. * * @return die Lerngruppe */ getLerngruppe(strID) { return this.mapLerngruppen.get(strID); } /** * Fügt die Klassenlehrer zu der List der Klassenlehrer bei einem Schüler hinzu * * @param schueler der Schüler * @param klassenlehrerIDs die IDs der Klassenlehrer */ addSchuelerKlassenlehrer(schueler, ...klassenlehrerIDs) { } /** * Fügt eine Sprache mit den übergebenen Informationen zu der Sprachenfolge eines Schülers hinzu. * * @param schueler der Schüler * @param sprache das Kürzel der Sprache, bereinigt von dem Jahrgang, in dem die Sprache eingesetzt hat * @param fachID die ID des Faches * @param fachKuerzel das Kürzel des Faches * @param reihenfolge die Reihenfolge des Faches in der Sprachenfolge (Beispiel 1) * @param belegungVonJahrgang die Information, ab welchem Jahrgang die Sprache belegt wurde (Beispiel 5) * @param belegungVonAbschnitt die Information, ab welchem Abschnitt in dem Jahrgang die Sprache belegt wurde (Beispiel 1) * @param belegungBisJahrgang die Information, bis zu welchem Jahrgang die Sprache belegt wurde (Beispiel 12), sofern die Sprache bereits abgeschlossen ist * @param belegungBisAbschnitt die Information, bis zu welchem Abschnitt in dem Jahrgang die Sprache belegt wurde (Beispiel 2), sofern die Sprache bereits abgeschlossen ist * @param referenzniveau die Bezeichnung des Sprachreferenzniveaus, welches bisher erreicht wurde (z.B. B2/C1) * @param belegungSekI die Mindest-Dauer der Belegung in der Sekundarstufe I gemäß den Stufen im Core-Type SprachBelegungSekI (z.B. 0, 2, 4, 6) */ addSchuelerSprachenfolge(schueler, sprache, fachID, fachKuerzel, reihenfolge, belegungVonJahrgang, belegungVonAbschnitt, belegungBisJahrgang, belegungBisAbschnitt, referenzniveau, belegungSekI) { } /** * Fügt die Leistungsdaten mit den übergebenen Informationen zu den Leistungsdaten eines Schülers hinzu * * @param schueler der Schüler * @param leistungID die ID der Leistungsdaten des Schülers in der SVWS-DB (z.B. 307956) * @param lerngruppenID die eindeutige ID der Lerngruppe, der der Schüler zugeordnet ist. * (Klasse oder Kurs wird erst in der Lerngruppe unterschieden!) * @param note das Kürzel der Note, die vergeben wurde * @param istSchriftlich gibt an, ob das Fach schriftlich belegt wurde oder nicht * @param abiturfach gibt an, ob es sich um ein Abitufach handelt (1,2,3 oder 4) oder nicht (null) * @param fehlstundenGesamt gibt die Anzahl der gesamten Fehlstunden an, sofern diese fachbezogen ermittel werden * @param fehlstundenUnentschuldigt gibt die Anzahl der unentschuldigten Fehlstunden an, sofern diese fachbezogen ermittel werden * @param fachbezogeneBemerkungen die fachbezogenen Bemerkungen bzw. das Thema bei Projektkursen * @param neueZuweisungKursart die Kurszuweisung, die auf dem Zeugnis erscheinen soll für den nächsten Kursabschnitt * (z.B. E oder G-Kurs, z.B. an der Gesamtschule) */ addSchuelerLeistungsdaten(schueler, leistungID, lerngruppenID, note, istSchriftlich, abiturfach, fehlstundenGesamt, fehlstundenUnentschuldigt, fachbezogeneBemerkungen, neueZuweisungKursart) { let enmLeistung = new ENMLeistung_1.ENMLeistung(); enmLeistung.id = leistungID; enmLeistung.lerngruppenID = lerngruppenID; enmLeistung.note = note; enmLeistung.istSchriftlich = istSchriftlich; enmLeistung.abiturfach = abiturfach; enmLeistung.fehlstundenGesamt = fehlstundenGesamt; enmLeistung.fehlstundenUnentschuldigt = fehlstundenUnentschuldigt; enmLeistung.fachbezogeneBemerkungen = fachbezogeneBemerkungen; enmLeistung.neueZuweisungKursart = neueZuweisungKursart; schueler.leistungsdaten.add(enmLeistung); } /** * Fügt die Teilleistung mit den übergebenen Angaben zu übergebenen Leistungsdaten * eines Schülers hinzu. * * @param leistung die Leistungsdaten eines Schülers * @param id die ID der Teilleistung * @param artID die ID der Art von Teileistungen * @param datum das Datum, welches dem Erbringen der Teilleistung zuzuordnen ist (z.B. Klausurdatum) * @param bemerkung ggf. eine Bemerkung zu der Teilleistung * @param notenKuerzel das Notenkürzel, welches der Teilleistung zuzuordnen ist. */ addSchuelerTeilleistung(leistung, id, artID, datum, bemerkung, notenKuerzel) { } isTranspiledInstanceOf(name) { return ['de.nrw.schule.svws.core.utils.enm.ENMDatenManager'].includes(name); } } exports.ENMDatenManager = ENMDatenManager; function cast_de_nrw_schule_svws_core_utils_enm_ENMDatenManager(obj) { return obj; } exports.cast_de_nrw_schule_svws_core_utils_enm_ENMDatenManager = cast_de_nrw_schule_svws_core_utils_enm_ENMDatenManager; //# sourceMappingURL=ENMDatenManager.js.map