From f2f960fd43f0a31fed9cd467d5c737b20e894caf Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Sat, 8 Oct 2022 01:40:14 +0200 Subject: [PATCH] Plausichecks: added comments, fixed bug for studiengang parameter in GbDatumWeitZurueck check --- .../controllers/jobs/PlausiIssueProducer.php | 4 +- .../system/issues/Plausichecks.php | 25 ++--- .../libraries/issues/PlausicheckLib.php | 96 ++++++++++++++----- .../issues/PlausicheckProducerLib.php | 11 ++- .../issues/plausichecks/PlausiChecker.php | 2 +- 5 files changed, 94 insertions(+), 44 deletions(-) diff --git a/application/controllers/jobs/PlausiIssueProducer.php b/application/controllers/jobs/PlausiIssueProducer.php index fdacc7740..943d7aa46 100644 --- a/application/controllers/jobs/PlausiIssueProducer.php +++ b/application/controllers/jobs/PlausiIssueProducer.php @@ -15,6 +15,8 @@ class PlausiIssueProducer extends JOB_Controller /** * Runs issue production job. + * @param studiensemester_kurzbz string job is run for students of a certain semester. + * @param studiengang_kz int job is run for students of certain Studiengang. */ public function run($studiensemester_kurzbz = null, $studiengang_kz = null) { @@ -27,7 +29,7 @@ class PlausiIssueProducer extends JOB_Controller { // execute the check $this->logInfo("Checking " . $fehler_kurzbz . "..."); - $plausicheckRes = $this->plausicheckproducerlib->producePlausicheck($fehler_kurzbz, $studiensemester_kurzbz, $studiengang_kz); + $plausicheckRes = $this->plausicheckproducerlib->producePlausicheckIssue($fehler_kurzbz, $studiensemester_kurzbz, $studiengang_kz); if (isError($plausicheckRes)) $this->logError(getError($plausicheckRes)); diff --git a/application/controllers/system/issues/Plausichecks.php b/application/controllers/system/issues/Plausichecks.php index daa7716dd..588e35037 100644 --- a/application/controllers/system/issues/Plausichecks.php +++ b/application/controllers/system/issues/Plausichecks.php @@ -4,8 +4,6 @@ if (! defined('BASEPATH')) exit('No direct script access allowed'); class Plausichecks extends Auth_Controller { - private $_uid; - public function __construct() { parent::__construct( @@ -24,16 +22,20 @@ class Plausichecks extends Auth_Controller $this->load->model('system/Fehler_model', 'FehlerModel'); $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); - - $this->_setAuthUID(); // sets property uid } + /* + * Get data for filtering the plausichecks and load the view. + */ public function index() { $filterData = $this->_getFilterData(); $this->load->view('system/issues/plausichecks', $filterData); } + /** + * Initiate plausichecks run. + */ public function runChecks() { $studiensemester_kurzbz = $this->input->get('studiensemester_kurzbz'); @@ -52,7 +54,7 @@ class Plausichecks extends Auth_Controller { // execute the check $issueTexts[$fehler_kurzbz] = array(); - $plausicheckRes = $this->plausicheckproducerlib->producePlausicheck($fehler_kurzbz, $studiensemester_kurzbz, $studiengang_kz); + $plausicheckRes = $this->plausicheckproducerlib->producePlausicheckIssue($fehler_kurzbz, $studiensemester_kurzbz, $studiengang_kz); if (isError($plausicheckRes)) $this->terminateWithJsonError(getError($plausicheckRes)); @@ -98,6 +100,9 @@ class Plausichecks extends Auth_Controller $this->outputJsonSuccess($issueTexts); } + /** + * Get the data needed for filtering for limiting checks. + */ private function _getFilterData() { $this->StudiensemesterModel->addOrder('start', 'DESC'); @@ -126,14 +131,4 @@ class Plausichecks extends Auth_Controller 'fehler' => $fehlerKurzbz ); } - - /** - * Retrieve the UID of the logged user and checks if it is valid - */ - private function _setAuthUID() - { - $this->_uid = getAuthUID(); - - if (!$this->_uid) show_error('User authentification failed'); - } } diff --git a/application/libraries/issues/PlausicheckLib.php b/application/libraries/issues/PlausicheckLib.php index 4df7b26ca..8df3e7523 100644 --- a/application/libraries/issues/PlausicheckLib.php +++ b/application/libraries/issues/PlausicheckLib.php @@ -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) @@ -115,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) @@ -153,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) @@ -201,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) @@ -238,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) @@ -276,7 +285,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) @@ -318,7 +329,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) @@ -358,7 +371,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) @@ -413,7 +428,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) @@ -466,7 +482,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 +529,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 +585,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 +647,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 +675,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 +703,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 +759,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 +799,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 +882,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 +902,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 +930,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 +969,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 +1021,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 +1076,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 +1119,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 +1165,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 +1221,7 @@ class PlausicheckLib /** * Gets Bismeldedate from Studiensemester. + * @param studiensemester_kurzbz string */ private function _getBisdateFromSemester($studiensemester_kurzbz) { diff --git a/application/libraries/issues/PlausicheckProducerLib.php b/application/libraries/issues/PlausicheckProducerLib.php index adca981d1..74adb21dd 100644 --- a/application/libraries/issues/PlausicheckProducerLib.php +++ b/application/libraries/issues/PlausicheckProducerLib.php @@ -52,7 +52,13 @@ class PlausicheckProducerLib if (hasData($studiensemesterRes)) $this->_currentStudiensemester = getData($studiensemesterRes)[0]->studiensemester_kurzbz; } - public function producePlausicheck($fehler_kurzbz, $studiensemester_kurzbz = null, $studiengang_kz = null) + /** + * Executes check for a fehler_kurzbz, returns the result. + * @param $fehler_kurzbz string + * @param $studiensemester_kurzbz string optionally needed for issue production + * @param $studiengang_kz int optionally needed for issue production + */ + public function producePlausicheckIssue($fehler_kurzbz, $studiensemester_kurzbz = null, $studiengang_kz = null) { $libName = $this->_fehlerLibMappings[$fehler_kurzbz]; @@ -85,6 +91,9 @@ class PlausicheckProducerLib return $this->_ci->{$lowercaseLibName}->{self::EXECUTE_PLAUSI_CHECK_METHOD_NAME}($paramsForCheck); } + /** + * Gets all fehler_kurzbz for fehler which need to be checked. + */ public function getFehlerKurzbz() { return array_keys($this->_fehlerLibMappings); diff --git a/application/libraries/issues/plausichecks/PlausiChecker.php b/application/libraries/issues/plausichecks/PlausiChecker.php index 3c781cd63..bfa72b5e0 100644 --- a/application/libraries/issues/plausichecks/PlausiChecker.php +++ b/application/libraries/issues/plausichecks/PlausiChecker.php @@ -17,7 +17,7 @@ abstract class PlausiChecker /** * Executes a plausi check. - * @param array $params parameters needed for executing the check + * @param $paramsForChecking array parameters needed for executing the check * @return array with objects which failed the plausi check */ abstract public function executePlausiCheck($paramsForChecking);