diff --git a/system/prestudentstatus_studienplan_id.php b/system/prestudentstatus_studienplan_id.php new file mode 100644 index 000000000..20e8c4db0 --- /dev/null +++ b/system/prestudentstatus_studienplan_id.php @@ -0,0 +1,152 @@ + + */ + + +require_once('../config/system.config.inc.php'); +require_once('../include/basis_db.class.php'); +require_once('../version.php'); +require_once('../include/benutzerberechtigung.class.php'); + +// Datenbank Verbindung +$db = new basis_db(); +echo ' + + Studienplan_id prestudentstatus + + + + + +

Studienplan_id Update

'; + +$uid = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +if(!$rechte->isBerechtigt('admin')) +{ + exit('Sie haben keine Berechtigung'); +} + + +if(isset($_POST["start"]) && $_POST["start"] == "start") +{ + if($result = $db->db_query("SELECT prestudent_id, orgform_kurzbz, studiensemester_kurzbz, ausbildungssemester, status_kurzbz FROM public.tbl_prestudentstatus WHERE studienplan_id IS NULL")) + { + $all_count = $db->db_num_rows($result); + $entries_not_unique = 0; + $entries_not_found = 0; + $entries_with_error = 0; + + echo "Es gibt " . $all_count . " zu bearbeitende Einträge
"; + + while($row = $db->db_fetch_object($result)) + { + $qry_search=" + SELECT + studienplan_id + FROM + lehre.tbl_studienplan + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + WHERE tbl_studienordnung.studiengang_kz= + ( + SELECT studiengang_kz + FROM public.tbl_prestudent + WHERE prestudent_id=".$db->db_add_param($row->prestudent_id,FHC_INTEGER)." + ) + AND lehre.tbl_studienplan.orgform_kurzbz= + ( + SELECT COALESCE + ( + ".$db->db_add_param($row->orgform_kurzbz).", + ( + SELECT orgform_kurzbz FROM public.tbl_studiengang + WHERE + studiengang_kz=(SELECT studiengang_kz FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($row->prestudent_id,FHC_INTEGER).") + ) + ) + ) + AND EXISTS + ( + SELECT * FROM lehre.tbl_studienplan_semester + WHERE + studienplan_id=tbl_studienplan.studienplan_id + AND studiensemester_kurzbz=".$db->db_add_param($row->studiensemester_kurzbz)." + AND semester=".$db->db_add_param($row->ausbildungssemester,FHC_INTEGER)." + ); + "; + + + $result_search = $db->db_query($qry_search); + + $ct = $db->db_num_rows($result_search); + if($ct < 1) + { + $entries_not_found++; + } + else if($ct > 1) + { + $entries_not_unique++; + } + else + { + $sp = $db->db_fetch_object($result_search); + if(!$db->db_query("UPDATE public.tbl_prestudentstatus SET studienplan_id=".$db->db_add_param($sp->studienplan_id, FHC_INTEGER). + " WHERE prestudent_id=".$db->db_add_param($row->prestudent_id, FHC_INTEGER). + " AND status_kurzbz=".$db->db_add_param($row->status_kurzbz). + " AND studiensemester_kurzbz=".$db->db_add_param($row->studiensemester_kurzbz). + " AND ausbildungssemester=".$db->db_add_param($row->ausbildungssemester, FHC_INTEGER) + )) + $entries_with_error ++; + } + } + + $rest_count = $all_count - $entries_not_found - $entries_not_unique - $entries_with_error; + $quote = 100/$all_count*$rest_count; + + echo "Es wurden " . $rest_count . " Einträge eingetragen
"; + echo $entries_not_found." nicht gefunden
"; + echo $entries_not_unique." nicht eindeutig
"; + echo $entries_with_error." konnten aufgrund eines Fehlers nicht eingetragen werden
"; + echo "Es wurde eine quote von " . $quote . " erreicht
"; + } +} +else +{ +?> +

Der folgende Vorgang kann unter Umständen mehrere Minuten dauern!

+

Es wird versucht anhand der orgform_kurzbz, der prestudent_id, der studiensemester_kurzbz und des ausbildungssemesters die studienplan_id des prestudentstatus zu ermitteln

+

Es werden nur Einträge mit studienplan_id IS NULL geändert

+ +
+ + +
+'; +?> diff --git a/vilesci/personen/aliquote_reduktion.php b/vilesci/personen/aliquote_reduktion.php index e065f3119..3492f2c65 100644 --- a/vilesci/personen/aliquote_reduktion.php +++ b/vilesci/personen/aliquote_reduktion.php @@ -276,6 +276,7 @@ { var beginNeeded = needed; + //distribute the remainig applicants to the present ZGVs for(var i=0; i < zgvElems.length; i++) { for(var j in aqr.studenten) @@ -296,8 +297,10 @@ } } + //if we are finished or the ZGVs are full if(needed < 1 || beginNeeded == needed) { + //distribute the rest of the applicants, WITH a ZGV group for(var j in aqr.studenten) { if(!aqr.studenten[j].selected && aqr.studenten[j].bezeichnung) @@ -310,6 +313,7 @@ } } } + //distribute the rest of the applicants, WITHOUT a ZGV group for(var j in aqr.studenten) { if(!aqr.studenten[j].selected && !aqr.studenten[j].bezeichnung) @@ -323,7 +327,7 @@ } } if(needed > 0) - alert("Es werden mehr Studenten benötigt, als es Bewerber gibt!"); + alert("Es werden mehr Bewerber benötigt, als gibt!"); return; } else