"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_GesellschaftswissenschaftenUndReligion = exports.GesellschaftswissenschaftenUndReligion = void 0; const GostBelegpruefung_1 = require("../../../../core/abschluss/gost/GostBelegpruefung"); const GostFachManager_1 = require("../../../../core/abschluss/gost/GostFachManager"); const GostKursart_1 = require("../../../../core/types/gost/GostKursart"); const GostFachbereich_1 = require("../../../../core/types/gost/GostFachbereich"); const GostSchriftlichkeit_1 = require("../../../../core/types/gost/GostSchriftlichkeit"); const GostHalbjahr_1 = require("../../../../core/types/gost/GostHalbjahr"); const Vector_1 = require("../../../../java/util/Vector"); const GostBelegungsfehler_1 = require("../../../../core/abschluss/gost/GostBelegungsfehler"); class GesellschaftswissenschaftenUndReligion extends GostBelegpruefung_1.GostBelegpruefung { gesellschaftswissenschaften = null; geschichte = null; sozialwissenschaften = null; philosophie = null; sonstige_gesellschaftswissenschaften = null; religion = null; zusatzkursFachbelegungen = null; /** * Erstellt eine neue Belegprüfung für den Bereich der Gesellschaftswissenschaften und Religion. * * @param manager der Daten-Manager für die Abiturdaten * @param pruefungs_art die Art der durchzuführenden Prüfung (z.B. EF.1 oder GESAMT) */ constructor(manager, pruefungs_art) { super(manager, pruefungs_art); } init() { this.gesellschaftswissenschaften = this.manager.getFachbelegungen(GostFachbereich_1.GostFachbereich.GESELLSCHAFTSWISSENSCHAFTLICH); this.geschichte = this.manager.getFachbelegungen(GostFachbereich_1.GostFachbereich.GESCHICHTE); this.sozialwissenschaften = this.manager.getFachbelegungen(GostFachbereich_1.GostFachbereich.SOZIALWISSENSCHAFTEN); this.philosophie = this.manager.getFachbelegung(GostFachbereich_1.GostFachbereich.PHILOSOPHIE); this.sonstige_gesellschaftswissenschaften = this.manager.getFachbelegungen(GostFachbereich_1.GostFachbereich.GESELLSCHAFTSWISSENSCHAFTLICH_SONSTIGE); this.religion = this.manager.getFachbelegungen(GostFachbereich_1.GostFachbereich.RELIGION); this.zusatzkursFachbelegungen = new Vector_1.Vector(); } pruefeEF1() { this.pruefeGesellschaftswissenschaftenEF1(); this.pruefeReligionEF1(); } /** * EF1-Prüfung Punkte 8-10: * Prüfe, ob eine Gesellschaftswissenschaft in EF.1 schriftlich belegt wurde und durchgängig belegbar ist * und ob Geschichte belegt wurde * und ob Sozialwissenschaften belegt wurde */ pruefeGesellschaftswissenschaftenEF1() { if (!this.manager.pruefeBelegungDurchgehendBelegbarExistiert(this.gesellschaftswissenschaften, GostSchriftlichkeit_1.GostSchriftlichkeit.BELIEBIG, GostHalbjahr_1.GostHalbjahr.EF1)) this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.GW_10); if (!this.manager.pruefeBelegungExistiertMitSchriftlichkeitEinzeln(this.gesellschaftswissenschaften, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1)) this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.GW_11); if (this.manager.zaehleBelegungInHalbjahren(this.geschichte, GostHalbjahr_1.GostHalbjahr.EF1) <= 0) this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.GE_1_INFO); if (this.manager.zaehleBelegungInHalbjahren(this.sozialwissenschaften, GostHalbjahr_1.GostHalbjahr.EF1) <= 0) this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.SW_1_INFO); } /** * EF1-Prüfung Punkt 11: * Prüfe, ob Religion in EF.1 belegt wurde oder ob Philosophie und eine weitere durchgehend belegbare Gesellschaftswissenschaft belegt wurde. * Falls Philosophie als Ersatz für Religion gewählt wurde, zählt es nicht als durchgehend belegte Gesellschaftswissenschaft. */ pruefeReligionEF1() { if (this.manager.pruefeBelegungExistiert(this.religion, GostHalbjahr_1.GostHalbjahr.EF1)) return; if (!this.manager.pruefeBelegung(this.philosophie, GostHalbjahr_1.GostHalbjahr.EF1)) { this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.RE_10); } else if ((!this.manager.pruefeBelegungDurchgehendBelegbarExistiert(this.geschichte, GostSchriftlichkeit_1.GostSchriftlichkeit.BELIEBIG, GostHalbjahr_1.GostHalbjahr.EF1)) && (!this.manager.pruefeBelegungDurchgehendBelegbarExistiert(this.sozialwissenschaften, GostSchriftlichkeit_1.GostSchriftlichkeit.BELIEBIG, GostHalbjahr_1.GostHalbjahr.EF1)) && (!this.manager.pruefeBelegungDurchgehendBelegbarExistiert(this.sonstige_gesellschaftswissenschaften, GostSchriftlichkeit_1.GostSchriftlichkeit.BELIEBIG, GostHalbjahr_1.GostHalbjahr.EF1))) { this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.RE_10); } } pruefeGesamt() { this.pruefeSchriftlichkeitEF(); this.pruefeDurchgaengigeBelegung(); this.pruefeDurchgaengigeBelegungUndSchriftlich(); this.pruefeZusatzkurs(this.geschichte); this.pruefeBelegungGeschichte(); this.pruefeZusatzkurs(this.sozialwissenschaften); this.pruefeBelegungSozialwissenschaften(); this.pruefeReligionEF(); this.pruefeReligionQ1(); this.pruefeReligionKontinuitaet(); } /** * Gesamtprüfung Punkt 39: * Prüfe, on in EF.1 und EF.2 jeweils ein Fach der Gesellschaftswissenschaften schriftlich belegt wurde */ pruefeSchriftlichkeitEF() { if ((!this.manager.pruefeBelegungExistiertMitSchriftlichkeitEinzeln(this.gesellschaftswissenschaften, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1)) || (!this.manager.pruefeBelegungExistiertMitSchriftlichkeitEinzeln(this.gesellschaftswissenschaften, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF2))) this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.GW_11); } /** * Gesamtprüfung Punkt 38: * Prüfe, ob ein Fach der Gesellschaftswissenschaften von EF.1 bis Q2.2 durchgängig belegt wurde * - Zusatzkurse zählen hier nicht als Belegung */ pruefeDurchgaengigeBelegung() { if (!this.manager.pruefeBelegungExistiert(this.gesellschaftswissenschaften, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21, GostHalbjahr_1.GostHalbjahr.Q22)) this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.GW_10); } /** * Gesamtprüfung Punkt 40: * Prüfe, ob ein Fach der Gesellschaftswissenschaften oder Religionslehre von EF.1 bis Q2.2 belegt * und von Q1.1 bis Q2.1 schriftlich belegt wurde, damit es als potentielles Abiturfach zur Verfügung steht. * - Zusatzkurse zählen hier nicht als Belegung */ pruefeDurchgaengigeBelegungUndSchriftlich() { if (this.manager.pruefeBelegungExistiertDurchgehendSchriftlich(this.gesellschaftswissenschaften)) return; if (this.manager.pruefeBelegungExistiertDurchgehendSchriftlich(this.religion)) return; this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.GW_12); } /** * Gesamtprüfung Punkte 27, 29 und 30: * Prüft, ob der Zusatzkurs genau zwei mal belegt wurde * und ob ein Zusatzkurs belegt wurde, obwohl im Halbjahr zuvor ein Geschichtskurs belegt wurde. * * @param fachbelegungen die Fachbelegung für Geschichte oder Sozialwissehschaften */ pruefeZusatzkurs(fachbelegungen) { if ((fachbelegungen === null) || (fachbelegungen.size() === 0)) return; fachbelegungen = this.manager.filterBelegungKursartExistiert(fachbelegungen, GostKursart_1.GostKursart.ZK); if (fachbelegungen.size() === 0) return; if (fachbelegungen.size() > 1) this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.ZK_13); for (let fachbelegung of fachbelegungen) { let fach = this.manager.getFach(fachbelegung); if ((fach === null) || (GostFachManager_1.GostFachManager.istBilingual(fach))) this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.ZK_13); let halbjahre = this.manager.getHalbjahreKursart(fachbelegung, GostKursart_1.GostKursart.ZK); if (halbjahre.size() === 2) { if (((this.manager.pruefeBelegungMitKursart(fachbelegung, GostKursart_1.GostKursart.ZK, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12)) || (this.manager.pruefeBelegungMitKursart(fachbelegung, GostKursart_1.GostKursart.ZK, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21)) || (this.manager.pruefeBelegungMitKursart(fachbelegung, GostKursart_1.GostKursart.ZK, GostHalbjahr_1.GostHalbjahr.Q21, GostHalbjahr_1.GostHalbjahr.Q22)))) { if (this.zusatzkursFachbelegungen !== null) this.zusatzkursFachbelegungen.add(fachbelegung); } } else if (halbjahre.size() > 1) { this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.ZK_12); } if (halbjahre.size() > 0) { let prevHalbjahr = halbjahre.get(0).previous(); if ((prevHalbjahr !== null) && (this.manager.pruefeBelegung(fachbelegung, prevHalbjahr))) this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.ZK_10); } } } /** * Gesamtprüfung Punkt 41: * Prüft, ob Geschichte korrekt belegt wurde (mind. von EF.1 bis Q1.2 oder als Zusatzkurs) */ pruefeBelegungGeschichte() { if ((this.geschichte === null) || (this.geschichte.size() <= 0)) { this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.GE_10); return; } if (this.manager.pruefeBelegungExistiert(this.geschichte, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12)) return; if (this.zusatzkursFachbelegungen !== null) for (let zkBelegung of this.zusatzkursFachbelegungen) if (this.geschichte.contains(zkBelegung)) return; this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.GE_10); } /** * Gesamtprüfung Punkt 42: * Prüft, ob Sozialwissenschaften korrekt belegt wurde (mind. von EF.1 bis Q1.2 oder als Zusatzkurs) */ pruefeBelegungSozialwissenschaften() { if ((this.sozialwissenschaften === null) || (this.sozialwissenschaften.size() <= 0)) { this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.SW_10); return; } if (this.manager.pruefeBelegungExistiert(this.sozialwissenschaften, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12)) return; if (this.zusatzkursFachbelegungen !== null) for (let zkBelegung of this.zusatzkursFachbelegungen) if (this.sozialwissenschaften.contains(zkBelegung)) return; this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.SW_10); } /** * Gesamtprüfung Punkte 43: * Prüft die Belegung von Religion und Philosophie in der EF. Wird Philosophie als Ersatz belegt, so wird auch geprüft, * ob eine weitere Gesellschaftswissenschaft belegt wurde. */ pruefeReligionEF() { for (let halbjahr of GostHalbjahr_1.GostHalbjahr.getEinfuehrungsphase()) { if (this.manager.pruefeBelegungExistiertEinzeln(this.religion, halbjahr)) continue; if ((!this.manager.pruefeBelegung(this.philosophie, halbjahr)) || (this.manager.pruefeDurchgaengigkeit(this.philosophie) && (this.manager.zaehleBelegungInHalbjahren(this.gesellschaftswissenschaften, halbjahr) <= 1))) { this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.RE_10); break; } } } /** * Gesamtprüfung Punkt 44: * Prüft die Belegung von Religion und Philosophie. Wird Philosophie als Ersatz belegt, so wird auch geprüft, ob eine weitere * Gesellschaftswissenschaft belegt wurde. */ pruefeReligionQ1() { for (let halbjahr of GostHalbjahr_1.GostHalbjahr.getHalbjahreFromJahrgang("Q1")) { if (this.manager.pruefeBelegungExistiertEinzeln(this.religion, halbjahr)) continue; if (!this.manager.pruefeBelegung(this.philosophie, halbjahr)) { this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.RE_10); return; } if (this.manager.pruefeDurchgaengigkeit(this.philosophie) && (this.manager.zaehleDurchgaengigeBelegungen(this.gesellschaftswissenschaften) > 1)) continue; if (!this.manager.pruefeDurchgaengigkeit(this.philosophie) && (this.manager.zaehleDurchgaengigeBelegungen(this.gesellschaftswissenschaften) > 0)) continue; if (this.manager.zaehleBelegungInHalbjahren(this.sonstige_gesellschaftswissenschaften, halbjahr) > 0) continue; if ((halbjahr === GostHalbjahr_1.GostHalbjahr.Q11) && (this.manager.pruefeBelegungExistiertEinzeln(this.geschichte, GostHalbjahr_1.GostHalbjahr.Q11) || this.manager.pruefeBelegungExistiertEinzeln(this.sozialwissenschaften, GostHalbjahr_1.GostHalbjahr.Q11))) continue; this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.RE_10); break; } } /** * Gesamtprüfung Punkt 55: * Prüft, ob Fehler bei der Kontinuität bei Philosophie und Religion nur durch die Ersatzfachregelung bei Religion * zustandekommen und damit zulässig sind. */ pruefeReligionKontinuitaet() { if (this.philosophie === null) return; for (let belegung of this.philosophie.belegungen) { if (belegung === null) continue; let halbjahr = GostHalbjahr_1.GostHalbjahr.fromKuerzel(belegung.halbjahrKuerzel); if (halbjahr === null) continue; let prevHalbjahr = halbjahr.previous(); if (prevHalbjahr === null) continue; if (this.manager.pruefeBelegung(this.philosophie, prevHalbjahr)) continue; if (this.manager.pruefeBelegungExistiertEinzeln(this.religion, halbjahr)) this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.E1BEL_10); if (!this.manager.pruefeBelegungExistiertEinzeln(this.religion, prevHalbjahr)) this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.E1BEL_10); } } isTranspiledInstanceOf(name) { return ['de.nrw.schule.svws.core.abschluss.gost.belegpruefung.GesellschaftswissenschaftenUndReligion', 'de.nrw.schule.svws.core.abschluss.gost.GostBelegpruefung'].includes(name); } } exports.GesellschaftswissenschaftenUndReligion = GesellschaftswissenschaftenUndReligion; function cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_GesellschaftswissenschaftenUndReligion(obj) { return obj; } exports.cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_GesellschaftswissenschaftenUndReligion = cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_GesellschaftswissenschaftenUndReligion; //# sourceMappingURL=GesellschaftswissenschaftenUndReligion.js.map