From 2428589bcaa0fdc144963fd6fed0c87083a21f3e Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Thu, 16 Apr 2026 02:12:01 +0200 Subject: [PATCH] Issues: Geburtsnation fehlt, Falscher Incoming Zweck: added person Id, added issue checker component to Studierendenverwaltung header, added comments to issues, set some issues to self-resolving, Plausicheck GUI: issues from core, dvuh and bis are displayed --- application/config/fehler.php | 4 +-- .../v1/issues/StudentIssueChecker.php | 17 +++++++++ .../system/issues/Plausichecks.php | 3 +- .../plausichecks/AbschlussstatusFehlt.php | 1 + .../issues/plausichecks/AktSemesterNull.php | 1 + .../plausichecks/AktiverStudentOhneStatus.php | 1 + .../AktiverStudentstatusOhneKontobuchung.php | 1 + ...PrestudentUngleichAusbildungssemStatus.php | 1 + .../BewerberNichtZumRtAngetreten.php | 1 + .../DatumAbschlusspruefungFehlt.php | 1 + .../plausichecks/DatumSponsionFehlt.php | 1 + ...DatumStudiensemesterFalscheReihenfolge.php | 1 + .../DualesStudiumOhneMarkierung.php | 1 + .../FalscheAnzahlAbschlusspruefungen.php | 1 + .../FalscherIncomingZweckPlausi.php | 12 ++++++- .../plausichecks/GeburtsnationFehlt.php | 12 +++---- .../InaktiverStudentAktiverStatus.php | 1 + .../plausichecks/IncomingOhneIoDatensatz.php | 1 + .../IncomingOrGsFoerderrelevant.php | 1 + .../InskriptionVorLetzerBismeldung.php | 23 ++++++------ .../KeinAufenthaltszweckPlausi.php | 2 +- .../OutgoingAngerechneteEctsFehlenPlausi.php | 3 +- ...utgoingAufenthaltfoerderungfehltPlausi.php | 2 +- .../OutgoingErworbeneEctsFehlenPlausi.php | 2 +- .../UhstatPersonkennungFehltCore.php | 2 +- .../issues/plausichecks/ZgvDatumInZukunft.php | 2 +- .../plausichecks/ZgvDatumVorGeburtsdatum.php | 2 +- .../plausichecks/ZgvMasterDatumInZukunft.php | 2 +- .../ZgvMasterDatumVorGeburtsdatum.php | 2 +- .../ZgvMasterDatumVorZgvdatum.php | 2 +- .../ZuVieleZweckeIncomingPlausi.php | 2 +- .../issues/resolvers/CORE_PERSON_0005.php | 36 ------------------- public/js/api/factory/issueChecker.js | 20 +++++++++++ public/js/components/Issues/IssueChecker.js | 11 ++++-- .../Stv/Studentenverwaltung/Details.js | 11 +++++- 35 files changed, 114 insertions(+), 72 deletions(-) create mode 100644 application/controllers/api/frontend/v1/issues/StudentIssueChecker.php delete mode 100644 application/libraries/issues/resolvers/CORE_PERSON_0005.php create mode 100644 public/js/api/factory/issueChecker.js diff --git a/application/config/fehler.php b/application/config/fehler.php index 32b1e82e7..7f546c840 100644 --- a/application/config/fehler.php +++ b/application/config/fehler.php @@ -431,8 +431,8 @@ $config['fehler'] = array( 'fehlertyp_kurzbz' => 'error', 'app' => 'core', 'producerLibName' => 'GeburtsnationFehlt', - 'resolverLibName' => 'CORE_PERSON_0005', - 'producerIsResolver' => false + 'resolverLibName' => null, + 'producerIsResolver' => true ), array( 'fehlercode' => 'CORE_PERSON_0006', diff --git a/application/controllers/api/frontend/v1/issues/StudentIssueChecker.php b/application/controllers/api/frontend/v1/issues/StudentIssueChecker.php new file mode 100644 index 000000000..83f8e8b30 --- /dev/null +++ b/application/controllers/api/frontend/v1/issues/StudentIssueChecker.php @@ -0,0 +1,17 @@ +load->library('issues/PlausicheckProducerLib', array('apps' => self::APPS)); - $this->load->library('issues/PlausicheckDefinitionLib'); $this->load->library('WidgetLib'); // Load models diff --git a/application/libraries/issues/plausichecks/AbschlussstatusFehlt.php b/application/libraries/issues/plausichecks/AbschlussstatusFehlt.php index 93a5059f0..8dd8af96d 100644 --- a/application/libraries/issues/plausichecks/AbschlussstatusFehlt.php +++ b/application/libraries/issues/plausichecks/AbschlussstatusFehlt.php @@ -57,6 +57,7 @@ class AbschlussstatusFehlt extends PlausiChecker * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/AktSemesterNull.php b/application/libraries/issues/plausichecks/AktSemesterNull.php index 7e0f4d132..48d97c62b 100644 --- a/application/libraries/issues/plausichecks/AktSemesterNull.php +++ b/application/libraries/issues/plausichecks/AktSemesterNull.php @@ -57,6 +57,7 @@ class AktSemesterNull extends PlausiChecker * @param studiensemester_kurzbz string check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/AktiverStudentOhneStatus.php b/application/libraries/issues/plausichecks/AktiverStudentOhneStatus.php index c2ab43ba3..fe9f551a2 100644 --- a/application/libraries/issues/plausichecks/AktiverStudentOhneStatus.php +++ b/application/libraries/issues/plausichecks/AktiverStudentOhneStatus.php @@ -49,6 +49,7 @@ class AktiverStudentOhneStatus extends PlausiChecker * Students with active Benutzer should have a status in the current semester. * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/AktiverStudentstatusOhneKontobuchung.php b/application/libraries/issues/plausichecks/AktiverStudentstatusOhneKontobuchung.php index 29dd91c7e..5f34790e2 100644 --- a/application/libraries/issues/plausichecks/AktiverStudentstatusOhneKontobuchung.php +++ b/application/libraries/issues/plausichecks/AktiverStudentstatusOhneKontobuchung.php @@ -63,6 +63,7 @@ class AktiverStudentstatusOhneKontobuchung extends PlausiChecker * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/AusbildungssemPrestudentUngleichAusbildungssemStatus.php b/application/libraries/issues/plausichecks/AusbildungssemPrestudentUngleichAusbildungssemStatus.php index 034b8185b..22fa069bd 100644 --- a/application/libraries/issues/plausichecks/AusbildungssemPrestudentUngleichAusbildungssemStatus.php +++ b/application/libraries/issues/plausichecks/AusbildungssemPrestudentUngleichAusbildungssemStatus.php @@ -66,6 +66,7 @@ class AusbildungssemPrestudentUngleichAusbildungssemStatus extends PlausiChecker * @param studiensemester_kurzbz string check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/BewerberNichtZumRtAngetreten.php b/application/libraries/issues/plausichecks/BewerberNichtZumRtAngetreten.php index 2bc6fb730..307f47467 100644 --- a/application/libraries/issues/plausichecks/BewerberNichtZumRtAngetreten.php +++ b/application/libraries/issues/plausichecks/BewerberNichtZumRtAngetreten.php @@ -60,6 +60,7 @@ class BewerberNichtZumRtAngetreten extends PlausiChecker * @param studiensemester_kurzbz string check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/DatumAbschlusspruefungFehlt.php b/application/libraries/issues/plausichecks/DatumAbschlusspruefungFehlt.php index 7e9082162..028d89650 100644 --- a/application/libraries/issues/plausichecks/DatumAbschlusspruefungFehlt.php +++ b/application/libraries/issues/plausichecks/DatumAbschlusspruefungFehlt.php @@ -60,6 +60,7 @@ class DatumAbschlusspruefungFehlt extends PlausiChecker * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param abschlusspruefung_id int if check is to be executed for a certain Abschlussprüfung + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/DatumSponsionFehlt.php b/application/libraries/issues/plausichecks/DatumSponsionFehlt.php index d1fe63c80..b60b33a6e 100644 --- a/application/libraries/issues/plausichecks/DatumSponsionFehlt.php +++ b/application/libraries/issues/plausichecks/DatumSponsionFehlt.php @@ -60,6 +60,7 @@ class DatumSponsionFehlt extends PlausiChecker * @param studiensemester_kurzbz string check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param abschlusspruefung_id int if check is to be executed only for a certain Abschlussprüfung + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/DatumStudiensemesterFalscheReihenfolge.php b/application/libraries/issues/plausichecks/DatumStudiensemesterFalscheReihenfolge.php index 1f7b8cec6..cc749f601 100644 --- a/application/libraries/issues/plausichecks/DatumStudiensemesterFalscheReihenfolge.php +++ b/application/libraries/issues/plausichecks/DatumStudiensemesterFalscheReihenfolge.php @@ -51,6 +51,7 @@ class DatumStudiensemesterFalscheReihenfolge extends PlausiChecker * Status Dates and status studysemester dates should be in correct order. * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if check is to be executed only for certain Studiengaenge * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/DualesStudiumOhneMarkierung.php b/application/libraries/issues/plausichecks/DualesStudiumOhneMarkierung.php index 344a40e4b..18ca83da1 100644 --- a/application/libraries/issues/plausichecks/DualesStudiumOhneMarkierung.php +++ b/application/libraries/issues/plausichecks/DualesStudiumOhneMarkierung.php @@ -63,6 +63,7 @@ class DualesStudiumOhneMarkierung extends PlausiChecker * @param studiensemester_kurzbz string check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/FalscheAnzahlAbschlusspruefungen.php b/application/libraries/issues/plausichecks/FalscheAnzahlAbschlusspruefungen.php index 90609b004..f0084a30d 100644 --- a/application/libraries/issues/plausichecks/FalscheAnzahlAbschlusspruefungen.php +++ b/application/libraries/issues/plausichecks/FalscheAnzahlAbschlusspruefungen.php @@ -57,6 +57,7 @@ class FalscheAnzahlAbschlusspruefungen extends PlausiChecker * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/FalscherIncomingZweckPlausi.php b/application/libraries/issues/plausichecks/FalscherIncomingZweckPlausi.php index 91b888c7f..d8a2c0221 100644 --- a/application/libraries/issues/plausichecks/FalscherIncomingZweckPlausi.php +++ b/application/libraries/issues/plausichecks/FalscherIncomingZweckPlausi.php @@ -20,12 +20,14 @@ class FalscherIncomingZweckPlausi extends PlausiChecker $studiensemester_kurzbz = isset($params['studiensemester_kurzbz']) ? $params['studiensemester_kurzbz'] : null; $studiengang_kz = isset($params['studiengang_kz']) ? $params['studiengang_kz'] : null; $bisio_id = isset($params['bisio_id']) ? $params['bisio_id'] : null; + $person_id = isset($params['person_id']) ? $params['person_id'] : null; // get all students failing the plausicheck $prestudentRes = $this->_getFalscherIncomingZweck( $studiensemester_kurzbz, $studiengang_kz, $bisio_id, + $person_id, $exkludierte_studiengang_kz ); @@ -52,10 +54,11 @@ class FalscherIncomingZweckPlausi extends PlausiChecker } /** - * Prestudent should have a final status. + * Incomings should have the correct Zweck. * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param bisio_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ @@ -63,6 +66,7 @@ class FalscherIncomingZweckPlausi extends PlausiChecker $studiensemester_kurzbz = null, $studiengang_kz = null, $bisio_id = null, + $person_id = null, $exkludierte_studiengang_kz = null ) { @@ -110,6 +114,12 @@ class FalscherIncomingZweckPlausi extends PlausiChecker $params[] = $bisio_id; } + if (isset($person_id)) + { + $qry .= " AND zwecke.person_id = ?"; + $params[] = $person_id; + } + if (isset($exkludierte_studiengang_kz) && !isEmptyArray($exkludierte_studiengang_kz)) { $qry .= " AND zwecke.studiengang_kz NOT IN ?"; diff --git a/application/libraries/issues/plausichecks/GeburtsnationFehlt.php b/application/libraries/issues/plausichecks/GeburtsnationFehlt.php index 7249ee416..459851110 100644 --- a/application/libraries/issues/plausichecks/GeburtsnationFehlt.php +++ b/application/libraries/issues/plausichecks/GeburtsnationFehlt.php @@ -51,17 +51,17 @@ class GeburtsnationFehlt extends PlausiChecker } /** - * Prestudent should have a final status. + * Geburtsnation is missing. * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang - * @param prestudent_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ private function _getGeburtsnationFehlt( $studiensemester_kurzbz = null, $studiengang_kz = null, - $prestudent_id = null, + $person_id = null, $exkludierte_studiengang_kz = null ) { $params = array(); @@ -91,10 +91,10 @@ class GeburtsnationFehlt extends PlausiChecker $params[] = $studiengang_kz; } - if (isset($prestudent_id)) + if (isset($person_id)) { - $qry .= " AND pre.prestudent_id = ?"; - $params[] = $prestudent_id; + $qry .= " AND pre.person_id = ?"; + $params[] = $person_id; } if (isset($exkludierte_studiengang_kz) && !isEmptyArray($exkludierte_studiengang_kz)) diff --git a/application/libraries/issues/plausichecks/InaktiverStudentAktiverStatus.php b/application/libraries/issues/plausichecks/InaktiverStudentAktiverStatus.php index 3df54d1b4..ba20973a7 100644 --- a/application/libraries/issues/plausichecks/InaktiverStudentAktiverStatus.php +++ b/application/libraries/issues/plausichecks/InaktiverStudentAktiverStatus.php @@ -60,6 +60,7 @@ class InaktiverStudentAktiverStatus extends PlausiChecker * @param studiensemester_kurzbz string check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/IncomingOhneIoDatensatz.php b/application/libraries/issues/plausichecks/IncomingOhneIoDatensatz.php index d62e36a79..ee2c3d5fe 100644 --- a/application/libraries/issues/plausichecks/IncomingOhneIoDatensatz.php +++ b/application/libraries/issues/plausichecks/IncomingOhneIoDatensatz.php @@ -49,6 +49,7 @@ class IncomingOhneIoDatensatz extends PlausiChecker * Incoming should have IN/OUT data. * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/IncomingOrGsFoerderrelevant.php b/application/libraries/issues/plausichecks/IncomingOrGsFoerderrelevant.php index 92b15a3d4..3339730b8 100644 --- a/application/libraries/issues/plausichecks/IncomingOrGsFoerderrelevant.php +++ b/application/libraries/issues/plausichecks/IncomingOrGsFoerderrelevant.php @@ -57,6 +57,7 @@ class IncomingOrGsFoerderrelevant extends PlausiChecker * @param studiensemester_kurzbz string check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return object success or error */ diff --git a/application/libraries/issues/plausichecks/InskriptionVorLetzerBismeldung.php b/application/libraries/issues/plausichecks/InskriptionVorLetzerBismeldung.php index 7a56fd5ad..96acbd250 100644 --- a/application/libraries/issues/plausichecks/InskriptionVorLetzerBismeldung.php +++ b/application/libraries/issues/plausichecks/InskriptionVorLetzerBismeldung.php @@ -61,7 +61,7 @@ class InskriptionVorLetzerBismeldung extends PlausiChecker /** * Students of a semester shouldn't start studies before the date of Bismeldung. - * e.g. If student studies in WS2022 datum of status shouldn't be before 15.4.2020 + * e.g. If student studies in WS2022 datum of status shouldn't be before 15.4.2022 * e.g. If student studies in SS2022 datum of status shouldn't be before 15.11.2022 * @param studiensemester_kurzbz string check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang @@ -79,6 +79,8 @@ class InskriptionVorLetzerBismeldung extends PlausiChecker // get Bismeldedatum $datumBis = $this->_getBisdateFromSemester($studiensemester_kurzbz); + if (!$datumBis) return success([]); + $params = array($datumBis, $studiensemester_kurzbz, $datumBis); // get active students @@ -141,17 +143,16 @@ class InskriptionVorLetzerBismeldung extends PlausiChecker */ private function _getBisdateFromSemester($studiensemester_kurzbz) { - $semesterYear = substr($studiensemester_kurzbz, 2, 6); - $semesterType = substr($studiensemester_kurzbz, 0, 2); + $bisdate = null; - if ($semesterType == 'SS') - { - return date_format(date_create(($semesterYear - 1)."-11-15"), 'Y-m-d'); - } + $this->_ci->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); + $prevSemester = $this->_ci->StudiensemesterModel->getPreviousFrom($studiensemester_kurzbz); + if (!hasData($prevSemester)) return null; + $prevSemester = getData($prevSemester)[0]->studiensemester_kurzbz; - if ($semesterType == 'WS') - { - return date_format(date_create($semesterYear."-04-15"), 'Y-m-d'); - } + $this->_ci->load->model('codex/Bismeldestichtag_model', 'BismeldestichtagModel'); + $bisDate = $this->_ci->BismeldestichtagModel->getLastReachedMeldestichtag($prevSemester); + if (!hasData($bisDate)) return null; + return getData($bisDate)[0]->meldestichtag; } } diff --git a/application/libraries/issues/plausichecks/KeinAufenthaltszweckPlausi.php b/application/libraries/issues/plausichecks/KeinAufenthaltszweckPlausi.php index 9f9e7a230..7773d5fdd 100644 --- a/application/libraries/issues/plausichecks/KeinAufenthaltszweckPlausi.php +++ b/application/libraries/issues/plausichecks/KeinAufenthaltszweckPlausi.php @@ -54,7 +54,7 @@ class KeinAufenthaltszweckPlausi extends PlausiChecker } /** - * Prestudent should have a final status. + * Students with mobility should have Aufenthaltszweck. * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param bisio_id int if check is to be executed only for one prestudent diff --git a/application/libraries/issues/plausichecks/OutgoingAngerechneteEctsFehlenPlausi.php b/application/libraries/issues/plausichecks/OutgoingAngerechneteEctsFehlenPlausi.php index dff0e14c1..5cc2f6d08 100644 --- a/application/libraries/issues/plausichecks/OutgoingAngerechneteEctsFehlenPlausi.php +++ b/application/libraries/issues/plausichecks/OutgoingAngerechneteEctsFehlenPlausi.php @@ -54,10 +54,11 @@ class OutgoingAngerechneteEctsFehlenPlausi extends PlausiChecker } /** - * Prestudent should have a final status. + * Outgoing should have angerechnete ECTS. * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param bisio_id int if check is to be executed only for one prestudent + * @param person_id int if check is to be executed only for one person * @param exkludierte_studiengang_kz array if certain Studiengänge have to be excluded from check * @return success with prestudents or error */ diff --git a/application/libraries/issues/plausichecks/OutgoingAufenthaltfoerderungfehltPlausi.php b/application/libraries/issues/plausichecks/OutgoingAufenthaltfoerderungfehltPlausi.php index 3a75d1940..9f66610d3 100644 --- a/application/libraries/issues/plausichecks/OutgoingAufenthaltfoerderungfehltPlausi.php +++ b/application/libraries/issues/plausichecks/OutgoingAufenthaltfoerderungfehltPlausi.php @@ -54,7 +54,7 @@ class OutgoingAufenthaltfoerderungfehltPlausi extends PlausiChecker } /** - * Prestudent should have a final status. + * Student with mobility should have Aufenthaltsfoerderung. * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param bisio_id int if check is to be executed only for one prestudent diff --git a/application/libraries/issues/plausichecks/OutgoingErworbeneEctsFehlenPlausi.php b/application/libraries/issues/plausichecks/OutgoingErworbeneEctsFehlenPlausi.php index b5be77ea6..1dbd89f1c 100644 --- a/application/libraries/issues/plausichecks/OutgoingErworbeneEctsFehlenPlausi.php +++ b/application/libraries/issues/plausichecks/OutgoingErworbeneEctsFehlenPlausi.php @@ -54,7 +54,7 @@ class OutgoingErworbeneEctsFehlenPlausi extends PlausiChecker } /** - * Prestudent should have a final status. + * Outgoing should have erworbene ECTS. * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param bisio_id int if check is to be executed only for one prestudent diff --git a/application/libraries/issues/plausichecks/UhstatPersonkennungFehltCore.php b/application/libraries/issues/plausichecks/UhstatPersonkennungFehltCore.php index 1975e5c2a..509401128 100644 --- a/application/libraries/issues/plausichecks/UhstatPersonkennungFehltCore.php +++ b/application/libraries/issues/plausichecks/UhstatPersonkennungFehltCore.php @@ -53,7 +53,7 @@ class UhstatPersonkennungFehltCore extends PlausiChecker } /** - * Prestudent should have a final status. + * Student should have Personenkennung for UHSTAT reporting. * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent diff --git a/application/libraries/issues/plausichecks/ZgvDatumInZukunft.php b/application/libraries/issues/plausichecks/ZgvDatumInZukunft.php index 125281070..797f86790 100644 --- a/application/libraries/issues/plausichecks/ZgvDatumInZukunft.php +++ b/application/libraries/issues/plausichecks/ZgvDatumInZukunft.php @@ -54,7 +54,7 @@ class ZgvDatumInZukunft extends PlausiChecker } /** - * Prestudent should have a final status. + * ZGV date should be in the past. * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent diff --git a/application/libraries/issues/plausichecks/ZgvDatumVorGeburtsdatum.php b/application/libraries/issues/plausichecks/ZgvDatumVorGeburtsdatum.php index d28fc522e..fef53cf4d 100644 --- a/application/libraries/issues/plausichecks/ZgvDatumVorGeburtsdatum.php +++ b/application/libraries/issues/plausichecks/ZgvDatumVorGeburtsdatum.php @@ -54,7 +54,7 @@ class ZgvDatumVorGeburtsdatum extends PlausiChecker } /** - * Prestudent should have a final status. + * Zgv date should be after birthdate. * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent diff --git a/application/libraries/issues/plausichecks/ZgvMasterDatumInZukunft.php b/application/libraries/issues/plausichecks/ZgvMasterDatumInZukunft.php index 1f83500de..7f7a8964c 100644 --- a/application/libraries/issues/plausichecks/ZgvMasterDatumInZukunft.php +++ b/application/libraries/issues/plausichecks/ZgvMasterDatumInZukunft.php @@ -54,7 +54,7 @@ class ZgvMasterDatumInZukunft extends PlausiChecker } /** - * Prestudent should have a final status. + * ZGV master date should be in the past. * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent diff --git a/application/libraries/issues/plausichecks/ZgvMasterDatumVorGeburtsdatum.php b/application/libraries/issues/plausichecks/ZgvMasterDatumVorGeburtsdatum.php index 7da8c08d8..bd179623f 100644 --- a/application/libraries/issues/plausichecks/ZgvMasterDatumVorGeburtsdatum.php +++ b/application/libraries/issues/plausichecks/ZgvMasterDatumVorGeburtsdatum.php @@ -54,7 +54,7 @@ class ZgvMasterDatumVorGeburtsdatum extends PlausiChecker } /** - * Prestudent should have a final status. + * ZGV master date should be after birthdate. * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent diff --git a/application/libraries/issues/plausichecks/ZgvMasterDatumVorZgvdatum.php b/application/libraries/issues/plausichecks/ZgvMasterDatumVorZgvdatum.php index 8f10159ba..2ff2e7862 100644 --- a/application/libraries/issues/plausichecks/ZgvMasterDatumVorZgvdatum.php +++ b/application/libraries/issues/plausichecks/ZgvMasterDatumVorZgvdatum.php @@ -54,7 +54,7 @@ class ZgvMasterDatumVorZgvdatum extends PlausiChecker } /** - * Prestudent should have a final status. + * ZGV master date should be before ZGV date. * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param prestudent_id int if check is to be executed only for one prestudent diff --git a/application/libraries/issues/plausichecks/ZuVieleZweckeIncomingPlausi.php b/application/libraries/issues/plausichecks/ZuVieleZweckeIncomingPlausi.php index 395bffe85..8e7ba0855 100644 --- a/application/libraries/issues/plausichecks/ZuVieleZweckeIncomingPlausi.php +++ b/application/libraries/issues/plausichecks/ZuVieleZweckeIncomingPlausi.php @@ -54,7 +54,7 @@ class ZuVieleZweckeIncomingPlausi extends PlausiChecker } /** - * Prestudent should have a final status. + * There should be exactly one Incoming Zweck. * @param studiensemester_kurzbz string if check is to be executed for certain Studiensemester * @param studiengang_kz int if check is to be executed for certain Studiengang * @param bisio_id int if check is to be executed only for one prestudent diff --git a/application/libraries/issues/resolvers/CORE_PERSON_0005.php b/application/libraries/issues/resolvers/CORE_PERSON_0005.php deleted file mode 100644 index 1d768e70c..000000000 --- a/application/libraries/issues/resolvers/CORE_PERSON_0005.php +++ /dev/null @@ -1,36 +0,0 @@ -_ci =& get_instance(); // get code igniter instance - - $this->_ci->load->model('person/Person_model', 'PersonModel'); - - // load geburtsnation for the given person - $this->_ci->PersonModel->addSelect('geburtsnation'); - $personRes = $this->_ci->PersonModel->load($params['issue_person_id']); - - if (isError($personRes)) return $personRes; - - if (hasData($personRes)) - { - // get person data - $personData = getData($personRes)[0]; - - // if geburtsnation present, issue is resolved - return success(!isEmptyString($personData->geburtsnation)); - } - else - return success(false); // if no person found, not resolved - } -} \ No newline at end of file diff --git a/public/js/api/factory/issueChecker.js b/public/js/api/factory/issueChecker.js new file mode 100644 index 000000000..da0934bd0 --- /dev/null +++ b/public/js/api/factory/issueChecker.js @@ -0,0 +1,20 @@ +export default { + + checkPerson(person_id) + { + return { + method: 'post', + url: '/api/frontend/v1/issues/StudentIssueChecker/checkPerson', + params: { person_id } + }; + }, + countPersonOpenIssues(person_id) + { + return { + method: 'get', + url: '/api/frontend/v1/issues/StudentIssueChecker/countPersonOpenIssues', + params: { person_id } + }; + } + +} \ No newline at end of file diff --git a/public/js/components/Issues/IssueChecker.js b/public/js/components/Issues/IssueChecker.js index 492d49015..2b6bd891a 100644 --- a/public/js/components/Issues/IssueChecker.js +++ b/public/js/components/Issues/IssueChecker.js @@ -1,4 +1,6 @@ import IssueList from './IssueList.js'; +import DefaultIssueCheckerEndpoint from '../../api/factory/issueChecker.js'; +import DefaultIssueListEndpoint from '../../api/factory/issueList.js'; export default { name: 'IssueChecker', @@ -19,11 +21,13 @@ export default { }, endpoint: { type: Object, - required: true + required: true, + default: DefaultIssueCheckerEndpoint }, issueListEndpoint: { type: Object, - required: true + required: true, + default: DefaultIssueListEndpoint }, issueListStyle: { type: Object @@ -47,6 +51,9 @@ export default { computed: { }, watch: { + person_id() { + this.countPersonOpenIssues(); + } }, mounted() { this.countPersonOpenIssues(); diff --git a/public/js/components/Stv/Studentenverwaltung/Details.js b/public/js/components/Stv/Studentenverwaltung/Details.js index e59492cf5..ee551a2c5 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details.js +++ b/public/js/components/Stv/Studentenverwaltung/Details.js @@ -1,5 +1,6 @@ import FhcTabs from "../../Tabs.js"; import FhcHeader from "../../DetailHeader/DetailHeader.js"; +import IssueChecker from "../../Issues/IssueChecker.js"; import ApiStvApp from '../../../api/factory/stv/app.js'; @@ -10,7 +11,8 @@ export default { name: "DetailsPrestudent", components: { FhcTabs, - FhcHeader + FhcHeader, + IssueChecker }, data() { return { @@ -104,6 +106,13 @@ export default { +