Merge branch 'feature-17512/Issues_Plausibilitaetspruefungen' of github.com:FH-Complete/FHC-Core into feature-17512/Issues_Plausibilitaetspruefungen

This commit is contained in:
KarpAlex
2022-10-12 11:56:02 +02:00
11 changed files with 121 additions and 62 deletions
+77 -31
View File
@@ -28,7 +28,8 @@ class PlausicheckLib
/**
* Studiengang should be the same for prestudent and student.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getStgPrestudentUngleichStgStudent($studiengang_kz = null, $prestudent_id = null)
@@ -64,7 +65,9 @@ class PlausicheckLib
/**
* Orgform of a Studiengang in Studienplan should be the same as orgform of student.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getOrgformStgUngleichOrgformPrestudent($studiensemester_kurzbz, $studiengang_kz = null, $prestudent_id = null)
@@ -74,8 +77,8 @@ class PlausicheckLib
$qry = "
SELECT
prestudent.person_id, prestudent.prestudent_id, status.studiensemester_kurzbz,
studiengang.orgform_kurzbz as stg_orgform, status.orgform_kurzbz as student_orgform,
stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
studiengang.orgform_kurzbz AS stg_orgform, status.orgform_kurzbz AS student_orgform,
prestudent.studiengang_kz AS student_studiengang, stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
FROM
public.tbl_studiengang studiengang
JOIN public.tbl_student student USING(studiengang_kz)
@@ -89,7 +92,8 @@ class PlausicheckLib
AND studiengang.studiengang_kz < 10000
AND status.studiensemester_kurzbz = ?
AND NOT EXISTS(
SELECT 1 FROM lehre.tbl_studienplan JOIN lehre.tbl_studienordnung USING(studienordnung_id)
SELECT 1 FROM lehre.tbl_studienplan
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
WHERE
tbl_studienordnung.studiengang_kz = prestudent.studiengang_kz
AND tbl_studienplan.orgform_kurzbz = status.orgform_kurzbz)";
@@ -114,7 +118,9 @@ class PlausicheckLib
/**
* Students in "mixed" Studiengang should have Orgform.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getPrestudentMischformOhneOrgform($studiensemester_kurzbz, $studiengang_kz = null, $prestudent_id = null)
@@ -152,7 +158,9 @@ class PlausicheckLib
/**
* Studiengang should be the same for prestudent and studienplan.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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 studienordnung_id int if check is to be executed only for a certain studienordnung_id
* @return success with prestudents or error
*/
public function getStgPrestudentUngleichStgStudienplan($studiengang_kz = null, $prestudent_id = null, $studienordnung_id = null)
@@ -171,7 +179,8 @@ class PlausicheckLib
JOIN public.tbl_person USING(person_id)
JOIN public.tbl_studiengang stg ON ps.studiengang_kz = stg.studiengang_kz
WHERE
ps.studiengang_kz<>stordnung.studiengang_kz";
ps.studiengang_kz<>stordnung.studiengang_kz
AND stg.melderelevant";
if (isset($studiengang_kz))
{
@@ -199,7 +208,8 @@ class PlausicheckLib
/**
* Abbrecher cannot be active.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getAbbrecherAktiv($studiengang_kz = null, $prestudent_id = null)
@@ -236,7 +246,8 @@ class PlausicheckLib
/**
* There shouldn't be any status after Abbrecher status.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getStudentstatusNachAbbrecher($studiengang_kz = null, $prestudent_id = null)
@@ -272,7 +283,9 @@ class PlausicheckLib
/**
* Ausbildungssemester of prestudent (lehrverband) must be the same as Ausbildungssemester of prestudentstatus.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getAusbildungssemPrestudentUngleichAusbildungssemStatus($studiensemester_kurzbz, $studiengang_kz = null, $prestudent_id = null)
@@ -282,7 +295,7 @@ class PlausicheckLib
$qry = "
SELECT
DISTINCT(student.student_uid), prestudent.person_id, prestudent.prestudent_id,
status.ausbildungssemester, lv.semester, status.studiensemester_kurzbz,
status.ausbildungssemester AS status_ausbildungssemester, lv.semester AS student_ausbildungssemester, status.studiensemester_kurzbz,
stg.oe_kurzbz AS prestudent_stg_oe_kurzbz
FROM
public.tbl_student student
@@ -314,7 +327,9 @@ class PlausicheckLib
/**
* Students with active status should have an active Benutzer.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getInaktiverStudentAktiverStatus($studiensemester_kurzbz, $studiengang_kz = null, $prestudent_id = null)
@@ -361,7 +376,9 @@ class PlausicheckLib
* 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 SS2022 datum of status shouldn't be before 15.11.2022
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getInskriptionVorLetzerBismeldung($studiensemester_kurzbz, $studiengang_kz = null, $prestudent_id = null)
@@ -415,7 +432,8 @@ class PlausicheckLib
/**
* Status Dates and status studysemester dates should be in correct order.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getDatumStudiensemesterFalscheReihenfolge($studiengang_kz = null, $prestudent_id = null)
@@ -467,7 +485,8 @@ class PlausicheckLib
/**
* Students with active Benutzer should have a status in the current semester.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getAktiverStudentOhneStatus($studiengang_kz = null, $prestudent_id = null)
@@ -512,7 +531,9 @@ class PlausicheckLib
/**
* Studienplan should be valid in current Ausbildungssemester of prestudent.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getStudienplanUngueltig($studiensemester_kurzbz, $studiengang_kz = null, $prestudent_id = null)
@@ -566,7 +587,9 @@ class PlausicheckLib
/**
* Students with finished studies should have exactly one final exam.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getFalscheAnzahlAbschlusspruefungen($studiensemester_kurzbz = null, $studiengang_kz = null, $prestudent_id = null)
@@ -626,7 +649,9 @@ class PlausicheckLib
/**
* Date of final exam shouldn't be missing for Absolvent.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getDatumAbschlusspruefungFehlt($studiensemester_kurzbz = null, $studiengang_kz = null, $abschlusspruefung_id = null)
@@ -652,7 +677,9 @@ class PlausicheckLib
/**
* Date of sponsion shouldn't be missing for Absolvent.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getDatumSponsionFehlt($studiensemester_kurzbz = null, $studiengang_kz = null, $abschlusspruefung_id = null)
@@ -678,7 +705,9 @@ class PlausicheckLib
/**
* Bewerber should have participated in Reihungstest.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getBewerberNichtZumRtAngetreten($studiensemester_kurzbz, $studiengang_kz = null, $prestudent_id = null)
@@ -732,7 +761,9 @@ class PlausicheckLib
/**
* Current Ausbildungssemester shouldn't be 0.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getAktSemesterNull($studiensemester_kurzbz, $studiengang_kz = null, $prestudent_id = null)
@@ -770,8 +801,9 @@ class PlausicheckLib
/**
* Prestudent should have a final status.
*
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getAbschlussstatusFehlt($studiensemester_kurzbz = null, $studiengang_kz = null, $prestudent_id = null)
@@ -852,7 +884,9 @@ class PlausicheckLib
/**
* Birthdate is too long ago.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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 person_id int if check is to be executed only for one person
* @return success with prestudents or error
*/
public function getGbDatumWeitZurueck($studiensemester_kurzbz = null, $studiengang_kz = null, $person_id = null)
@@ -870,7 +904,7 @@ class PlausicheckLib
SELECT 1
FROM public.tbl_prestudent
JOIN public.tbl_prestudentstatus status USING(prestudent_id)
JOIN public.tbl_studiengang USING(studiengang_kz)
JOIN public.tbl_studiengang stg USING(studiengang_kz)
WHERE person_id = pers.person_id";
if (isset($studiensemester_kurzbz))
@@ -898,7 +932,8 @@ class PlausicheckLib
/**
* Nation is not Austria, but address has austrian Gemeinde.
* @param int prestudent_id if check is to be executed only for one prestudent
* @param studiengang_kz int if check is to be executed for certain Studiengang
* @param person_id int if check is to be executed only for one person
* @return success with prestudents or error
*/
public function getNationNichtOesterreichAberGemeinde($studiengang_kz = null, $person_id = null)
@@ -936,7 +971,9 @@ class PlausicheckLib
/**
* Students should have exactly one home address.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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 person_id int if check is to be executed only for one person
* @return success with prestudents or error
*/
public function getFalscheAnzahlHeimatadressen($studiensemester_kurzbz = null, $studiengang_kz = null, $person_id = null)
@@ -986,7 +1023,9 @@ class PlausicheckLib
/**
* Students should have exactly one delivery address.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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 person_id int if check is to be executed only for one person
* @return success with prestudents or error
*/
public function getFalscheAnzahlZustelladressen($studiensemester_kurzbz = null, $studiengang_kz = null, $person_id = null)
@@ -1039,7 +1078,9 @@ class PlausicheckLib
/**
* Incoming shouldn't have austrian home address.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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 person_id int if check is to be executed only for one person
* @return success with prestudents or error
*/
public function getIncomingHeimatNationOesterreich($studiensemester_kurzbz, $studiengang_kz = null, $person_id = null)
@@ -1080,7 +1121,8 @@ class PlausicheckLib
/**
* Incoming should have IN/OUT data.
* @param int prestudent_id if check is to be executed only for one prestudent
* @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
* @return success with prestudents or error
*/
public function getIncomingOhneIoDatensatz($studiengang_kz = null, $prestudent_id = null)
@@ -1125,6 +1167,9 @@ class PlausicheckLib
/**
* Get final exams in a semester which are invalid (e.g. missing data)
* @param studiensemester_kurzbz string if check is to be executed for certain Studiengang
* @param studiengang_kz int if check is to be executed for certain Studiengang
* @param abschlusspruefung_id int if check is to be executed for certain Abschlussprüfung
*/
private function _getInvalidAbschlusspruefungen($studiensemester_kurzbz = null, $studiengang_kz = null, $abschlusspruefung_id = null)
{
@@ -1178,6 +1223,7 @@ class PlausicheckLib
/**
* Gets Bismeldedate from Studiensemester.
* @param studiensemester_kurzbz string
*/
private function _getBisdateFromSemester($studiensemester_kurzbz)
{