mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-18 15:32:17 +00:00
Stundengrenze für Fixe und Externe Lektoren wird jetzt ueber den OE-Baum verwaltet.
Es können unterschiedliche Grenzen für Abteilungen festgelegt werden. Die Lehrauftragsliste kann jetzt getrennt für einzelen Organisationseinheiten-Bäume erstellt werden
This commit is contained in:
@@ -132,6 +132,8 @@ define('MAIL_LVPLAN','invalid@technikum-wien.at');
|
||||
define('MAIL_IT','invalid@technikum-wien.at');
|
||||
// Support
|
||||
define('MAIL_SUPPORT','invalid@technikum-wien.at');
|
||||
// Lehrgaenge
|
||||
define('MAIL_LG','invalid@technikum-wien.at');
|
||||
|
||||
// Default Anmerkung fuer neue Lehreinheiten
|
||||
// Beispiel: 'Abhaengigkeiten von anderen LV\'s\n\nSpez. Software/Equipment:\n\n'
|
||||
|
||||
@@ -136,26 +136,27 @@ function LehrauftragAufFirma($mitarbeiter_uid)
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return string
|
||||
*/
|
||||
function getStundenproInstitut($mitarbeiter_uid, $studiensemester_kurzbz)
|
||||
function getStundenproInstitut($mitarbeiter_uid, $studiensemester_kurzbz, $oe_arr)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$ret="Der Lektor ist in folgenden Organisationseinheiten zugeteilt:\n";
|
||||
|
||||
//Liste mit den Stunden in den jeweiligen Instituten anzeigen
|
||||
$qry = "SELECT sum(tbl_lehreinheitmitarbeiter.semesterstunden) as summe, tbl_organisationseinheit.bezeichnung
|
||||
$qry = "SELECT sum(tbl_lehreinheitmitarbeiter.semesterstunden) as summe, tbl_studiengang.bezeichnung
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(lehrfach_id=lehrfach.lehrveranstaltung_id)
|
||||
JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE
|
||||
mitarbeiter_uid=".$db->db_add_param($mitarbeiter_uid)." AND
|
||||
studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz)." AND
|
||||
faktor>0 AND
|
||||
stundensatz>0 AND
|
||||
bismelden
|
||||
GROUP BY tbl_organisationseinheit.bezeichnung";
|
||||
bismelden AND
|
||||
tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).")
|
||||
GROUP BY tbl_studiengang.bezeichnung";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
@@ -180,17 +181,19 @@ if(!$error)
|
||||
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach
|
||||
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
|
||||
tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER);
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
if($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$lva = new lehrveranstaltung($row->lehrveranstaltung_id);
|
||||
|
||||
if(!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid') &&
|
||||
!$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid') &&
|
||||
!$rechte->isBerechtigtMultipleOe('lv-plan', $lva->getAllOe(), 'suid') &&
|
||||
!$rechte->isBerechtigtMultipleOe('assistenz', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz) &&
|
||||
!$rechte->isBerechtigtMultipleOe('admin', $lva->getAllOe(), 'suid', $row->fachbereich_kurzbz))
|
||||
$oe_arr = $lva->getAllOe();
|
||||
|
||||
if(!$rechte->isBerechtigtMultipleOe('admin', $oe_arr, 'suid') &&
|
||||
!$rechte->isBerechtigtMultipleOe('assistenz', $oe_arr, 'suid') &&
|
||||
!$rechte->isBerechtigtMultipleOe('lv-plan', $oe_arr, 'suid') &&
|
||||
!$rechte->isBerechtigtMultipleOe('assistenz', $oe_arr, 'suid', $row->fachbereich_kurzbz) &&
|
||||
!$rechte->isBerechtigtMultipleOe('admin', $oe_arr, 'suid', $row->fachbereich_kurzbz))
|
||||
{
|
||||
$error = true;
|
||||
$return = false;
|
||||
@@ -280,14 +283,18 @@ if(!$error)
|
||||
$ma = new mitarbeiter();
|
||||
$ma->load($lem->mitarbeiter_uid);
|
||||
$fixangestellt=$ma->fixangestellt;
|
||||
|
||||
|
||||
$oe_obj = new organisationseinheit();
|
||||
$stunden_oe_kurzbz=null;
|
||||
|
||||
$stg_obj = new studiengang();
|
||||
$stg_obj->load($lva->studiengang_kz);
|
||||
|
||||
//Maximale Stundenanzahl ermitteln
|
||||
if($fixangestellt)
|
||||
$max_stunden = WARN_SEMESTERSTD_FIX;
|
||||
list($stunden_oe_kurzbz, $max_stunden) = $oe_obj->getStundengrenze($stg_obj->oe_kurzbz, true);
|
||||
else
|
||||
{
|
||||
$max_stunden = WARN_SEMESTERSTD_FREI;
|
||||
}
|
||||
list($stunden_oe_kurzbz, $max_stunden) = $oe_obj->getStundengrenze($stg_obj->oe_kurzbz, false);
|
||||
|
||||
//Summe der Stunden ermitteln
|
||||
$le = new lehreinheit();
|
||||
@@ -306,23 +313,31 @@ if(!$error)
|
||||
//Stundenreduzierung immer moeglich
|
||||
if(($lem->semesterstunden>$semesterstunden_alt) || $neue_stunden_eingerechnet)
|
||||
{
|
||||
$oe_obj = new organisationseinheit();
|
||||
$oe_arr = $oe_obj->getChilds($stunden_oe_kurzbz);
|
||||
$qry = "SELECT ";
|
||||
if($alte_stunden_eingerechnet && $neue_stunden_eingerechnet)
|
||||
$qry.=" (sum(semesterstunden)-($semesterstunden_alt)+($lem->semesterstunden)) as summe";
|
||||
$qry.=" (sum(tbl_lehreinheitmitarbeiter.semesterstunden)-($semesterstunden_alt)+($lem->semesterstunden)) as summe";
|
||||
elseif($alte_stunden_eingerechnet && !$neue_stunden_eingerechnet)
|
||||
$qry.=" (sum(semesterstunden)-($semesterstunden_alt)) as summe";
|
||||
$qry.=" (sum(tbl_lehreinheitmitarbeiter.semesterstunden)-($semesterstunden_alt)) as summe";
|
||||
elseif(!$alte_stunden_eingerechnet && $neue_stunden_eingerechnet)
|
||||
$qry.=" (sum(semesterstunden)+($lem->semesterstunden)) as summe";
|
||||
$qry.=" (sum(tbl_lehreinheitmitarbeiter.semesterstunden)+($lem->semesterstunden)) as summe";
|
||||
elseif(!$alte_stunden_eingerechnet && !$neue_stunden_eingerechnet)
|
||||
$qry.=" (sum(semesterstunden)) as summe";
|
||||
$qry.=" (sum(tbl_lehreinheitmitarbeiter.semesterstunden)) as summe";
|
||||
$qry.=" FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE
|
||||
mitarbeiter_uid=".$db->db_add_param($lem->mitarbeiter_uid)." AND
|
||||
studiensemester_kurzbz=".$db->db_add_param($le->studiensemester_kurzbz)." AND
|
||||
faktor>0 AND
|
||||
stundensatz>0 AND
|
||||
bismelden";
|
||||
|
||||
if(count($oe_arr)>0)
|
||||
$qry.=" AND tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).")";
|
||||
|
||||
if($db->db_query($qry))
|
||||
{
|
||||
@@ -337,7 +352,7 @@ if(!$error)
|
||||
//Warnung wenn die Stundenzahl ueberschritten wurde
|
||||
$return = false;
|
||||
$error = true;
|
||||
$errormsg = "ACHTUNG: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden wurde ueberschritten!\n Daten wurden NICHT gespeichert!\n\n";
|
||||
$errormsg = "ACHTUNG: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden ($stunden_oe_kurzbz) wurde ueberschritten!\n Daten wurden NICHT gespeichert!\n\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -345,10 +360,10 @@ if(!$error)
|
||||
$return = true;
|
||||
$error = false;
|
||||
$warnung = true;
|
||||
$errormsg = "Hinweis: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden wurde ueberschritten!\n Daten wurden gespeichert!\n\n";
|
||||
$errormsg = "Hinweis: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden ($stunden_oe_kurzbz) wurde ueberschritten!\n Daten wurden gespeichert!\n\n";
|
||||
}
|
||||
|
||||
$errormsg.=getStundenproInstitut($lem->mitarbeiter_uid, $le->studiensemester_kurzbz);
|
||||
$errormsg.=getStundenproInstitut($lem->mitarbeiter_uid, $le->studiensemester_kurzbz, $oe_arr);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -480,46 +495,62 @@ if(!$error)
|
||||
}
|
||||
|
||||
$maxstunden=9999;
|
||||
|
||||
|
||||
$oe_obj = new organisationseinheit();
|
||||
$stunden_oe_kurzbz=null;
|
||||
|
||||
$stg_obj = new studiengang();
|
||||
$stg_obj->load($lva->studiengang_kz);
|
||||
|
||||
//Maximale Stundenanzahl ermitteln
|
||||
if($fixangestellt)
|
||||
$max_stunden = WARN_SEMESTERSTD_FIX;
|
||||
list($stunden_oe_kurzbz, $max_stunden) = $oe_obj->getStundengrenze($stg_obj->oe_kurzbz, true);
|
||||
else
|
||||
{
|
||||
$max_stunden = WARN_SEMESTERSTD_FREI;
|
||||
}
|
||||
list($stunden_oe_kurzbz, $max_stunden) = $oe_obj->getStundengrenze($stg_obj->oe_kurzbz, false);
|
||||
|
||||
//Bei freien Lektoren muss geprueft werden ob die Stundengrenze erreicht wurde
|
||||
if(!$fixangestellt && !LehrauftragAufFirma($lem->mitarbeiter_uid))
|
||||
{
|
||||
//Summe der Stunden ermitteln
|
||||
$le = new lehreinheit();
|
||||
$le->load($lem->lehreinheit_id);
|
||||
|
||||
$oe_obj = new organisationseinheit();
|
||||
$oe_arr = $oe_obj->getChilds($stunden_oe_kurzbz);
|
||||
|
||||
$qry = "SELECT
|
||||
sum(semesterstunden) as summe
|
||||
sum(tbl_lehreinheitmitarbeiter.semesterstunden) as summe
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE
|
||||
mitarbeiter_uid=".$db->db_add_param($lem->mitarbeiter_uid)." AND
|
||||
studiensemester_kurzbz=".$db->db_add_param($le->studiensemester_kurzbz)." AND
|
||||
faktor>0 AND
|
||||
stundensatz>0 AND
|
||||
bismelden";
|
||||
|
||||
if(count($oe_arr)>0)
|
||||
$qry.=" AND tbl_studiengang.oe_kurzbz in(".$db->db_implode4SQL($oe_arr).")";
|
||||
|
||||
if($result_std = $db->db_query($qry))
|
||||
{
|
||||
if($row_std = $db->db_fetch_object($result_std))
|
||||
{
|
||||
//Grenze ueberschritten
|
||||
if($row_std->summe>=WARN_SEMESTERSTD_FREI)
|
||||
if($row_std->summe>=$max_stunden)
|
||||
{
|
||||
$return = false;
|
||||
$error = true;
|
||||
$errormsg = "ACHTUNG: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden wurde ueberschritten!\n Daten wurden NICHT gespeichert!\n\n";
|
||||
$errormsg.=getStundenproInstitut($lem->mitarbeiter_uid, $le->studiensemester_kurzbz);
|
||||
$errormsg = "ACHTUNG: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden ($stunden_oe_kurzbz) wurde ueberschritten!\n Daten wurden NICHT gespeichert!\n\n";
|
||||
$errormsg.=getStundenproInstitut($lem->mitarbeiter_uid, $le->studiensemester_kurzbz,$oe_arr);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Stunden berechnen die noch maximal unterrichtet werden darf
|
||||
$maxstunden = WARN_SEMESTERSTD_FREI-$row_std->summe;
|
||||
$maxstunden = $max_stunden-$row_std->summe;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,25 @@ if(isset($_GET['stsem']))
|
||||
else
|
||||
$semester_aktuell = $stsem->getaktorNext();
|
||||
|
||||
//UID als Kommandozeilenparameter
|
||||
if(isset($_SERVER['argv']) && isset($_SERVER['argv'][1]) && !strstr($_SERVER['argv'][1],'='))
|
||||
{
|
||||
$oe_kurzbz = $_SERVER['argv'][1];
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isset($_GET['oe_kurzbz']))
|
||||
$oe_kurzbz = $_GET['oe_kurzbz'];
|
||||
else
|
||||
{
|
||||
$stg = new studiengang();
|
||||
$stg->load('0');
|
||||
$oe_kurzbz = $stg->oe_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
$file = 'lehrauftragsliste.xls';
|
||||
$file = tempnam('/tmp','lehrauftragsliste_').'.xls';
|
||||
|
||||
// Creating a workbook
|
||||
echo 'Lehrauftragslisten werden erstellt. Bitte warten!<BR>';
|
||||
@@ -51,6 +69,17 @@ flush();
|
||||
$workbook = new Spreadsheet_Excel_Writer($file);
|
||||
$workbook->setVersion(8);
|
||||
$db = new basis_db();
|
||||
|
||||
$stg = new studiengang();
|
||||
$stg->getStudiengaengeFromOe($oe_kurzbz);
|
||||
$stg_arr=array();
|
||||
if(count($stg->result)>0)
|
||||
{
|
||||
foreach($stg->result as $row)
|
||||
{
|
||||
$stg_arr[] = $row->studiengang_kz;
|
||||
}
|
||||
}
|
||||
//Studiengaenge ermitteln bei denen sich die lektorzuordnung innerhalb der letzten 31 Tage geaendert haben
|
||||
$qry_stg = "SELECT distinct studiengang_kz
|
||||
FROM (
|
||||
@@ -77,13 +106,37 @@ $qry_stg = "SELECT distinct studiengang_kz
|
||||
tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id
|
||||
) as foo
|
||||
";
|
||||
if(count($stg_arr)>0)
|
||||
$qry_stg.=" WHERE studiengang_kz in (".$db->db_implode4SQL($stg_arr).")";
|
||||
|
||||
$liste_gesamt = array();
|
||||
|
||||
$gesamt =& $workbook->addWorksheet('Gesamt');
|
||||
$gesamt->setInputEncoding('utf-8');
|
||||
$gesamtsheet_row=1;
|
||||
|
||||
//Formate Definieren
|
||||
$format_bold =& $workbook->addFormat();
|
||||
$format_bold->setBold();
|
||||
|
||||
$workbook->setCustomColor(10, 255, 186, 179);
|
||||
$format_colored =& $workbook->addFormat();
|
||||
$format_colored->setFgColor(10);
|
||||
|
||||
$format_number_colored =& $workbook->addFormat();
|
||||
$format_number_colored->setNumFormat('0,0.00');
|
||||
//$format_number_colored->setNumFormat('0.00');
|
||||
$format_number_colored->setFgColor(10);
|
||||
|
||||
$format_number =& $workbook->addFormat();
|
||||
$format_number->setNumFormat('0,0.00');
|
||||
|
||||
$format_number_bold =& $workbook->addFormat();
|
||||
$format_number_bold->setNumFormat('0,0.00');
|
||||
//$format_number_bold->setNumFormat('0.00');
|
||||
$format_number_bold->setBold();
|
||||
|
||||
$format_normal = & $workbook->addFormat();
|
||||
if($result_stg = $db->db_query($qry_stg))
|
||||
{
|
||||
while($row_stg = $db->db_fetch_object($result_stg))
|
||||
@@ -96,28 +149,6 @@ if($result_stg = $db->db_query($qry_stg))
|
||||
$worksheet =& $workbook->addWorksheet($studiengang->kuerzel);
|
||||
$worksheet->setInputEncoding('utf-8');
|
||||
//echo "Writing $studiengang->kuerzel ...".microtime()."<br>";
|
||||
//Formate Definieren
|
||||
$format_bold =& $workbook->addFormat();
|
||||
$format_bold->setBold();
|
||||
|
||||
$workbook->setCustomColor(10, 255, 186, 179);
|
||||
$format_colored =& $workbook->addFormat();
|
||||
$format_colored->setFgColor(10);
|
||||
|
||||
$format_number_colored =& $workbook->addFormat();
|
||||
$format_number_colored->setNumFormat('0,0.00');
|
||||
//$format_number_colored->setNumFormat('0.00');
|
||||
$format_number_colored->setFgColor(10);
|
||||
|
||||
$format_number =& $workbook->addFormat();
|
||||
$format_number->setNumFormat('0,0.00');
|
||||
|
||||
$format_number_bold =& $workbook->addFormat();
|
||||
$format_number_bold->setNumFormat('0,0.00');
|
||||
//$format_number_bold->setNumFormat('0.00');
|
||||
$format_number_bold->setBold();
|
||||
|
||||
$format_normal = & $workbook->addFormat();
|
||||
|
||||
$i=0;
|
||||
$gesamtsheet_row++;
|
||||
@@ -449,9 +480,15 @@ if($result_stg = $db->db_query($qry_stg))
|
||||
public.tbl_person JOIN lehre.tbl_projektbetreuer USING (person_id)
|
||||
JOIN lehre.tbl_projektarbeit USING (projektarbeit_id)
|
||||
JOIN lehre.tbl_lehreinheit USING (lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." AND
|
||||
stunden>0
|
||||
stunden>0";
|
||||
|
||||
if(count($stg_arr)>0)
|
||||
$qry.=" AND tbl_lehrveranstaltung.studiengang_kz IN(".$db->db_implode4SQL($stg_arr).")";
|
||||
|
||||
$qry.="
|
||||
GROUP BY
|
||||
studiensemester_kurzbz,person_id,nachname,vorname, titelpre
|
||||
ORDER BY
|
||||
@@ -469,6 +506,8 @@ if($result_stg = $db->db_query($qry_stg))
|
||||
$worksheet->write(2,++$i,"Stunden", $format_bold);
|
||||
$worksheet->write(2,++$i,"Kosten", $format_bold);
|
||||
|
||||
$format = $format_normal;
|
||||
$formatnb = $format_number;
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
$zeile=3;
|
||||
@@ -503,11 +542,15 @@ if($result_stg = $db->db_query($qry_stg))
|
||||
$fileatttype = "application/xls";
|
||||
$fileattname = "lehrauftragsliste_".date('Y_m_d').".xls";
|
||||
|
||||
$mail = new mail(MAIL_GST, 'noreply@'.DOMAIN, $subject, $message);
|
||||
$empfaenger = MAIL_GST;
|
||||
if($oe_kurzbz=='lehrgang')
|
||||
$empfaenger = MAIL_LG;
|
||||
|
||||
$mail = new mail($empfaenger, 'noreply@'.DOMAIN, $subject, $message);
|
||||
$mail->addAttachmentBinary($file, $fileatttype, $fileattname);
|
||||
|
||||
if($mail->send())
|
||||
echo 'Email mit Lehrauftragslisten wurde an '.MAIL_GST.' versandt!';
|
||||
echo 'Email mit Lehrauftragslisten wurde an '.$empfaenger.' versandt!';
|
||||
else
|
||||
echo "Fehler beim Versenden der Lehrauftragsliste";
|
||||
}
|
||||
|
||||
@@ -724,5 +724,42 @@ class organisationseinheit extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ermittelt die Stundenobergrenze fuer Lektoren
|
||||
* Dabei wird im OE Baum nach oben nach Stundengrenzen gesucht und die niedrigste Stundengrenze ermittelt
|
||||
* @param $oe_kurzbz Organisationseinheit
|
||||
* @param $fixangestellt boolean legt fest ob die Grenze
|
||||
* fuer Freie oder Fixangestellte Lektoren ermittelt werden soll
|
||||
* @return array(oe_kurzbz, numeric Anzahl der Stunden)
|
||||
*/
|
||||
public function getStundengrenze($oe_kurzbz, $fixangestellt=true)
|
||||
{
|
||||
if($fixangestellt)
|
||||
$fixfrei='fix';
|
||||
else
|
||||
$fixfrei='frei';
|
||||
|
||||
$qry = "
|
||||
WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz) as
|
||||
(
|
||||
SELECT oe_kurzbz, oe_parent_kurzbz FROM public.tbl_organisationseinheit
|
||||
WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz)."
|
||||
UNION ALL
|
||||
SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM public.tbl_organisationseinheit o, oes
|
||||
WHERE o.oe_kurzbz=oes.oe_parent_kurzbz
|
||||
)
|
||||
SELECT oe_kurzbz, warn_semesterstunden_".$fixfrei." as stunden
|
||||
FROM oes JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
|
||||
ORDER BY warn_semesterstunden_".$fixfrei." asc limit 1";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return array($row->oe_kurzbz, $row->stunden);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -798,4 +798,78 @@ class studiengang extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Studiengaenge in einer Organisationseinheit
|
||||
* @param varchar $oe_kurzbz Organisationseinheit
|
||||
* @param boolean $aktiv Wenn true dann werden nur aktive Studiengaenge geliefert
|
||||
* @return boolean
|
||||
*/
|
||||
public function getStudiengaengeFromOe($oe_kurzbz, $aktiv=true)
|
||||
{
|
||||
$qry ="WITH RECURSIVE oes(oe_kurzbz) as
|
||||
(
|
||||
SELECT oe_kurzbz FROM public.tbl_organisationseinheit WHERE oe_kurzbz=".$this->db_add_param($oe_kurzbz)."
|
||||
UNION
|
||||
SELECT tbl_organisationseinheit.oe_kurzbz FROM public.tbl_organisationseinheit JOIN oes ON(oe_parent_kurzbz=oes.oe_kurzbz)
|
||||
)
|
||||
SELECT * FROM public.tbl_studiengang JOIN oes USING(oe_kurzbz) WHERE oe_kurzbz = oes.oe_kurzbz";
|
||||
|
||||
if($aktiv===true)
|
||||
{
|
||||
$qry.=" AND tbl_studiengang.aktiv";
|
||||
}
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new studiengang();
|
||||
|
||||
$obj->studiengang_kz = $row->studiengang_kz;
|
||||
$obj->kurzbz = $row->kurzbz;
|
||||
$obj->kurzbzlang = $row->kurzbzlang;
|
||||
$obj->bezeichnung = $row->bezeichnung;
|
||||
$obj->english = $row->english;
|
||||
$obj->typ = $row->typ;
|
||||
$obj->farbe = $row->farbe;
|
||||
$obj->email = $row->email;
|
||||
$obj->max_semester = $row->max_semester;
|
||||
$obj->max_verband = $row->max_verband;
|
||||
$obj->max_gruppe = $row->max_gruppe;
|
||||
$obj->erhalter_kz = $row->erhalter_kz;
|
||||
$obj->bescheid = $row->bescheid;
|
||||
$obj->bescheidbgbl1 = $row->bescheidbgbl1;
|
||||
$obj->bescheidbgbl2 = $row->bescheidbgbl2;
|
||||
$obj->bescheidgz = $row->bescheidgz;
|
||||
$obj->bescheidvom = $row->bescheidvom;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->kuerzel = mb_strtoupper($row->typ . $row->kurzbz);
|
||||
$obj->orgform_kurzbz = $row->orgform_kurzbz;
|
||||
$obj->zusatzinfo_html = $row->zusatzinfo_html;
|
||||
$obj->sprache = $row->sprache;
|
||||
$obj->testtool_sprachwahl = $this->db_parse_bool($row->testtool_sprachwahl);
|
||||
$obj->studienplaetze = $row->studienplaetze;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->lgartcode = $row->lgartcode;
|
||||
$obj->telefon = $row->telefon;
|
||||
$obj->titelbescheidvom = $row->titelbescheidvom;
|
||||
$obj->onlinebewerbung = $this->db_parse_bool($row->onlinebewerbung);
|
||||
$obj->moodle = $this->db_parse_bool($row->moodle);
|
||||
$obj->mischform = $this->db_parse_bool($row->mischform);
|
||||
$obj->projektarbeit_note_anzeige = $this->db_parse_bool($row->projektarbeit_note_anzeige);
|
||||
|
||||
$obj->bezeichnung_arr['German'] = $obj->bezeichnung;
|
||||
$obj->bezeichnung_arr['English'] = $obj->english;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Datenbankabfrage aufgetreten.";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+16
-2
@@ -3146,6 +3146,20 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht
|
||||
}
|
||||
}
|
||||
|
||||
// Neue Spalte fuer maximale Stundenanzahl bei OE
|
||||
if(!$result = @$db->db_query("SELECT warn_semesterstunden_frei FROM public.tbl_organisationseinheit LIMIT 1"))
|
||||
{
|
||||
$qry = "
|
||||
ALTER TABLE public.tbl_organisationseinheit ADD COLUMN warn_semesterstunden_frei numeric(8,2);
|
||||
ALTER TABLE public.tbl_organisationseinheit ADD COLUMN warn_semesterstunden_fix numeric(8,2);
|
||||
";
|
||||
|
||||
if(!$db->db_query($qry))
|
||||
echo '<strong>public.tbl_organisationseinheit '.$db->db_last_error().'</strong><br>';
|
||||
else
|
||||
echo ' public.tbl_organisationseinheit: neue Spalte warn_semesterstunden_frei, warn_semesterstunden_fix hinzugefuegt!<br>';
|
||||
}
|
||||
|
||||
echo '<br><br><br>';
|
||||
|
||||
$tabellen=array(
|
||||
@@ -3195,7 +3209,7 @@ $tabellen=array(
|
||||
"campus.tbl_freebusy" => array("freebusy_id","uid","freebusytyp_kurzbz","url","aktiv","bezeichnung","insertamum","insertvon","updateamum","updatevon"),
|
||||
"campus.tbl_freebusytyp" => array("freebusytyp_kurzbz","bezeichnung","beschreibung","url_vorlage"),
|
||||
"campus.tbl_infoscreen" => array("infoscreen_id","bezeichnung","beschreibung","ipadresse"),
|
||||
"campus.tbl_infoscreen_content" => array("infoscreen_content_id","infoscreen_id","content_id","gueltigvon","gueltigbis","insertamum","insertvon","updateamum","updatevon","refreshzeit"),
|
||||
"campus.tbl_infoscreen_content" => array("infoscreen_content_id","infoscreen_id","content_id","gueltigvon","gueltigbis","insertamum","insertvon","updateamum","updatevon","refreshzeit","exklusiv"),
|
||||
"campus.tbl_legesamtnote" => array("student_uid","lehreinheit_id","note","benotungsdatum","updateamum","updatevon","insertamum","insertvon"),
|
||||
"campus.tbl_lehre_tools" => array("lehre_tools_id","bezeichnung","kurzbz","basis_url","logo_dms_id"),
|
||||
"campus.tbl_lehre_tools_organisationseinheit" => array("lehre_tools_id","oe_kurzbz","aktiv"),
|
||||
@@ -3327,7 +3341,7 @@ $tabellen=array(
|
||||
"public.tbl_notiz_dokument" => array("notiz_id","dms_id"),
|
||||
"public.tbl_ort" => array("ort_kurzbz","bezeichnung","planbezeichnung","max_person","lehre","reservieren","aktiv","lageplan","dislozierung","kosten","ausstattung","updateamum","updatevon","insertamum","insertvon","ext_id","stockwerk","standort_id","telefonklappe","content_id","m2","gebteil","oe_kurzbz"),
|
||||
"public.tbl_ortraumtyp" => array("ort_kurzbz","hierarchie","raumtyp_kurzbz"),
|
||||
"public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort"),
|
||||
"public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort","warn_semesterstunden_frei","warn_semesterstunden_fix"),
|
||||
"public.tbl_organisationseinheittyp" => array("organisationseinheittyp_kurzbz", "bezeichnung", "beschreibung"),
|
||||
"public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung","zugangscode", "foto_sperre","matr_nr"),
|
||||
"public.tbl_person_fotostatus" => array("person_fotostatus_id","person_id","fotostatus_kurzbz","datum","insertamum","insertvon","updateamum","updatevon"),
|
||||
|
||||
Reference in New Issue
Block a user