diff --git a/vilesci/personen/student_vorrueckung.php b/vilesci/personen/student_vorrueckung.php index 8eb858f30..4a49cb436 100644 --- a/vilesci/personen/student_vorrueckung.php +++ b/vilesci/personen/student_vorrueckung.php @@ -212,6 +212,7 @@ if (isset($_POST['vorr'])) $statisticAdded = 0; $statisticUebersprungen = 0; $statisticStudienplanKorrektur = 0; + $errorMsg = array(); $stg_help = new studiengang(); if (!$stg_help->load($stg_kz)) @@ -306,13 +307,40 @@ if (isset($_POST['vorr'])) //auf statusgrund_kurzbz abfragen $statusgrundObj = new statusgrund($row_status->statusgrund_id); $statusgrundId = null; - if ($statusgrundObj->statusgrund_kurzbz === "prewiederholer" && $row_status->ausbildungssemester > 1) + if (isset($statusgrundObj->statusgrund_kurzbz) && $statusgrundObj->statusgrund_kurzbz === "prewiederholer" && $row_status->ausbildungssemester > 1) { $s = $row->semester_stlv - 1; $ausbildungssemester = $row_status->ausbildungssemester - 1; $statusgrundId = $statusgrundObj->getByStatusgrundKurzbz('wiederholer')->statusgrund_id; } + // Wenn VORRUECKUNG_STATUS_MAX_SEMESTER true ist und + // der Student kein Wiederholer ist und + // der aktuelle Status "Student" im Max-Semester des Studiengangs ist, wird übersprungen + if (VORRUECKUNG_STATUS_MAX_SEMESTER + && $statusgrundId == '' + && $row_status->ausbildungssemester == $max[$stg_kz] + && $row_status->status_kurzbz == 'Student') + { + $statisticUebersprungen++; + $errorMsg['Studenten im letzten Ausbildungssemester ohne Diplomandenstatus']++; + continue; + + /* + $sqlInsertDiplomand = "INSERT INTO public.tbl_prestudentstatus (prestudent_id, status_kurzbz, + studiensemester_kurzbz, ausbildungssemester, datum, insertamum, + insertvon, updateamum, updatevon, ext_id, orgform_kurzbz, studienplan_id, statusgrund_id) + VALUES (".$db->db_add_param($row->prestudent_id).", ". + $db->db_add_param($status_kurzbz).", ". + $db->db_add_param($next_ss).", ". + $db->db_add_param($ausbildungssemester).", now(), now(), ". + $db->db_add_param($user).", NULL, NULL, NULL, ". + $db->db_add_param($row_status->orgform_kurzbz).", ". + $db->db_add_param($studienplan_id).", ". + $db->db_add_param($statusgrundId).");"; + */ + } + $lvb = new lehrverband(); //Lehrverbandgruppe anlegen, wenn noch nicht vorhanden @@ -352,6 +380,7 @@ if (isset($_POST['vorr'])) $db->db_add_param($row->gruppe_stlv).",NULL,NULL,now(),". $db->db_add_param($user).",NULL);"; } + //Check, ob schon ein Status für das Zielsemester vorhanden ist $qry_chk = "SELECT * FROM @@ -360,7 +389,8 @@ if (isset($_POST['vorr'])) prestudent_id=".$db->db_add_param($row->prestudent_id)." AND studiensemester_kurzbz=".$db->db_add_param($next_ss).";"; - if ($db->db_num_rows($db->db_query($qry_chk)) < 1) + if ($db->db_num_rows($db->db_query($qry_chk)) < 1 + && $row_status->status_kurzbz != 'Absolvent') { // Pruefen ob der Studienplan fuer das vorgerueckte Semester noch gueltig ist // und GGf einen besseren Studienplan suchen @@ -405,9 +435,15 @@ if (isset($_POST['vorr'])) } } echo ''; - echo 'Vorgerückte Personen:'.$statisticAdded.'
'; - echo 'Übersprungene Personen:'.$statisticUebersprungen.'
'; - echo 'Studienplanzuordnung korrigiert:'.$statisticStudienplanKorrektur.'
'; + echo 'Vorgerückte Personen: '.$statisticAdded.'
'; + echo 'Übersprungene Personen: '.$statisticUebersprungen.'
'; + echo 'Studienplanzuordnung korrigiert: '.$statisticStudienplanKorrektur.'
'; + echo '
'; + echo ''; + foreach($errorMsg AS $key=>$value) + { + echo 'Fehler: '.$key.': '.$value; + } echo ''; }