import { JavaObject, cast_java_lang_Object } from '../../../../java/lang/JavaObject'; import { AbschlussManagerBerufsbildend, cast_de_nrw_schule_svws_core_abschluss_AbschlussManagerBerufsbildend } from '../../../../core/abschluss/AbschlussManagerBerufsbildend'; import { Service, cast_de_nrw_schule_svws_core_Service } from '../../../../core/Service'; import { Abschluss, cast_de_nrw_schule_svws_core_types_Abschluss } from '../../../../core/types/Abschluss'; import { Sprachreferenzniveau, cast_de_nrw_schule_svws_core_types_Sprachreferenzniveau } from '../../../../core/types/Sprachreferenzniveau'; import { AbschlussErgebnisBerufsbildend, cast_de_nrw_schule_svws_core_data_abschluss_AbschlussErgebnisBerufsbildend } from '../../../../core/data/abschluss/AbschlussErgebnisBerufsbildend'; import { BKAnlageAFaecher, cast_de_nrw_schule_svws_core_abschluss_bk_a_BKAnlageAFaecher } from '../../../../core/abschluss/bk/a/BKAnlageAFaecher'; import { LogLevel, cast_de_nrw_schule_svws_logger_LogLevel } from '../../../../logger/LogLevel'; export class BKAnlageA01Abschluss extends Service { public constructor() { super(); } public handle(input : BKAnlageAFaecher) : AbschlussErgebnisBerufsbildend { this.logger.log(LogLevel.INFO, "Prüfe BSA:"); if (AbschlussManagerBerufsbildend.getAnzahlUngenuegend(input) > 0) { this.logger.logLn(LogLevel.INFO, " nicht erreicht (kein ungenügend erlaubt, insgesamt " + AbschlussManagerBerufsbildend.getAnzahlUngenuegend(input) + ")."); return AbschlussManagerBerufsbildend.getErgebnis(false, AbschlussManagerBerufsbildend.getDurchschnitt(input), false, Abschluss.OHNE_ABSCHLUSS); } else if (AbschlussManagerBerufsbildend.getAnzahlDefizite(input) > 1) { this.logger.logLn(LogLevel.INFO, " nicht erreicht (mehr als 1 Defizit, insgesamt " + AbschlussManagerBerufsbildend.getAnzahlDefizite(input) + ")."); return AbschlussManagerBerufsbildend.getErgebnis(false, AbschlussManagerBerufsbildend.getDurchschnitt(input), false, Abschluss.OHNE_ABSCHLUSS); } this.logger.logLn(LogLevel.INFO, " erreicht."); if ((input.englischGeR === null) || (Sprachreferenzniveau.B1.compareTo(input.englischGeR) < 0)) { if (input.englischGeR === null) { this.logger.logLn(LogLevel.INFO, "Das Sprachreferenzniveau in Englisch wurde nicht angegeben. Eine Prüfung auf MSA ist daher nicht möglich."); } else { this.logger.logLn(LogLevel.INFO, "Das Sprachreferenzniveau in Englisch ist für den MSA nicht ausreichend."); } this.logger.logLn(LogLevel.INFO, "HSA10 wurde erreicht."); return AbschlussManagerBerufsbildend.getErgebnis(true, AbschlussManagerBerufsbildend.getDurchschnitt(input), input.hatBestandenBerufsAbschlussPruefung, Abschluss.HA10); } if (AbschlussManagerBerufsbildend.getDurchschnitt(input) <= 2.5) { this.logger.logLn(LogLevel.INFO, "Die Durschnittsnote ist besser als oder gleich 2,5."); this.logger.logLn(LogLevel.INFO, "MSA-Q wurde erreicht."); return AbschlussManagerBerufsbildend.getErgebnis(false, AbschlussManagerBerufsbildend.getDurchschnitt(input), input.hatBestandenBerufsAbschlussPruefung, Abschluss.MSA_Q); } else if (AbschlussManagerBerufsbildend.getDurchschnitt(input) <= 3.5) { this.logger.logLn(LogLevel.INFO, "Die Durschnittsnote ist besser als oder gleich 3,5, aber schlechter als 2,5."); this.logger.logLn(LogLevel.INFO, "MSA wurde erreicht."); return AbschlussManagerBerufsbildend.getErgebnis(false, AbschlussManagerBerufsbildend.getDurchschnitt(input), input.hatBestandenBerufsAbschlussPruefung, Abschluss.MSA); } this.logger.logLn(LogLevel.INFO, "Die Durschnittsnote ist schlechter als 3,5."); this.logger.logLn(LogLevel.INFO, "HSA10 wurde erreicht."); return AbschlussManagerBerufsbildend.getErgebnis(false, AbschlussManagerBerufsbildend.getDurchschnitt(input), input.hatBestandenBerufsAbschlussPruefung, Abschluss.HA10); } isTranspiledInstanceOf(name : string): boolean { return ['de.nrw.schule.svws.core.Service', 'de.nrw.schule.svws.core.abschluss.bk.a.BKAnlageA01Abschluss'].includes(name); } } export function cast_de_nrw_schule_svws_core_abschluss_bk_a_BKAnlageA01Abschluss(obj : unknown) : BKAnlageA01Abschluss { return obj as BKAnlageA01Abschluss; }