123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_Fremdsprachen = exports.Fremdsprachen = void 0;
- const JavaObject_1 = require("../../../../java/lang/JavaObject");
- const SprachendatenManager_1 = require("../../../../core/SprachendatenManager");
- const GostAbiturFach_1 = require("../../../../core/types/gost/GostAbiturFach");
- 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 GostHalbjahr_1 = require("../../../../core/types/gost/GostHalbjahr");
- const GostSchriftlichkeit_1 = require("../../../../core/types/gost/GostSchriftlichkeit");
- const Vector_1 = require("../../../../java/util/Vector");
- const GostBelegungsfehler_1 = require("../../../../core/abschluss/gost/GostBelegungsfehler");
- class Fremdsprachen extends GostBelegpruefung_1.GostBelegpruefung {
- fremdsprachen = new Vector_1.Vector();
- fremdsprachen_neu = new Vector_1.Vector();
- fremdsprachen_fortgefuehrt = new Vector_1.Vector();
- biliSachfaecher = new Vector_1.Vector();
- anzahl_schriftlich_durchgehend = 0;
- /**
- * Erstellt eine neue Belegprüfung für dir Fremdsprachen.
- *
- * @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.fremdsprachen = this.manager.getFachbelegungen(GostFachbereich_1.GostFachbereich.FREMDSPRACHE);
- this.fremdsprachen_neu = this.manager.filterFremdspracheNeuEinsetzend(this.fremdsprachen);
- this.fremdsprachen_fortgefuehrt = this.manager.filterFremdspracheFortgefuehrt(this.fremdsprachen);
- this.biliSachfaecher = this.manager.getFachbelegungenBilingual();
- this.anzahl_schriftlich_durchgehend = 0;
- }
- pruefeEF1() {
- this.pruefeEF1Sprachenfolge();
- this.pruefeEF1Fremdsprache1();
- this.pruefeEF1FremdsprachenfolgeZweiteFremdsprache();
- this.pruefeEF1Schriftlichkeit();
- this.pruefeEF1AnzahlDurchgehenedeSprachen();
- this.pruefeEF1BilingualeSachfaecher();
- this.pruefeEF1BilingualenBildungsgang();
- }
- /**
- * EF.1: Prüft bei der Sprachenfolge, ob eine gemäß Sprachenfolge fortgeführte
- * Fremdsprache fehlerhafterweise als neu einsetzende Fremdsprache belegt wurde.
- */
- pruefeEF1Sprachenfolge() {
- if (this.manager.hatFortgefuehrteFremdspracheInSprachendaten(this.fremdsprachen_neu))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_20);
- if (this.manager.hatNeuEinsetzendeFremdspracheInSprachendaten(this.fremdsprachen_fortgefuehrt))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_21);
- if (!SprachendatenManager_1.SprachendatenManager.hatSprachbelegung(this.manager.getSprachendaten(), "E"))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_22_INFO);
- }
- /**
- * Prüft, ob eine gültige Fremdsprachenbelegung mit den EF.1-Wahlen möglich ist.
- */
- pruefeEF1Fremdsprache1() {
- let gefundenFremdsprachenbelegung = false;
- let gefundenFortgefuehrteFremdsprachenbelegungOhneSprachenfolge = false;
- let gefundenFortgefuehrteFremdspracheAlsNeueinsetzende = false;
- let anzahlFortgefuehrteFremdsprachen = 0;
- let anzahlFortgefuehrteFremdsprachenEFBelegbar = 0;
- let anzahlFortgefuehrteFremdsprachenEFBelegbarFehlerMuendlich = 0;
- let anzahlFortgefuehrteFremdsprachenDurchgehendBelegbar = 0;
- let anzahlFortgefuehrteFremdsprachenDurchgehendBelegbarFehlerMuendlich = 0;
- let anzahlFortfuehrbareFremdsprachen = 0;
- anzahlFortfuehrbareFremdsprachen = SprachendatenManager_1.SprachendatenManager.getFortfuehrbareSprachenInGOSt(this.manager.getSprachendaten()).size();
- for (let abiFachbelegung of this.fremdsprachen_fortgefuehrt) {
- if (!this.manager.pruefeBelegung(abiFachbelegung, GostHalbjahr_1.GostHalbjahr.EF1)) {
- continue;
- }
- gefundenFremdsprachenbelegung = true;
- let gostFach = this.manager.getFach(abiFachbelegung);
- if (gostFach !== null && !JavaObject_1.JavaObject.equalsTranspiler(gostFach.kuerzel, (""))) {
- if (SprachendatenManager_1.SprachendatenManager.istFortfuehrbareSpracheInGOSt(this.manager.getSprachendaten(), gostFach.kuerzel.substring(0, 1))) {
- anzahlFortgefuehrteFremdsprachen += 1;
- if (this.manager.pruefeBelegungDurchgehendBelegbar(abiFachbelegung, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1)) {
- anzahlFortgefuehrteFremdsprachenDurchgehendBelegbar += 1;
- }
- else if (this.manager.pruefeBelegungDurchgehendBelegbar(abiFachbelegung, GostSchriftlichkeit_1.GostSchriftlichkeit.MUENDLICH, GostHalbjahr_1.GostHalbjahr.EF1)) {
- anzahlFortgefuehrteFremdsprachenDurchgehendBelegbar += 1;
- anzahlFortgefuehrteFremdsprachenDurchgehendBelegbarFehlerMuendlich += 1;
- }
- else if ((gostFach.istMoeglichEF1) && (gostFach.istMoeglichEF2)) {
- anzahlFortgefuehrteFremdsprachenEFBelegbar += 1;
- if (this.manager.pruefeBelegungMitSchriftlichkeit(abiFachbelegung, GostSchriftlichkeit_1.GostSchriftlichkeit.MUENDLICH, GostHalbjahr_1.GostHalbjahr.EF1)) {
- anzahlFortgefuehrteFremdsprachenEFBelegbarFehlerMuendlich += 1;
- }
- }
- }
- else {
- gefundenFortgefuehrteFremdsprachenbelegungOhneSprachenfolge = true;
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_23);
- }
- }
- }
- if ((anzahlFortgefuehrteFremdsprachenDurchgehendBelegbarFehlerMuendlich + anzahlFortgefuehrteFremdsprachenEFBelegbarFehlerMuendlich) > 0) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_12);
- }
- if ((anzahlFortgefuehrteFremdsprachen > 0) && (anzahlFortgefuehrteFremdsprachen === (anzahlFortgefuehrteFremdsprachenDurchgehendBelegbarFehlerMuendlich + anzahlFortgefuehrteFremdsprachenEFBelegbarFehlerMuendlich))) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_18);
- }
- if (anzahlFortgefuehrteFremdsprachenDurchgehendBelegbar > 0) {
- return;
- }
- let anzahlNeueinsetzendeFremdsprachenDurchgehendBelegbar = 0;
- let anzahlNeueinsetzendeFremdsprachenDurchgehendBelegbarFehlerMuendlich = 0;
- for (let abiFachbelegung of this.fremdsprachen_neu) {
- if (!this.manager.pruefeBelegung(abiFachbelegung, GostHalbjahr_1.GostHalbjahr.EF1)) {
- continue;
- }
- gefundenFremdsprachenbelegung = true;
- let gostFach = this.manager.getFach(abiFachbelegung);
- if (gostFach !== null && !JavaObject_1.JavaObject.equalsTranspiler(gostFach.kuerzel, (""))) {
- if (!SprachendatenManager_1.SprachendatenManager.istFortfuehrbareSpracheInGOSt(this.manager.getSprachendaten(), gostFach.kuerzel.substring(0, 1))) {
- if (this.manager.pruefeBelegungDurchgehendBelegbar(abiFachbelegung, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1)) {
- anzahlNeueinsetzendeFremdsprachenDurchgehendBelegbar += 1;
- }
- else if (this.manager.pruefeBelegungDurchgehendBelegbar(abiFachbelegung, GostSchriftlichkeit_1.GostSchriftlichkeit.MUENDLICH, GostHalbjahr_1.GostHalbjahr.EF1)) {
- anzahlNeueinsetzendeFremdsprachenDurchgehendBelegbar += 1;
- anzahlNeueinsetzendeFremdsprachenDurchgehendBelegbarFehlerMuendlich += 1;
- }
- }
- else {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_20);
- gefundenFortgefuehrteFremdspracheAlsNeueinsetzende = true;
- }
- }
- }
- if (anzahlNeueinsetzendeFremdsprachenDurchgehendBelegbarFehlerMuendlich > 0) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_12);
- }
- if ((gefundenFremdsprachenbelegung && !(gefundenFortgefuehrteFremdsprachenbelegungOhneSprachenfolge || gefundenFortgefuehrteFremdspracheAlsNeueinsetzende)) && (anzahlFortgefuehrteFremdsprachenDurchgehendBelegbar + anzahlNeueinsetzendeFremdsprachenDurchgehendBelegbar === 0)) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_11);
- }
- if (anzahlFortgefuehrteFremdsprachenEFBelegbar > 0) {
- if (anzahlNeueinsetzendeFremdsprachenDurchgehendBelegbar === 0) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_10);
- }
- return;
- }
- if (anzahlNeueinsetzendeFremdsprachenDurchgehendBelegbar === 0) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_18);
- return;
- }
- if ((anzahlFortgefuehrteFremdsprachenDurchgehendBelegbar + anzahlFortgefuehrteFremdsprachenEFBelegbar) === 0 && anzahlNeueinsetzendeFremdsprachenDurchgehendBelegbar > 0) {
- if (anzahlNeueinsetzendeFremdsprachenDurchgehendBelegbarFehlerMuendlich > 0) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_18);
- }
- if (this.manager.hatMuttersprachenPruefungEndeEF()) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_19_INFO);
- }
- else {
- if (anzahlFortfuehrbareFremdsprachen === 0) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_25);
- }
- else {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_18);
- if (!SprachendatenManager_1.SprachendatenManager.hatZweiSprachenMitMin4JahrenDauerEndeSekI(this.manager.getSprachendaten()))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_24);
- }
- }
- }
- }
- /**
- * Prüft, ob eine zweite Fremdsprache in der Sek I vorhanden ist und prüft sonst auf eine neu
- * einsetzende Fremdsprache.
- */
- pruefeEF1FremdsprachenfolgeZweiteFremdsprache() {
- if (SprachendatenManager_1.SprachendatenManager.hatZweiSprachenMitMin4JahrenDauerEndeSekI(this.manager.getSprachendaten()))
- return;
- if (SprachendatenManager_1.SprachendatenManager.hatEineSpracheMitMin4JahrenDauerEndeSekI(this.manager.getSprachendaten())) {
- if (this.manager.pruefeBelegungExistiertMitSchriftlichkeitEinzeln(this.fremdsprachen_neu, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1))
- return;
- if (SprachendatenManager_1.SprachendatenManager.hatSpracheMit2JahrenDauerEndeSekI(this.manager.getSprachendaten())) {
- let zweiteFremdsprache = this.manager.getSprachbelegung(SprachendatenManager_1.SprachendatenManager.getSpracheMit2JahrenDauerEndeSekI(this.manager.getSprachendaten()));
- if (!this.manager.pruefeBelegungMitSchriftlichkeitEinzeln(zweiteFremdsprache, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_13);
- return;
- }
- }
- if (!this.manager.pruefeBelegungExistiertMitSchriftlichkeitEinzeln(this.fremdsprachen_neu, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1)) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_14);
- }
- }
- /**
- * Prüft, ob alle Fremdsprachen in der EF.1 schriftlich belegt wurden.
- */
- pruefeEF1Schriftlichkeit() {
- if (this.fremdsprachen === null)
- return;
- for (let fachbelegung of this.fremdsprachen)
- if (this.manager.pruefeBelegungMitSchriftlichkeitEinzeln(fachbelegung, GostSchriftlichkeit_1.GostSchriftlichkeit.BELIEBIG, GostHalbjahr_1.GostHalbjahr.EF1) && !this.manager.pruefeBelegungMitSchriftlichkeitEinzeln(fachbelegung, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1)) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_12);
- break;
- }
- }
- /**
- * Zähle alle Fremdsprachen, die durchgehend schriftlich belegt wurden.
- * Hierzu zählt auch die Unterrichtssprache eines bilingualen Sachfachs als zweite durchgehende
- * Fremdsprache, sofern dieses durchgehende und schriftlich belegt werden kann.
- */
- pruefeEF1AnzahlDurchgehenedeSprachen() {
- let fremdsprachenDurchgehend = this.manager.filterBelegungenMitSchriftlichkeit(this.manager.filterDurchgehendBelegbar(this.fremdsprachen), GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1);
- this.anzahl_schriftlich_durchgehend = fremdsprachenDurchgehend.size();
- if (this.anzahl_schriftlich_durchgehend !== 1)
- return;
- let fsDurchgehend = this.manager.getFach(fremdsprachenDurchgehend.get(0));
- if (fsDurchgehend === null)
- return;
- let fremdspracheDurchgehend = GostFachManager_1.GostFachManager.getFremdsprache(fsDurchgehend);
- if (fremdspracheDurchgehend === null)
- return;
- let biliSachfaecherDurchgehendSchriftlich = this.manager.filterBelegungenMitSchriftlichkeit(this.manager.filterDurchgehendBelegbar(this.biliSachfaecher), GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1);
- for (let biliSachfach of biliSachfaecherDurchgehendSchriftlich) {
- let fach = this.manager.getFach(biliSachfach);
- if ((fach === null) || (JavaObject_1.JavaObject.equalsTranspiler(fremdspracheDurchgehend, (fach.biliSprache))))
- continue;
- this.anzahl_schriftlich_durchgehend++;
- return;
- }
- }
- /**
- * Prüft, ob die Bedingungen für die Wahl eines bilingualen Sachfaches erfüllt sind, sofern eines
- * in der EF.1 belegt wurde.
- */
- pruefeEF1BilingualeSachfaecher() {
- if (this.biliSachfaecher === null)
- return;
- for (let biliSachfach of this.biliSachfaecher) {
- let fach = this.manager.getFach(biliSachfach);
- if (fach === null)
- continue;
- let biliSprache = fach.biliSprache;
- if (!SprachendatenManager_1.SprachendatenManager.hatSprachbelegungInSekIMitDauer(this.manager.getSprachendaten(), biliSprache, 2)) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.BIL_14);
- continue;
- }
- let fremdsprache = this.manager.getSprachbelegung(biliSprache);
- if (this.manager.pruefeBelegungMitSchriftlichkeitEinzeln(fremdsprache, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1) || this.manager.pruefeBelegungMitSchriftlichkeitEinzeln(biliSachfach, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1))
- continue;
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.BIL_4_INFO);
- }
- }
- /**
- * Prüfe, ob die Bedingungen für den bilingualen Bildungsgang erfüllt sind, sofern ein solcher vom Schüler gewählt wurde.
- */
- pruefeEF1BilingualenBildungsgang() {
- let biligualeSprache = this.manager.getBiligualenBildungsgang();
- if (biligualeSprache === null)
- return;
- let biliSprache = this.manager.getSprachbelegung(biligualeSprache);
- if (!this.manager.pruefeBelegungDurchgehendBelegbar(biliSprache, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.BIL_10);
- if ((this.biliSachfaecher === null) || (this.biliSachfaecher.size() < 1)) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.BIL_15);
- return;
- }
- if (this.biliSachfaecher.size() < 2)
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.BIL_11_INFO);
- }
- pruefeGesamt() {
- this.pruefeGesamtSprachenfolge();
- this.pruefeGesamtFremdsprache1();
- this.pruefeGesamtFremdsprachenfolgeZweiteFremdsprache();
- this.pruefeGesamtSchriftlichkeit();
- this.pruefeGesamtAnzahlDurchgehenedeSprachen();
- this.pruefeGesamtBilingualeSachfaecher();
- this.pruefeGesamtBilingualenBildungsgang();
- }
- /**
- * Gesamt: Prüft bei der Sprachenfolge, ob eine laut Sprachenfolge fortgeführte
- * Fremdpsrache fehlerhafterweise als neu einsetzende Fremdsprache belegt wurde.
- */
- pruefeGesamtSprachenfolge() {
- if (this.manager.hatFortgefuehrteFremdspracheInSprachendaten(this.fremdsprachen_neu))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_20);
- if (this.manager.hatNeuEinsetzendeFremdspracheInSprachendaten(this.fremdsprachen_fortgefuehrt))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_21);
- if (!SprachendatenManager_1.SprachendatenManager.hatSprachbelegung(this.manager.getSprachendaten(), "E"))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_22_INFO);
- }
- /**
- * Prüft, ob eine gültige Fremdsprachenbelegung in Bezug auf eine durchgehende Belegung möglich ist.
- */
- pruefeGesamtFremdsprache1() {
- if (this.manager.pruefeBelegungExistiert(this.fremdsprachen_fortgefuehrt, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21, GostHalbjahr_1.GostHalbjahr.Q22))
- return;
- if (this.manager.hatMuttersprachenPruefungEndeEF()) {
- if (this.manager.pruefeBelegungExistiert(this.fremdsprachen_neu, 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.FS_19_INFO);
- else
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_18);
- return;
- }
- if (!this.manager.pruefeBelegungExistiert(this.fremdsprachen_fortgefuehrt, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2)) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_10);
- return;
- }
- if (!this.manager.pruefeBelegungExistiert(this.fremdsprachen_neu, 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.FS_10);
- }
- /**
- * Prüft, ob eine zweite Fremdsprache in der Sek I vorhanden ist und prüft sonst auf eine neu
- * einsetzende Fremdsprache.
- */
- pruefeGesamtFremdsprachenfolgeZweiteFremdsprache() {
- if (this.manager.istSekIZweiteFremdspracheManuellGeprueft())
- return;
- if (SprachendatenManager_1.SprachendatenManager.hatZweiSprachenMitMin4JahrenDauerEndeSekI(this.manager.getSprachendaten()))
- return;
- if (SprachendatenManager_1.SprachendatenManager.hatEineSpracheMitMin4JahrenDauerEndeSekI(this.manager.getSprachendaten())) {
- if (this.manager.pruefeBelegungExistiert(this.fremdsprachen_neu, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21, GostHalbjahr_1.GostHalbjahr.Q22))
- return;
- if (SprachendatenManager_1.SprachendatenManager.hatSprachfeststellungspruefungAufEFNiveau(this.manager.getSprachendaten()) || this.manager.hatMuttersprachenPruefungEndeEF()) {
- return;
- }
- if (SprachendatenManager_1.SprachendatenManager.hatSpracheMit2JahrenDauerEndeSekI(this.manager.getSprachendaten())) {
- let zweiteFremdsprache = this.manager.getSprachbelegung(SprachendatenManager_1.SprachendatenManager.getSpracheMit2JahrenDauerEndeSekI(this.manager.getSprachendaten()));
- if (!this.manager.pruefeBelegungMitSchriftlichkeit(zweiteFremdsprache, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_13);
- return;
- }
- }
- if (SprachendatenManager_1.SprachendatenManager.hatSpracheMit2JahrenDauerEndeSekI(this.manager.getSprachendaten())) {
- let zweiteFremdsprache = this.manager.getSprachbelegung(SprachendatenManager_1.SprachendatenManager.getSpracheMit2JahrenDauerEndeSekI(this.manager.getSprachendaten()));
- if (!this.manager.pruefeBelegungMitSchriftlichkeit(zweiteFremdsprache, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_13);
- if (this.manager.pruefeBelegungExistiert(this.fremdsprachen_neu, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21, GostHalbjahr_1.GostHalbjahr.Q22))
- return;
- if (SprachendatenManager_1.SprachendatenManager.hatSprachfeststellungspruefungAufEFNiveau(this.manager.getSprachendaten()) || this.manager.hatMuttersprachenPruefungEndeEF()) {
- return;
- }
- }
- if (this.manager.pruefeBelegungExistiert(this.fremdsprachen_neu, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21, GostHalbjahr_1.GostHalbjahr.Q22)) {
- if (SprachendatenManager_1.SprachendatenManager.hatSprachfeststellungspruefungAufEFNiveau(this.manager.getSprachendaten()) || this.manager.hatMuttersprachenPruefungEndeEF()) {
- return;
- }
- return;
- }
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_14);
- }
- /**
- * Prüft, ob eine gültige Fremdsprachenbelegung in Bezug auf die Schriftlichkeit und LK-Wahl vohanden ist.
- */
- pruefeGesamtSchriftlichkeit() {
- if (this.manager.pruefeBelegungExistiertHatMindestensEinmalSchriftlichkeit(this.fremdsprachen_neu, GostSchriftlichkeit_1.GostSchriftlichkeit.MUENDLICH, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_15);
- if (this.manager.pruefeBelegungExistiertHatMindestensEinmalKursart(this.fremdsprachen_neu, GostKursart_1.GostKursart.LK, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21, GostHalbjahr_1.GostHalbjahr.Q22))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_17);
- if (this.manager.pruefeBelegungExistiertErfuelltNichtFallsBelegt(this.fremdsprachen_fortgefuehrt, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_12);
- if (this.manager.pruefeBelegungDurchgehendBelegtExistiert(this.fremdsprachen_fortgefuehrt, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21))
- return;
- if (!this.manager.pruefeBelegungDurchgehendBelegtExistiert(this.fremdsprachen_neu, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21)) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_11);
- return;
- }
- if (this.manager.hatMuttersprachenPruefungEndeEF() && this.manager.pruefeBelegungExistiertMitSchriftlichkeit(this.fremdsprachen_fortgefuehrt, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2))
- return;
- if (this.manager.hatMuttersprachenPruefungEndeEF() && this.manager.pruefeBelegungDurchgehendBelegtExistiert(this.fremdsprachen_neu, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21))
- return;
- if (!this.manager.pruefeBelegungExistiertMitSchriftlichkeit(this.fremdsprachen_fortgefuehrt, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.FS_16);
- }
- /**
- * Zähle alle Fremdsprachen, die durchgehend schriftlich belegt wurden.
- * Hierzu zählt auch die Unterrichtssprache eines bilingualen Sachfachs als zweite durchgehende
- * Fremdsprache, sofern dieses durchgehend und schriftlich belegt wurde.
- */
- pruefeGesamtAnzahlDurchgehenedeSprachen() {
- let fremdsprachenDurchgehend = this.manager.filterBelegungen(this.fremdsprachen, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21, GostHalbjahr_1.GostHalbjahr.Q22);
- let fremdsprachenDurchgehendSchriftlich = this.manager.filterBelegungenMitSchriftlichkeit(fremdsprachenDurchgehend, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21);
- this.anzahl_schriftlich_durchgehend = fremdsprachenDurchgehendSchriftlich.size();
- if (this.anzahl_schriftlich_durchgehend !== 1)
- return;
- let fsDurchgehend = this.manager.getFach(fremdsprachenDurchgehendSchriftlich.get(0));
- if (fsDurchgehend === null)
- return;
- let fremdspracheDurchgehend = GostFachManager_1.GostFachManager.getFremdsprache(fsDurchgehend);
- if (fremdspracheDurchgehend === null)
- return;
- let biliSachfaecherDurchgehend = this.manager.filterBelegungen(this.biliSachfaecher, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21, GostHalbjahr_1.GostHalbjahr.Q22);
- let biliSachfaecherDurchgehendSchriftlich = this.manager.filterBelegungenMitSchriftlichkeit(biliSachfaecherDurchgehend, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21);
- for (let biliSachfach of biliSachfaecherDurchgehendSchriftlich) {
- let fach = this.manager.getFach(biliSachfach);
- if ((fach === null) || (JavaObject_1.JavaObject.equalsTranspiler(fremdspracheDurchgehend, (fach.biliSprache))))
- continue;
- this.anzahl_schriftlich_durchgehend++;
- return;
- }
- }
- /**
- * Prüft, ob die Bedingungen für die Wahl eines bilingualen Sachfaches erfüllt sind, sofern eines
- * belegt wurde.
- */
- pruefeGesamtBilingualeSachfaecher() {
- if (this.biliSachfaecher === null)
- return;
- for (let biliSachfach of this.biliSachfaecher) {
- let biliFach = this.manager.getFach(biliSachfach);
- if ((biliFach === null) || (!SprachendatenManager_1.SprachendatenManager.hatSprachbelegungInSekIMitDauer(this.manager.getSprachendaten(), biliFach.biliSprache, 2)))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.BIL_14);
- }
- }
- /**
- * Prüfe, ob die Bedingungen für ein bilinguales Abitur erfüllt sind, sofern ein solches vom
- * Schüler gewählt wurde.
- */
- pruefeGesamtBilingualenBildungsgang() {
- let biligualeSprache = this.manager.getBiligualenBildungsgang();
- if (biligualeSprache === null)
- return;
- let biliSprache = this.manager.getSprachbelegung(biligualeSprache);
- if ((!this.manager.pruefeBelegungMitSchriftlichkeit(biliSprache, GostSchriftlichkeit_1.GostSchriftlichkeit.SCHRIFTLICH, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2) || (!this.manager.pruefeBelegungMitKursart(biliSprache, GostKursart_1.GostKursart.LK, GostHalbjahr_1.GostHalbjahr.Q11, GostHalbjahr_1.GostHalbjahr.Q12, GostHalbjahr_1.GostHalbjahr.Q21, GostHalbjahr_1.GostHalbjahr.Q22))))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.BIL_10);
- let biliSachfaecherEF = this.manager.filterBelegungen(this.biliSachfaecher, GostHalbjahr_1.GostHalbjahr.EF1, GostHalbjahr_1.GostHalbjahr.EF2);
- if (biliSachfaecherEF.size() < 1) {
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.BIL_15);
- return;
- }
- if (biliSachfaecherEF.size() < 2)
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.BIL_11_INFO);
- let hatBiliSachfaecherDurchgehendSchriftlich = false;
- if (this.biliSachfaecher !== null) {
- for (let fach of this.biliSachfaecher) {
- if (this.manager.pruefeDurchgaengigkeitSchriftlich(fach)) {
- hatBiliSachfaecherDurchgehendSchriftlich = true;
- break;
- }
- }
- }
- if (!hatBiliSachfaecherDurchgehendSchriftlich)
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.BIL_12);
- if (!this.manager.pruefeExistiertAbiFach(this.biliSachfaecher, GostAbiturFach_1.GostAbiturFach.AB3, GostAbiturFach_1.GostAbiturFach.AB4))
- this.addFehler(GostBelegungsfehler_1.GostBelegungsfehler.BIL_13);
- }
- /**
- * Gibt die Anzahl der durchgehend schriftlich belegten bzw. belegbaren Fremdsprachen zurück.
- * Durchgehend schriftlich bedeutet, dass das Fach mind. von EF.1 bis Q2.1 schriftlich belegt wurde.
- * Hierfür kommen Fremdsprachen und ggf. ein bilinguales Sachfach in Frage, dessen Unterrichtssprache
- * nicht durchgehend schriftlich belegt.
- *
- * @return die Anzahl der durchgehend schriftlich belegten bzw. belegbaren Fremdsprachen zurück.
- */
- getAnzahlDurchgehendSchritflichBelegt() {
- return this.anzahl_schriftlich_durchgehend;
- }
- isTranspiledInstanceOf(name) {
- return ['de.nrw.schule.svws.core.abschluss.gost.belegpruefung.Fremdsprachen', 'de.nrw.schule.svws.core.abschluss.gost.GostBelegpruefung'].includes(name);
- }
- }
- exports.Fremdsprachen = Fremdsprachen;
- function cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_Fremdsprachen(obj) {
- return obj;
- }
- exports.cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_Fremdsprachen = cast_de_nrw_schule_svws_core_abschluss_gost_belegpruefung_Fremdsprachen;
- //# sourceMappingURL=Fremdsprachen.js.map
|