ServicePrognose.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.cast_de_nrw_schule_svws_core_abschluss_ge_ServicePrognose = exports.ServicePrognose = void 0;
  4. const JavaObject_1 = require("../../../java/lang/JavaObject");
  5. const ServiceAbschlussHA10_1 = require("../../../core/abschluss/ge/ServiceAbschlussHA10");
  6. const Service_1 = require("../../../core/Service");
  7. const ServiceBerechtigungMSAQ_1 = require("../../../core/abschluss/ge/ServiceBerechtigungMSAQ");
  8. const LogLevel_1 = require("../../../logger/LogLevel");
  9. const ServiceAbschlussMSA_1 = require("../../../core/abschluss/ge/ServiceAbschlussMSA");
  10. const Abschluss_1 = require("../../../core/types/Abschluss");
  11. const AbschlussManager_1 = require("../../../core/abschluss/AbschlussManager");
  12. const ServiceAbschlussHA9_1 = require("../../../core/abschluss/ge/ServiceAbschlussHA9");
  13. class ServicePrognose extends Service_1.Service {
  14. constructor() {
  15. super();
  16. }
  17. /**
  18. * Prüft, ob Lernbereichsnoten bei den Sbchlussfächern zur Verfügung stehen oder nicht.
  19. *
  20. * @param faecher die Abschlussfächer
  21. *
  22. * @return true, falls die Lernbereichsnoten vorhanden sind, ansonsten false
  23. */
  24. static hatLernbereichsnoten(faecher) {
  25. let hatLBNW = false;
  26. let hatLBAL = false;
  27. if (faecher.faecher === null)
  28. return false;
  29. let tmp = faecher.faecher;
  30. for (let fach of tmp) {
  31. if (fach === null)
  32. continue;
  33. hatLBNW = hatLBNW || JavaObject_1.JavaObject.equalsTranspiler("LBNW", (fach.kuerzel));
  34. hatLBAL = hatLBAL || JavaObject_1.JavaObject.equalsTranspiler("LBAL", (fach.kuerzel));
  35. }
  36. return hatLBNW && hatLBAL;
  37. }
  38. /**
  39. * Führt die Prognoseberechnung anhand der übergebenen Abschlussfächer durch
  40. * und gibt das Berechnungsergebnis zurück.
  41. *
  42. * @param input die Abschlussfächer
  43. *
  44. * @return das Ergebnis der Prognoseberechnung
  45. */
  46. handle(input) {
  47. if (!AbschlussManager_1.AbschlussManager.pruefeHat4LeistungsdifferenzierteFaecher(input)) {
  48. this.logger.logLn(LogLevel_1.LogLevel.DEBUG, "Fehler: Es wurden nicht genügend leistungsdiffernzierte Fächer gefunden.");
  49. let prognose = AbschlussManager_1.AbschlussManager.getErgebnis(null, false);
  50. prognose.log = this.log.getStrings();
  51. return prognose;
  52. }
  53. if (!AbschlussManager_1.AbschlussManager.pruefeKuerzelDuplikate(input)) {
  54. this.logger.logLn(LogLevel_1.LogLevel.DEBUG, "Fehler: Es wurden Fächer mit dem gleichen Kürzel zur Abschlussprüfung übergeben. Dies ist nicht zulässig.");
  55. let prognose = AbschlussManager_1.AbschlussManager.getErgebnis(null, false);
  56. prognose.log = this.log.getStrings();
  57. return prognose;
  58. }
  59. let abschluss = Abschluss_1.Abschluss.OHNE_ABSCHLUSS;
  60. let np_faecher = null;
  61. if (!JavaObject_1.JavaObject.equalsTranspiler("10", (input.jahrgang))) {
  62. let ha9 = new ServiceAbschlussHA9_1.ServiceAbschlussHA9();
  63. let ha9output = ha9.handle(input);
  64. np_faecher = ha9output.npFaecher;
  65. if (ha9output.erworben)
  66. abschluss = Abschluss_1.Abschluss.HA9;
  67. this.log.append(ha9.getLog());
  68. this.logger.logLn(LogLevel_1.LogLevel.INFO, "");
  69. }
  70. else if (JavaObject_1.JavaObject.equalsTranspiler("10", (input.jahrgang))) {
  71. abschluss = Abschluss_1.Abschluss.HA9;
  72. }
  73. let ha10 = new ServiceAbschlussHA10_1.ServiceAbschlussHA10();
  74. let ha10output = ha10.handle(input);
  75. if (ha10output.erworben)
  76. abschluss = Abschluss_1.Abschluss.HA10;
  77. else if (JavaObject_1.JavaObject.equalsTranspiler("10", (input.jahrgang)) || (JavaObject_1.JavaObject.equalsTranspiler(Abschluss_1.Abschluss.HA9, (abschluss))))
  78. np_faecher = ha10output.npFaecher;
  79. this.log.append(ha10.getLog());
  80. if ((!JavaObject_1.JavaObject.equalsTranspiler(Abschluss_1.Abschluss.OHNE_ABSCHLUSS, (abschluss))) || (!ServicePrognose.hatLernbereichsnoten(input))) {
  81. let msa = new ServiceAbschlussMSA_1.ServiceAbschlussMSA();
  82. let msaOutput = msa.handle(input);
  83. this.logger.logLn(LogLevel_1.LogLevel.INFO, "");
  84. this.log.append(msa.getLog());
  85. if (msaOutput.erworben) {
  86. abschluss = Abschluss_1.Abschluss.MSA;
  87. let msaq = new ServiceBerechtigungMSAQ_1.ServiceBerechtigungMSAQ();
  88. let msaqOutput = msaq.handle(input);
  89. if (msaqOutput.erworben) {
  90. abschluss = Abschluss_1.Abschluss.MSA_Q;
  91. }
  92. else {
  93. np_faecher = msaqOutput.npFaecher;
  94. }
  95. this.logger.logLn(LogLevel_1.LogLevel.INFO, "");
  96. this.log.append(msaq.getLog());
  97. }
  98. else {
  99. np_faecher = msaOutput.npFaecher;
  100. }
  101. }
  102. let prognose = AbschlussManager_1.AbschlussManager.getErgebnisNachpruefung(abschluss, np_faecher);
  103. prognose.erworben = (!JavaObject_1.JavaObject.equalsTranspiler(Abschluss_1.Abschluss.OHNE_ABSCHLUSS, (abschluss)));
  104. prognose.log = this.log.getStrings();
  105. return prognose;
  106. }
  107. isTranspiledInstanceOf(name) {
  108. return ['de.nrw.schule.svws.core.Service', 'de.nrw.schule.svws.core.abschluss.ge.ServicePrognose'].includes(name);
  109. }
  110. }
  111. exports.ServicePrognose = ServicePrognose;
  112. function cast_de_nrw_schule_svws_core_abschluss_ge_ServicePrognose(obj) {
  113. return obj;
  114. }
  115. exports.cast_de_nrw_schule_svws_core_abschluss_ge_ServicePrognose = cast_de_nrw_schule_svws_core_abschluss_ge_ServicePrognose;
  116. //# sourceMappingURL=ServicePrognose.js.map