diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 5330df225..eaf1dc9d3 100644 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -72,6 +72,7 @@ $menu=array 'Lehrveranstaltung'=>array('name'=>'Lehrveranstaltung', 'link'=>'lehre/lehrveranstaltung_frameset.html', 'target'=>'main'), 'Studienordnung'=>array('name'=>'Studienordnung', 'link'=>'lehre/studienordnung.php', 'target'=>'_blank','permissions'=>array('lehre/studienordnung')), 'StudienplanGueltigkeit'=>array('name'=>'Studienplan Gültigkeit', 'link'=>'lehre/studienplan_gueltigkeit.php', 'target'=>'main','permissions'=>array('lehre/studienordnung')), + 'StudienplanVorruecken'=>array('name'=>'Studienplan vorrücken', 'link'=>'lehre/studienplan_vorrueckung.php', 'target'=>'main','permissions'=>array('lehre/studienordnung')), 'Freifach'=>array ( diff --git a/vilesci/lehre/studienplan_vorrueckung.php b/vilesci/lehre/studienplan_vorrueckung.php new file mode 100644 index 000000000..940ac8d45 --- /dev/null +++ b/vilesci/lehre/studienplan_vorrueckung.php @@ -0,0 +1,240 @@ + + */ + /** + * Script zur Vorrückung von LV-Informationen in das Folgesemester + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/functions.inc.php'); +require_once('../../include/benutzerberechtigung.class.php'); +require_once('../../include/studiensemester.class.php'); +require_once('../../include/organisationseinheit.class.php'); +require_once('../../include/studienplan.class.php'); + +$uid = get_uid(); +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($uid); + +if(!$rechte->isBerechtigt('lehre/studienordnung', null, 's')) +{ + die($rechte->errormsg); +} + +echo ' + + + + + + + + + + + + Studienplan Semester Vorrückung + + +

Studienplan Semester Vorrückung

+

Lädt alle Studienpläne, die für das Zielsemester noch keinen Eintrag im 1. Ausbildungssemester haben.
+Das Vorrücken kopiert die Semesterzuordnungen des Quellsemesters (aller Ausbildungssemester) ins Zielsemester

+'; + +$db = new basis_db(); +$studiensemester_kurzbz_from = (isset($_POST['studiensemester_kurzbz_from'])?$_POST['studiensemester_kurzbz_from']:''); +$studiensemester_kurzbz_to = (isset($_POST['studiensemester_kurzbz_to'])?$_POST['studiensemester_kurzbz_to']:''); +$studienplaene = filter_input(INPUT_POST, 'studienplaene', FILTER_VALIDATE_INT, FILTER_REQUIRE_ARRAY); +$anzahl_kopiert = 0; + +if($studiensemester_kurzbz_from == '') +{ + $stsem = new studiensemester(); + $studiensemester_kurzbz_from = $stsem->getaktorNext(); +} +if($studiensemester_kurzbz_to == '') +{ + $stsem = new studiensemester(); + $studiensemester_kurzbz_to = $stsem->jump($studiensemester_kurzbz_from, 2); +} + +echo '
'; + +echo ' Quelle: '; + +echo ' Ziel:'; +echo ''; +echo '
'; + +if(isset($_POST['vorruecken']) && !empty($studienplaene) && $studiensemester_kurzbz_to != '') +{ + if(!$rechte->isBerechtigt('lehre/studienordnung', null, 'suid')) + { + die($rechte->errormsg); + } + $studienplan = new studienplan(); + foreach ($studienplaene AS $studienplan_id) + { + $ausbildungssemester = $studienplan->loadAusbildungsemesterFromStudiensemester($studienplan_id, $studiensemester_kurzbz_from); + foreach ($ausbildungssemester AS $semester) + { + if ($studienplan->saveSemesterZuordnung(array(array( "studienplan_id" => $studienplan_id, + "studiensemester_kurzbz" => $studiensemester_kurzbz_to, + "ausbildungssemester" => $semester)))) + { + echo '
Eintrag für Studienplan '.$studienplan_id.', '.$studiensemester_kurzbz_to.', '.$semester.'. Semester erstellt'; + } + else + { + echo '
Fehler beim Speichern des Eintrags für Studienplan '.$studienplan_id.', '.$studiensemester_kurzbz_to.', '.$semester.'. Semester'; + $studienplan->errormsg; + } + } + } +} + +if(isset($_POST['show']) && $studiensemester_kurzbz_from != '' && $studiensemester_kurzbz_to != '') +{ + $qry = " SELECT UPPER(tbl_studiengang.typ || tbl_studiengang.kurzbz) AS studiengang, + studienplan.studienplan_id, + studienplan.orgform_kurzbz, + studienplan.bezeichnung, + studienplan.sprache + FROM lehre.tbl_studienplan studienplan + JOIN lehre.tbl_studienplan_semester USING (studienplan_id) + JOIN lehre.tbl_studienordnung USING (studienordnung_id) + JOIN PUBLIC.tbl_studiengang USING (studiengang_kz) + WHERE tbl_studienplan_semester.studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz_from, FHC_STRING)." + AND NOT EXISTS ( + SELECT 1 + FROM lehre.tbl_studienplan_semester + JOIN lehre.tbl_studienplan USING (studienplan_id) + WHERE studienplan_id = studienplan.studienplan_id + AND orgform_kurzbz = studienplan.orgform_kurzbz + AND studiensemester_kurzbz = ".$db->db_add_param($studiensemester_kurzbz_to, FHC_STRING)." + ) + AND tbl_studiengang.typ IN ('b', 'm', 'l') + AND studienplan.onlinebewerbung_studienplan = true + AND tbl_studienplan_semester.semester = 1 + ORDER BY studiengang"; + + if($result = $db->db_query($qry)) + { + echo '
Anzahl: '.$db->db_num_rows($result); + //$pruefling = new pruefling(); + + echo '
'; + echo ''; + echo ''; + echo ''; + echo ' + + + + + + + + + + + '; + while($row = $db->db_fetch_object($result)) + { + echo ' + + + + + + + + '; + } + echo "
+ + + + + StudiengangOrganisationsformBezeichnungSpracheStudienplan ID
'.$row->studiengang.''.$row->orgform_kurzbz.''.$row->bezeichnung.''.$row->sprache.''.$row->studienplan_id.'
"; + if($rechte->isBerechtigt('lehre/studienordnung', null, 'suid')) + { + echo ''; + } + else + { + echo ' Keine Berechtigung zum Vorrücken von Studienplänen'; + } + + echo '
'; + } +} + +echo ' +';