diff --git a/vilesci/personen/student_vorrueckung.php b/vilesci/personen/student_vorrueckung.php
index 8eb858f30..58ee2053e 100644
--- a/vilesci/personen/student_vorrueckung.php
+++ b/vilesci/personen/student_vorrueckung.php
@@ -65,8 +65,8 @@ echo '
{
$("#t1").tablesorter(
{
- sortList: [[0,0]],
- widgets: ["zebra"],
+ sortList: [[7,0],[0,0],[1,0]],
+ widgets: ["zebra","filter"],
});
});
@@ -212,6 +212,7 @@ if (isset($_POST['vorr']))
$statisticAdded = 0;
$statisticUebersprungen = 0;
$statisticStudienplanKorrektur = 0;
+ $errorMsg = array('Studenten im letzten Ausbildungssemester ohne Diplomandenstatus' => 0);
$stg_help = new studiengang();
if (!$stg_help->load($stg_kz))
@@ -306,13 +307,25 @@ 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')
+ {
+ $errorMsg['Studenten im letzten Ausbildungssemester ohne Diplomandenstatus'] = $errorMsg['Studenten im letzten Ausbildungssemester ohne Diplomandenstatus']+1;
+ continue;
+ }
+
$lvb = new lehrverband();
//Lehrverbandgruppe anlegen, wenn noch nicht vorhanden
@@ -352,6 +365,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 +374,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 +420,23 @@ if (isset($_POST['vorr']))
}
}
echo '';
- echo 'Vorgerückte Personen:'.$statisticAdded.'
';
- echo 'Übersprungene Personen:'.$statisticUebersprungen.'
';
- echo 'Studienplanzuordnung korrigiert:'.$statisticStudienplanKorrektur.'
';
+ if ($statisticAdded > 0)
+ echo 'Vorgerückte Personen: '.$statisticAdded.'
';
+ if ($statisticStudienplanKorrektur > 0)
+ echo 'Studienplanzuordnung korrigiert: '.$statisticStudienplanKorrektur.'
';
+ echo '';
+ echo '';
+ if ($statisticUebersprungen > 0)
+ echo $statisticUebersprungen.' Personen wurden übersprungen, weil schon ein Eintrag im Zielsemester vorhanden ist
';
+ echo '';
+ echo '';
+ foreach($errorMsg AS $text=>$anzahl)
+ {
+ if ($anzahl > 0)
+ {
+ echo $anzahl.' '.$text;
+ }
+ }
echo '';
}