mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Merge branch 'ci' of https://github.com/FH-Complete/FHC-Core into ci
This commit is contained in:
@@ -36,7 +36,7 @@ require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/datum.class.php');
|
||||
require_once('../../../include/lvangebot.class.php');
|
||||
require_once('../../../include/addon.class.php');
|
||||
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
@@ -56,6 +56,11 @@ require_once('../../../include/addon.class.php');
|
||||
else
|
||||
$stdsem=$studiensemester->getaktorNext();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
if(!$rechte->isBerechtigt('admin') && $uid!=$user)
|
||||
die('Sie haben keine Berechtigung für diesen Vorgang');
|
||||
|
||||
$datum = new datum();
|
||||
|
||||
$addon = new addon();
|
||||
|
||||
@@ -92,6 +92,12 @@ define('FAS_PRUEFUNG_BEI_NOTENEINGABE_ANLEGEN',false);
|
||||
//oder Prozentpunkte uebernommen werden true=Punkte, false=Prozentpunkte
|
||||
define('FAS_REIHUNGSTEST_PUNKTE', false);
|
||||
|
||||
// Legt fest ob Messages im FAS angezeigt werden true|false
|
||||
define('FAS_MESSAGES',false);
|
||||
|
||||
// Legt fest ob Aufnahmegruppen bei Reihungstests verwaltet werden true|false
|
||||
define('FAS_REIHUNGSTEST_AUFNAHMEGRUPPEN',false);
|
||||
|
||||
// Anzeigeoptionen für LV-Plan Menü
|
||||
define('CIS_LVPLAN_EXPORT_ANZEIGEN',true);
|
||||
define('CIS_LVPLAN_PERSONENAUSWAHL_ANZEIGEN',true);
|
||||
|
||||
+19
-11
@@ -20,6 +20,7 @@
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
require_once('../config/vilesci.config.inc.php');
|
||||
require_once('../config/global.config.inc.php');
|
||||
require_once('../include/functions.inc.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/studiensemester.class.php');
|
||||
@@ -751,17 +752,24 @@ foreach($addon_obj->result as $addon)
|
||||
accesskey = "&menu-cis-notenliste.accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<!-- ***** CIS ***** -->
|
||||
<menu id="menu-messages" label="&menu-messages.label;" accesskey="&menu-messages.accesskey;">
|
||||
<menupopup id="menu-messages-popup">
|
||||
<menuitem
|
||||
id = "menu-messages-new"
|
||||
key = "menu-messages-new:key"
|
||||
label = "&menu-messages-new.label;"
|
||||
command = "menu-messages-new:command"
|
||||
accesskey = "&menu-messages-new.accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<?php
|
||||
if(!defined('FAS_MESSAGES') || FAS_MESSAGES==true)
|
||||
{
|
||||
?>
|
||||
<!-- ***** Messages ***** -->
|
||||
<menu id="menu-messages" label="&menu-messages.label;" accesskey="&menu-messages.accesskey;">
|
||||
<menupopup id="menu-messages-popup">
|
||||
<menuitem
|
||||
id = "menu-messages-new"
|
||||
key = "menu-messages-new:key"
|
||||
label = "&menu-messages-new.label;"
|
||||
command = "menu-messages-new:command"
|
||||
accesskey = "&menu-messages-new.accesskey;"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<!-- ***** Zusatzmenues inkludieren ***** -->
|
||||
<?php
|
||||
include('../include/'.EXT_FKT_PATH.'/fas_zusatzmenues.inc.php');
|
||||
|
||||
@@ -39,22 +39,24 @@ function loadAufnahmeTermine(prestudent_id)
|
||||
|
||||
// Gruppen DropDown laden
|
||||
var aufnahmegruppemenulist = document.getElementById('aufnahmetermine-menulist-aufnahmegruppe');
|
||||
var url="<?php echo APP_ROOT ?>rdf/gruppen.rdf.php?aufnahmegruppe=true&optional=true";
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = aufnahmegruppemenulist.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
if(aufnahmegruppemenulist)
|
||||
{
|
||||
aufnahmegruppemenulist.database.RemoveDataSource(oldDatasources.getNext());
|
||||
var url="<?php echo APP_ROOT ?>rdf/gruppen.rdf.php?aufnahmegruppe=true&optional=true";
|
||||
|
||||
//Alte DS entfernen
|
||||
var oldDatasources = aufnahmegruppemenulist.database.GetDataSources();
|
||||
while(oldDatasources.hasMoreElements())
|
||||
{
|
||||
aufnahmegruppemenulist.database.RemoveDataSource(oldDatasources.getNext());
|
||||
}
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
aufnahmegruppemenulist.builder.rebuild();
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
var myDatasource = rdfService.GetDataSourceBlocking(url);
|
||||
aufnahmegruppemenulist.database.AddDataSource(myDatasource);
|
||||
aufnahmegruppemenulist.builder.rebuild();
|
||||
}
|
||||
//Refresh damit die entfernten DS auch wirklich entfernt werden
|
||||
aufnahmegruppemenulist.builder.rebuild();
|
||||
|
||||
var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
|
||||
var myDatasource = rdfService.GetDataSourceBlocking(url);
|
||||
aufnahmegruppemenulist.database.AddDataSource(myDatasource);
|
||||
aufnahmegruppemenulist.builder.rebuild();
|
||||
|
||||
// Gesamtpunkte laden und anzeigen
|
||||
|
||||
var url = '<?php echo APP_ROOT ?>rdf/student.rdf.php?prestudent_id='+prestudent_id+'&'+gettimestamp();
|
||||
|
||||
@@ -24,6 +24,7 @@ header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../config/global.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/variable.class.php');
|
||||
require_once('../../include/prestudent.class.php');
|
||||
@@ -65,7 +66,17 @@ echo ']>
|
||||
<menuitem label="Entfernen" oncommand="aufnahmetermineDelete();" id="aufnahmetermine-tree-popup-delete" hidden="false"/>
|
||||
</menupopup>
|
||||
</popupset>
|
||||
<groupbox>
|
||||
<caption label="Studiengang" />
|
||||
<hbox style="padding-top: 10px">
|
||||
<?php
|
||||
if(!defined('FAS_REIHUNGSTEST_AUFNAHMEGRUPPEN') || FAS_REIHUNGSTEST_AUFNAHMEGRUPPEN==true)
|
||||
$aufnahmegruppe_visibility='';
|
||||
else
|
||||
$aufnahmegruppe_visibility='hidden="true"';
|
||||
|
||||
echo '<hbox '.$aufnahmegruppe_visibility.'>';
|
||||
?>
|
||||
<label value="Gruppe" control="aufnahmetermine-menulist-aufnahmegruppe"/>
|
||||
<menulist id="aufnahmetermine-menulist-aufnahmegruppe" disabled="false"
|
||||
datasources="rdf:null"
|
||||
@@ -78,6 +89,7 @@ echo ']>
|
||||
</menupopup>
|
||||
</template>
|
||||
</menulist>
|
||||
</hbox>
|
||||
<label value="&aufnahmetermine-reihungstest.absolviert;" control="aufnahmetermine-checkbox-reihungstestangetreten"/>
|
||||
<checkbox id="aufnahmetermine-checkbox-reihungstestangetreten" checked="true"/>
|
||||
<label value="Gesamtpunkte" control="aufnahmetermine-textbox-gesamtpunkte"/>
|
||||
@@ -85,7 +97,9 @@ echo ']>
|
||||
<button id="aufnahmetermine-button-savegesamtpunkte" disabled="true" label="Speichern" oncommand="AufnahmeTermineSaveGesamtpunkte();"/>
|
||||
<button id="aufnahmetermine-button-calculatetotal" disabled="true" label="Gesamtpunkte berechnen" oncommand="AufnahmeTermineCalculateTotal();"/>
|
||||
</hbox>
|
||||
|
||||
</groupbox>
|
||||
<groupbox>
|
||||
<caption label="Allgemein" />
|
||||
<hbox flex="1">
|
||||
<grid id="aufnahmetermine-grid-detail" style="overflow:auto;margin:4px;" flex="1">
|
||||
<columns >
|
||||
@@ -265,6 +279,7 @@ echo ']>
|
||||
</grid>
|
||||
|
||||
</hbox>
|
||||
</groupbox>
|
||||
<spacer flex="1" />
|
||||
</vbox>
|
||||
</window>
|
||||
|
||||
@@ -27,6 +27,7 @@ header("Pragma: no-cache");
|
||||
header("Content-type: application/vnd.mozilla.xul+xml");
|
||||
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../config/global.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
@@ -414,7 +415,10 @@ else
|
||||
echo '<tab id="student-tab-anwesenheit" label="Anwesenheit" onclick="StudentAnwesenheitIFrameLoad();"/>';
|
||||
?>
|
||||
<tab id="student-tab-aufnahmetermine" label="Aufnahme-Termine" onclick="StudentAufnahmeTermineIFrameLoad();"/>
|
||||
<tab id="student-tab-messages" label="Messages" onclick="StudentMessagesIFrameLoad();"/>
|
||||
<?php
|
||||
if(!defined('FAS_MESSAGES') || FAS_MESSAGES==true)
|
||||
echo '<tab id="student-tab-messages" label="Messages" onclick="StudentMessagesIFrameLoad();"/>';
|
||||
?>
|
||||
|
||||
</tabs>
|
||||
<tabpanels id="student-tabpanels-main" flex="1">
|
||||
@@ -446,7 +450,10 @@ else
|
||||
echo '<iframe id="student-anwesenheit" src="" style="margin-top:10px;" />';
|
||||
?>
|
||||
<iframe id="student-aufnahmetermine" style="margin: 0px;" src="" />
|
||||
<iframe id="student-messages" style="margin: 0px;" src="" />
|
||||
<?php
|
||||
if(!defined('FAS_MESSAGES') || FAS_MESSAGES==false)
|
||||
echo '<iframe id="student-messages" style="margin: 0px;" src="" />';
|
||||
?>
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</vbox>
|
||||
|
||||
@@ -371,14 +371,16 @@ class prestudent extends person
|
||||
$sql_query='SELECT
|
||||
DISTINCT tbl_prestudent.prestudent_id,
|
||||
tbl_person.vorname, tbl_person.nachname, tbl_person.person_id, tbl_person.titelpre,
|
||||
tbl_person.titelpost, tbl_person.gebdatum,tbl_prestudent.studiengang_kz,
|
||||
tbl_reihungstest.*
|
||||
tbl_person.titelpost, tbl_person.gebdatum,
|
||||
tbl_reihungstest.*,
|
||||
tbl_prestudent.studiengang_kz as studiengang_kz
|
||||
FROM
|
||||
public.tbl_prestudent
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
JOIN public.tbl_rt_person USING(person_id)
|
||||
JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id)
|
||||
WHERE tbl_reihungstest.datum='.$this->db_add_param($datum).'
|
||||
AND tbl_rt_person.studienplan_id IN (SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_prestudent.prestudent_id)
|
||||
ORDER BY nachname,vorname';
|
||||
|
||||
if(!$this->db_query($sql_query))
|
||||
|
||||
@@ -2428,6 +2428,10 @@ class wochenplan extends basis_db
|
||||
$end_time=$row->ende;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,224 @@
|
||||
<?php
|
||||
/* Copyright (C) 2017 FHComplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Östereicher <oesi@technikum-wien.at>
|
||||
*/
|
||||
require_once('../config/system.config.inc.php');
|
||||
require_once('../include/basis_db.class.php');
|
||||
require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/studiensemester.class.php');
|
||||
|
||||
// Datenbank Verbindung
|
||||
$db = new basis_db();
|
||||
|
||||
|
||||
$uid = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
if(!$rechte->isBerechtigt('admin'))
|
||||
{
|
||||
exit('Sie haben keine Berechtigung');
|
||||
}
|
||||
|
||||
echo '<html>
|
||||
<head>
|
||||
<title>Studienordnung generieren</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||
<link rel="stylesheet" href="../skin/vilesci.css" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
';
|
||||
if(isset($_POST["start"]) && $_POST["start"] == "start")
|
||||
{
|
||||
$qry = "
|
||||
SELECT
|
||||
upper(typ || kurzbz) as kurzbz, kurzbzlang, studiengang_kz, bezeichnung, english,max_semester, orgform_kurzbz,
|
||||
(
|
||||
SELECT
|
||||
studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudentstatus
|
||||
JOIN public.tbl_prestudent USING(prestudent_id)
|
||||
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE
|
||||
studiengang_kz=tbl_studiengang.studiengang_kz
|
||||
ORDER BY
|
||||
tbl_studiensemester.start asc limit 1
|
||||
) as start_studiensemester,
|
||||
(
|
||||
SELECT
|
||||
studiensemester_kurzbz
|
||||
FROM
|
||||
public.tbl_prestudentstatus
|
||||
JOIN public.tbl_prestudent USING(prestudent_id)
|
||||
JOIN public.tbl_studiensemester USING(studiensemester_kurzbz)
|
||||
WHERE
|
||||
studiengang_kz=tbl_studiengang.studiengang_kz
|
||||
AND tbl_prestudentstatus.status_kurzbz='Student'
|
||||
ORDER BY
|
||||
tbl_studiensemester.start desc limit 1
|
||||
) as letztes_studenten_studiensemester,
|
||||
(
|
||||
SELECT
|
||||
gueltigvon
|
||||
FROM
|
||||
lehre.tbl_studienordnung
|
||||
JOIN public.tbl_studiensemester ON(tbl_studiensemester.studiensemester_kurzbz=tbl_studienordnung.gueltigvon)
|
||||
WHERE
|
||||
tbl_studienordnung.studiengang_kz = tbl_studiengang.studiengang_kz
|
||||
ORDER BY
|
||||
tbl_studiensemester.start asc limit 1
|
||||
) as start_studienordnung
|
||||
FROM
|
||||
public.tbl_studiengang
|
||||
ORDER BY typ, kurzbz
|
||||
";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($row->start_studienordnung == '')
|
||||
{
|
||||
echo $row->bezeichnung.' wird uebersprungen da keine Studienordnung vorhanden ist<br>';
|
||||
continue;
|
||||
}
|
||||
if($row->start_studiensemester == '')
|
||||
{
|
||||
echo $row->bezeichnung.' wird uebersprungen da keine Statuseintraege vorhanden sind<br>';
|
||||
continue;
|
||||
}
|
||||
if($row->start_studiensemester == $row->start_studienordnung)
|
||||
{
|
||||
echo $row->bezeichnung.' wird uebersprungen da bereits eine vollstaendige Studienordnung vorhanden ist<br>';
|
||||
continue;
|
||||
}
|
||||
$stsem = new studiensemester();
|
||||
$stsem_bis = $stsem->getPreviousFrom($row->start_studienordnung);
|
||||
|
||||
$bezeichnung = sprintf("%04s",$row->studiengang_kz).'-'.$row->kurzbz.'-'.$row->start_studiensemester;
|
||||
|
||||
// Studienordnung anlegen
|
||||
|
||||
$qry_sto = "INSERT INTO lehre.tbl_studienordnung(studiengang_kz, version, gueltigvon, gueltigbis,
|
||||
bezeichnung, ects, studiengangbezeichnung, studiengangbezeichnung_englisch, studiengangkurzbzlang,
|
||||
insertamum, insertvon, status_kurzbz) VALUES(".
|
||||
$db->db_add_param($row->studiengang_kz).','.
|
||||
"'01',".
|
||||
$db->db_add_param($row->start_studiensemester).','.
|
||||
$db->db_add_param($stsem_bis).','.
|
||||
$db->db_add_param($bezeichnung).','.
|
||||
$db->db_add_param($row->max_semester*30).','.
|
||||
$db->db_add_param($row->bezeichnung).','.
|
||||
$db->db_add_param($row->english).','.
|
||||
$db->db_add_param($row->kurzbzlang).",now(),'autogenerate','approved');";
|
||||
|
||||
if($db->db_query('BEGIN;'.$qry_sto))
|
||||
{
|
||||
$qry="SELECT currval('lehre.seq_studienordnung_studienordnung_id') as id;";
|
||||
if($db->db_query($qry))
|
||||
{
|
||||
if($rowseq = $db->db_fetch_object())
|
||||
{
|
||||
$studienordnung_id = $rowseq->id;
|
||||
}
|
||||
}
|
||||
|
||||
// Studienplan anlegen
|
||||
$qry_stpl = 'INSERT INTO lehre.tbl_studienplan (studienordnung_id, orgform_kurzbz,version,
|
||||
bezeichnung, regelstudiendauer, sprache, aktiv, semesterwochen, testtool_sprachwahl,
|
||||
pflicht_sws, pflicht_lvs, ects_stpl, insertamum, insertvon) VALUES ('.
|
||||
$db->db_add_param($studienordnung_id, FHC_INTEGER).', '.
|
||||
$db->db_add_param($row->orgform_kurzbz).', '.
|
||||
"'V1', ".
|
||||
$db->db_add_param($bezeichnung.'-'.$row->orgform_kurzbz).', '.
|
||||
$db->db_add_param($row->max_semester, FHC_INTEGER).', '.
|
||||
"'German', true, 15, false, 0, 0,".
|
||||
$db->db_add_param($row->max_semester*30, FHC_INTEGER).', '.
|
||||
"now(),'autogenerate');";
|
||||
|
||||
if($db->db_query($qry_stpl))
|
||||
{
|
||||
$qry="SELECT currval('lehre.seq_studienplan_studienplan_id') as id;";
|
||||
if($db->db_query($qry))
|
||||
{
|
||||
if($row_seq = $db->db_fetch_object())
|
||||
{
|
||||
$studienplan_id = $row_seq->id;
|
||||
}
|
||||
}
|
||||
|
||||
// Gueltigkeiten setzen
|
||||
$qry = "SELECT
|
||||
*
|
||||
FROM
|
||||
public.tbl_studiensemester
|
||||
WHERE
|
||||
start>=(SELECT start FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz=".$db->db_add_param($row->start_studiensemester).")
|
||||
AND ende<=(SELECT ende FROM public.tbl_studiensemester
|
||||
WHERE studiensemester_kurzbz=".$db->db_add_param($stsem_bis).")";
|
||||
|
||||
if($result_stsem = $db->db_query($qry))
|
||||
{
|
||||
while($row_stsem = $db->db_fetch_object($result_stsem))
|
||||
{
|
||||
if(mb_substr($row_stsem->studiensemester_kurzbz,0,2)=='WS')
|
||||
$sem=1;
|
||||
else
|
||||
$sem=2;
|
||||
|
||||
while($sem<=$row->max_semester)
|
||||
{
|
||||
$qry_stplsem = "INSERT INTO lehre.tbl_studienplan_semester (
|
||||
studienplan_id, studiensemester_kurzbz, semester) VALUES (" .
|
||||
$db->db_add_param($studienplan_id) . ', ' .
|
||||
$db->db_add_param($row_stsem->studiensemester_kurzbz) . ', ' .
|
||||
$db->db_add_param($sem) . '); ';
|
||||
|
||||
$db->db_query($qry_stplsem);
|
||||
$sem+=2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo "Generiere ".$bezeichnung." für ".$row->bezeichnung.'<br>';
|
||||
$db->db_query('COMMIT;');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '
|
||||
<h1>Studienordnungen generieren</h1>
|
||||
Dieses Script generiert pro Studiengang eine Studienordnung wenn Statuseinträge vorhanden sind
|
||||
jedoch keine dazupassende Studienordnung. Es werden nur Studienordnungen angelegt VOR bereits bestehenden Studienordnungen.
|
||||
Es werden keine Lücken gefüllt. Wenn noch keine Studienordnung vorhanden ist, wird der Studiengang uebersprungen.<br>
|
||||
Es wird jeweils eine Studienordnung, ein Studienplan und die Gültigkeit gesetzt. Es werde leere Dummy Studienpläne erstellt
|
||||
die keine Lehrveranstaltungen zugeordnet haben.<br>
|
||||
Dieses Script sollte nur einmalig beim Update auf Version 3.2 gestartet werden und nur dann wenn die Studienpläne
|
||||
nicht bereits vollständig eingetragen sind.
|
||||
<form method="POST">
|
||||
<input type="hidden" name="start" value="start">
|
||||
<input type="submit" value="Starten">
|
||||
</form>';
|
||||
}
|
||||
echo '</body>
|
||||
</html>';
|
||||
@@ -26,6 +26,7 @@ require_once('../include/benutzerberechtigung.class.php');
|
||||
require_once('../include/studiengang.class.php');
|
||||
require_once('../include/prestudent.class.php');
|
||||
require_once('../include/student.class.php');
|
||||
require_once('../include/studiensemester.class.php');
|
||||
|
||||
// Datenbank Verbindung
|
||||
$db = new basis_db();
|
||||
@@ -95,7 +96,7 @@ if(isset($_POST["start"]) && $_POST["start"] == "start")
|
||||
SELECT prestudent_id, orgform_kurzbz, studiengang_kz, studiensemester_kurzbz, ausbildungssemester, status_kurzbz
|
||||
FROM public.tbl_prestudentstatus
|
||||
JOIN public.tbl_prestudent USING(prestudent_id)
|
||||
WHERE studienplan_id IS NULL;"))
|
||||
WHERE studienplan_id IS NULL order by 3,4,5"))
|
||||
{
|
||||
$all_count = $db->db_num_rows($result);
|
||||
$entries_not_unique = 0;
|
||||
@@ -146,100 +147,68 @@ if(isset($_POST["start"]) && $_POST["start"] == "start")
|
||||
$ct = $db->db_num_rows($result_search);
|
||||
if($ct < 1)
|
||||
{
|
||||
$entries_not_found++;
|
||||
// Es wurde kein genau passender Studienplan gefunden
|
||||
|
||||
/* load informations about the student */
|
||||
$ps = new prestudent();
|
||||
$ps->load($row->prestudent_id);
|
||||
$stud = new student();
|
||||
$uid = $stud->getUid($row->prestudent_id);
|
||||
if(in_array($row->status_kurzbz,array('Abbrecher','Unterbrecher','Diplomand','Absolvent')))
|
||||
{
|
||||
// Schauen ob fuer das vorherige Studiensemester ein eindeutiger Eintrag vorhanden ist
|
||||
// Da bei diesen Statuseintraegen Studiensemster und Ausbildungssemester meist versetzt sind
|
||||
// (zB Wintersemester 2. Semester)
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem_prev = $stsem_obj->getPreviousFrom($row->studiensemester_kurzbz);
|
||||
|
||||
$qry_analyze1="
|
||||
SELECT
|
||||
studienplan_id
|
||||
FROM
|
||||
lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE lehre.tbl_studienplan.orgform_kurzbz=
|
||||
(
|
||||
SELECT COALESCE
|
||||
(
|
||||
".$db->db_add_param($row->orgform_kurzbz).",
|
||||
$qry_search="
|
||||
SELECT
|
||||
studienplan_id
|
||||
FROM
|
||||
lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE tbl_studienordnung.studiengang_kz=".$db->db_add_param($row->studiengang_kz)."
|
||||
AND lehre.tbl_studienplan.orgform_kurzbz=
|
||||
(
|
||||
SELECT orgform_kurzbz FROM public.tbl_studiengang
|
||||
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 1 FROM lehre.tbl_studienplan_semester
|
||||
WHERE
|
||||
studiengang_kz=(SELECT studiengang_kz FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($row->prestudent_id,FHC_INTEGER).")
|
||||
)
|
||||
)
|
||||
);
|
||||
";
|
||||
$result_analyze1 = $db->db_query($qry_analyze1);
|
||||
if($db->db_num_rows($result_analyze1) == 0)
|
||||
{
|
||||
$orgform = $row->orgform_kurzbz;
|
||||
studienplan_id=tbl_studienplan.studienplan_id
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($stsem_prev)."
|
||||
AND semester=".$db->db_add_param($row->ausbildungssemester,FHC_INTEGER)."
|
||||
LIMIT 1
|
||||
);
|
||||
";
|
||||
|
||||
if($orgform == null)
|
||||
if($result_search_alternativ = $db->db_query($qry_search))
|
||||
{
|
||||
$qry_analyze1_2="
|
||||
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).")";
|
||||
|
||||
$result_analyze1_2 = $db->db_query($qry_analyze1_2);
|
||||
if($row3 = $db->db_fetch_object($result_analyze1_2))
|
||||
$orgform = $row3->orgform_kurzbz;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if($orgform == null)
|
||||
{
|
||||
|
||||
if(!isset($array_no_orgform[$row->prestudent_id]))
|
||||
if($db->db_num_rows($result_search_alternativ)==1)
|
||||
{
|
||||
$info = array("uid" => $uid, "vorname" => $ps->vorname, "nachname" => $ps->nachname, "stg_kz" => $row->studiengang_kz, "count" => 0);
|
||||
$array_no_orgform[$row->prestudent_id] = $info;
|
||||
// Es wurde ein eindeutiger Eintrag gefunden
|
||||
// dieser wird gesetzt
|
||||
$sp = $db->db_fetch_object($result_search_alternativ);
|
||||
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 ++;
|
||||
continue;
|
||||
}
|
||||
$array_no_orgform[$row->prestudent_id]["count"] ++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$key = $orgform;
|
||||
if(!isset($array_orgform[$key]))
|
||||
{
|
||||
$info = array("orgform_kurzbz" => $orgform, "count" => 0);
|
||||
$array_orgform[$key] = $info;
|
||||
}
|
||||
$array_orgform[$key]["count"] ++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$qry_analyze2="
|
||||
SELECT
|
||||
studienplan_id
|
||||
FROM
|
||||
lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE tbl_studienordnung.studiengang_kz=".$db->db_add_param($row->studiengang_kz);
|
||||
|
||||
$result_analyze2 = $db->db_query($qry_analyze2);
|
||||
if($db->db_num_rows($result_analyze2) == 0)
|
||||
{
|
||||
$key = $row->studiengang_kz;
|
||||
if(!isset($array_stg_without_studienplan[$key]))
|
||||
{
|
||||
$info = array("stg_kz" => $row->studiengang_kz, "count" => 0);
|
||||
$array_stg_without_studienplan[$key] = $info;
|
||||
}
|
||||
$array_stg_without_studienplan[$key]["count"] ++;
|
||||
}
|
||||
|
||||
// Pruefen ob der Studiengang in diesem Semester Studienplaene hat
|
||||
// unabhaengig der orgform
|
||||
$qry_analyze3="
|
||||
SELECT
|
||||
studienplan_id
|
||||
@@ -263,22 +232,138 @@ if(isset($_POST["start"]) && $_POST["start"] == "start")
|
||||
);";
|
||||
|
||||
$result_analyze3 = $db->db_query($qry_analyze3);
|
||||
if($db->db_num_rows($result_analyze3) == 0)
|
||||
$cnt = $db->db_num_rows($result_analyze3);
|
||||
if($cnt == 0)
|
||||
{
|
||||
$key = $row->studiengang_kz." ".$row->status_kurzbz;
|
||||
$key = $row->studiengang_kz." ".$row->ausbildungssemester." ".$row->studiensemester_kurzbz." ".$row->status_kurzbz;
|
||||
if(!isset($array_studienplan_semester[$key]))
|
||||
{
|
||||
$info = array("stg_kz" => $row->studiengang_kz, "ausbildungssemester" => $row->ausbildungssemester, "studiensemester_kurzbz" => $row->studiensemester_kurzbz, "status_kurzbz" => $row->status_kurzbz, "count" => 0);
|
||||
$array_studienplan_semester[$key] = $info;
|
||||
}
|
||||
$array_studienplan_semester[$key]["count"] ++;
|
||||
$analyse_gefunden=true;
|
||||
}
|
||||
elseif($cnt == 1)
|
||||
{
|
||||
// Wenn es in dem Studiengang genau einen passenden Studienplan gibt
|
||||
// dieser jedoch die falsche orgform hat, dann wird dieser trotzdem gesetzt
|
||||
// da dies bei alten Studiengaengen nicht immer so genau angelegt wurde
|
||||
$sp = $db->db_fetch_object($result_analyze3);
|
||||
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 ++;
|
||||
continue;
|
||||
}
|
||||
|
||||
$entries_not_found++;
|
||||
$analyse_gefunden=false;
|
||||
|
||||
/* load informations about the student */
|
||||
$ps = new prestudent();
|
||||
$ps->load($row->prestudent_id);
|
||||
$stud = new student();
|
||||
$uid = $stud->getUid($row->prestudent_id);
|
||||
|
||||
// Pruefen ob die Orgform generell existiert in einem Studienplan
|
||||
$qry_analyze1="
|
||||
SELECT
|
||||
studienplan_id
|
||||
FROM
|
||||
lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE 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).")
|
||||
)
|
||||
)
|
||||
)
|
||||
";
|
||||
$result_analyze1 = $db->db_query($qry_analyze1);
|
||||
if($db->db_num_rows($result_analyze1) == 0)
|
||||
{
|
||||
$orgform = $row->orgform_kurzbz;
|
||||
|
||||
if($orgform == null)
|
||||
{
|
||||
$qry_analyze1_2="
|
||||
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).")";
|
||||
|
||||
$result_analyze1_2 = $db->db_query($qry_analyze1_2);
|
||||
if($row3 = $db->db_fetch_object($result_analyze1_2))
|
||||
$orgform = $row3->orgform_kurzbz;
|
||||
}
|
||||
|
||||
if($orgform == null)
|
||||
{
|
||||
if(!isset($array_no_orgform[$row->prestudent_id]))
|
||||
{
|
||||
$info = array("uid" => $uid, "vorname" => $ps->vorname, "nachname" => $ps->nachname, "stg_kz" => $row->studiengang_kz, "count" => 0);
|
||||
$array_no_orgform[$row->prestudent_id] = $info;
|
||||
}
|
||||
$array_no_orgform[$row->prestudent_id]["count"] ++;
|
||||
}
|
||||
else
|
||||
{
|
||||
$key = $orgform;
|
||||
if(!isset($array_orgform[$key]))
|
||||
{
|
||||
$info = array("orgform_kurzbz" => $orgform, "count" => 0);
|
||||
$array_orgform[$key] = $info;
|
||||
}
|
||||
$array_orgform[$key]["count"] ++;
|
||||
}
|
||||
$analyse_gefunden=true;
|
||||
}
|
||||
|
||||
// Pruefen ob der Studiengang Studienplaene hat
|
||||
$qry_analyze2="
|
||||
SELECT
|
||||
studienplan_id
|
||||
FROM
|
||||
lehre.tbl_studienplan
|
||||
JOIN lehre.tbl_studienordnung USING(studienordnung_id)
|
||||
WHERE tbl_studienordnung.studiengang_kz=".$db->db_add_param($row->studiengang_kz);
|
||||
|
||||
$result_analyze2 = $db->db_query($qry_analyze2);
|
||||
if($db->db_num_rows($result_analyze2) == 0)
|
||||
{
|
||||
$key = $row->studiengang_kz;
|
||||
if(!isset($array_stg_without_studienplan[$key]))
|
||||
{
|
||||
$info = array("stg_kz" => $row->studiengang_kz, "count" => 0);
|
||||
$array_stg_without_studienplan[$key] = $info;
|
||||
}
|
||||
$array_stg_without_studienplan[$key]["count"] ++;
|
||||
$analyse_gefunden=true;
|
||||
}
|
||||
|
||||
/*if(!$analyse_gefunden)
|
||||
var_dump($row);
|
||||
*/
|
||||
}
|
||||
else if($ct > 1)
|
||||
{
|
||||
// Es wurden mehrere passende Studienplaene gefunden
|
||||
// Eindeutige zuordnung nicht moeglich
|
||||
|
||||
$ps = new prestudent();
|
||||
$ps->load($row->prestudent_id);
|
||||
$stud = new student();
|
||||
$uid = $stud->getUid($row->prestudent_id);
|
||||
|
||||
if(!isset($array_not_unique[$row->prestudent_id]))
|
||||
{
|
||||
$info = array("prestudent_id" => $row->prestudent_id, "uid" => $uid, "vorname" => $ps->vorname, "nachname" => $ps->nachname, "stg_kz" => $row->studiengang_kz, "count" => 0);
|
||||
@@ -289,6 +374,8 @@ if(isset($_POST["start"]) && $_POST["start"] == "start")
|
||||
}
|
||||
else
|
||||
{
|
||||
// Es wurde ein eindeutiger Eintrag gefunden
|
||||
// dieser wird gesetzt
|
||||
$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).
|
||||
@@ -315,13 +402,8 @@ if(isset($_POST["start"]) && $_POST["start"] == "start")
|
||||
echo $entries_not_unique." sind nicht eindeutig<br>";
|
||||
echo $entries_with_error." konnten aufgrund eines Fehlers nicht eingetragen werden<br>";
|
||||
echo "Es wurde eine quote von <span style='color:$color;'>" . round($quote,2) . "%</span> erreicht<br>";
|
||||
|
||||
|
||||
echo "<h2 style='margin-top:20px;'>Details</h2>";
|
||||
|
||||
|
||||
|
||||
|
||||
$ct = countIntArray($array_no_orgform);
|
||||
if($ct)
|
||||
{
|
||||
@@ -337,9 +419,6 @@ if(isset($_POST["start"]) && $_POST["start"] == "start")
|
||||
echo "</table>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$ct = countIntArray($array_stg_without_studienplan);
|
||||
if($ct)
|
||||
{
|
||||
@@ -368,7 +447,6 @@ if(isset($_POST["start"]) && $_POST["start"] == "start")
|
||||
echo "</table>";
|
||||
}
|
||||
|
||||
|
||||
$ct = countIntArray($array_studienplan_semester);
|
||||
if($ct)
|
||||
{
|
||||
@@ -387,7 +465,6 @@ if(isset($_POST["start"]) && $_POST["start"] == "start")
|
||||
echo "</div>";
|
||||
}
|
||||
|
||||
|
||||
$ct = countIntArray($array_not_unique);
|
||||
if($ct)
|
||||
{
|
||||
@@ -414,6 +491,7 @@ else
|
||||
<p>Es werden nur Einträge mit studienplan_id IS NULL geändert</p>
|
||||
<p>Hinweis:</p>
|
||||
<p style="color:orange;">Vor diesem Skript sollte <a style="color:red;text-decoration: underline;" href="checksystem.php">Checksystem</a> ausgeführt werden!</p>
|
||||
<p style="color:orange;">Wenn die Studienordnungen nicht vollständig eingepflegt sind, kann <a style="color:red;text-decoration: underline;" href="generate_missing_sto.php">dieses Script</a> ausgeführt werden um Dummy Studienpläne aufgrund von Statuseinträgen zu generieren!</p>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
@@ -1474,12 +1474,16 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="feldtitel">Gruppe</td>
|
||||
<td>
|
||||
<select name='aufnahmegruppe'>
|
||||
<option value=''>-- keine Auswahl --</option>
|
||||
<?php
|
||||
<?php
|
||||
if(!defined('FAS_REIHUNGSTEST_AUFNAHMEGRUPPEN') || FAS_REIHUNGSTEST_AUFNAHMEGRUPPEN==true)
|
||||
{
|
||||
echo '
|
||||
<tr>
|
||||
<td class="feldtitel">Gruppe</td>
|
||||
<td>
|
||||
<select name="aufnahmegruppe">
|
||||
<option value="">-- keine Auswahl --</option>
|
||||
';
|
||||
$gruppen_obj = new gruppe();
|
||||
$gruppen_obj->getAufnahmegruppen();
|
||||
foreach($gruppen_obj->result as $row)
|
||||
@@ -1487,14 +1491,18 @@ $studienplaene_list = implode(',', array_keys($studienplaene_arr));
|
||||
if($reihungstest->aufnahmegruppe_kurzbz==$row->gruppe_kurzbz)
|
||||
$selected = 'selected="selected"';
|
||||
else
|
||||
$selected = ''; ?>
|
||||
$selected = '';
|
||||
|
||||
echo '<option value="'.$db->convert_html_chars($row->gruppe_kurzbz).'" '.$selected.'>'.
|
||||
$db->convert_html_chars($row->bezeichnung).
|
||||
'</option>';
|
||||
}
|
||||
echo '
|
||||
</select>
|
||||
</td>
|
||||
</tr>';
|
||||
}
|
||||
|
||||
<option value="<?php echo $row->gruppe_kurzbz ?>" <?php echo $selected ?>><?php echo $row->bezeichnung ?></option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
if($neu)
|
||||
{
|
||||
echo '<tr>';
|
||||
|
||||
Reference in New Issue
Block a user