mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-21 00:42:15 +00:00
- Sperre für Freie Lektoren gilt nun nicht mehr, wenn der Lehrauftrag auf eine Firma ausgestellt wird
- Bugfix beim Editieren der Kontaktdaten
This commit is contained in:
@@ -91,6 +91,78 @@ function kollision($lehreinheit_id, $mitarbeiter_uid, $mitarbeiter_uid_old)
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob die Person den Lehrauftrag auf eine Firma ausgestellt bekommt
|
||||
*
|
||||
* @param $mitarbeiter_uid
|
||||
* @return boolean
|
||||
*/
|
||||
function LehrauftragAufFirma($mitarbeiter_uid)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$qry_firma = "
|
||||
SELECT * FROM campus.vw_mitarbeiter LEFT JOIN public.tbl_adresse USING(person_id)
|
||||
WHERE uid='".addslashes($mitarbeiter_uid)."'
|
||||
ORDER BY zustelladresse DESC, firma_id LIMIT 1";
|
||||
if($result_firma = $db->db_query($qry_firma))
|
||||
{
|
||||
if($row_firma = $db->db_fetch_object($result_firma))
|
||||
{
|
||||
if($row_firma->firma_id=='')
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert eine Liste mit den Gesamtstunden eines Lektors in den einzelnen Instituten
|
||||
*
|
||||
* @param $mitarbeiter_uid
|
||||
* @param $studiensemester_kurzbz
|
||||
* @return string
|
||||
*/
|
||||
function getStundenproInstitut($mitarbeiter_uid, $studiensemester_kurzbz)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$ret="Der Lektor ist in folgenden Instituten zugeteilt:\n";
|
||||
|
||||
//Liste mit den Stunden in den jeweiligen Instituten anzeigen
|
||||
$qry = "SELECT sum(semesterstunden) as summe, tbl_fachbereich.bezeichnung
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrfach USING(lehrfach_id)
|
||||
JOIN public.tbl_fachbereich USING(fachbereich_kurzbz)
|
||||
WHERE
|
||||
mitarbeiter_uid='$mitarbeiter_uid' AND
|
||||
studiensemester_kurzbz='$studiensemester_kurzbz' AND
|
||||
faktor>0 AND
|
||||
stundensatz>0 AND
|
||||
bismelden
|
||||
GROUP BY tbl_fachbereich.bezeichnung";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$ret .=$row->summe.' Stunden im Institut '.$row->bezeichnung."\n";
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
|
||||
@@ -228,10 +300,13 @@ if(!$error)
|
||||
{
|
||||
if(!$fixangestellt)
|
||||
{
|
||||
//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";
|
||||
if(!LehrauftragAufFirma($lem->mitarbeiter_uid))
|
||||
{
|
||||
//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";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -241,29 +316,7 @@ if(!$error)
|
||||
$errormsg = "Hinweis: Die maximal erlaubte Semesterstundenanzahl des Lektors von $max_stunden Stunden wurde ueberschritten!\n Daten wurden gespeichert!\n\n";
|
||||
}
|
||||
|
||||
$errormsg.="Der Lektor ist in folgenden Instituten zugeteilt:\n";
|
||||
//Liste mit den Stunden in den jeweiligen Instituten anzeigen
|
||||
$qry = "SELECT sum(semesterstunden) as summe, tbl_fachbereich.bezeichnung
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrfach USING(lehrfach_id)
|
||||
JOIN public.tbl_fachbereich USING(fachbereich_kurzbz)
|
||||
WHERE
|
||||
mitarbeiter_uid='$lem->mitarbeiter_uid' AND
|
||||
studiensemester_kurzbz='$le->studiensemester_kurzbz' AND
|
||||
faktor>0 AND
|
||||
stundensatz>0 AND
|
||||
bismelden
|
||||
GROUP BY tbl_fachbereich.bezeichnung";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$errormsg .=$row->summe.' Stunden im Institut '.$row->bezeichnung."\n";
|
||||
}
|
||||
}
|
||||
$errormsg.=getStundenproInstitut($lem->mitarbeiter_uid, $le->studiensemester_kurzbz);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -363,8 +416,9 @@ if(!$error)
|
||||
$lem->insertvon = $user;
|
||||
$lem->new=true;
|
||||
|
||||
$fixangestellt=false;
|
||||
//Stundensatz aus tbl_mitarbeiter holen
|
||||
$qry = "SELECT stundensatz FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='".addslashes($_POST['mitarbeiter_uid'])."'";
|
||||
$qry = "SELECT stundensatz, fixangestellt FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='".addslashes($_POST['mitarbeiter_uid'])."'";
|
||||
if($db->db_query($qry))
|
||||
{
|
||||
if($row = $db->db_fetch_object($result))
|
||||
@@ -373,6 +427,7 @@ if(!$error)
|
||||
$lem->stundensatz = $row->stundensatz;
|
||||
else
|
||||
$lem->stundensatz = '0';
|
||||
$fixangestellt = ($row->fixangestellt=='t'?true:false);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -387,55 +442,99 @@ if(!$error)
|
||||
$return=false;
|
||||
$errormsg='Fehler bei einer Datenbankabfrage:'.$db->db_last_error();
|
||||
}
|
||||
|
||||
//Faktor und Semesterstunden aus tbl_lehrveranstaltung holen
|
||||
$qry = "SELECT planfaktor, semesterstunden FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE lehreinheit_id='".addslashes($_POST['lehreinheit_id'])."';";
|
||||
if($db->db_query($qry))
|
||||
|
||||
$maxstunden=9999;
|
||||
//Bei freien Lektoren muss geprueft werden ob die Stundengrenze erreicht wurde
|
||||
if(!$fixangestellt && !LehrauftragAufFirma($lem->mitarbeiter_uid))
|
||||
{
|
||||
if($row = $db->db_fetch_object())
|
||||
//Summe der Stunden ermitteln
|
||||
$le = new lehreinheit();
|
||||
$le->load($lem->lehreinheit_id);
|
||||
|
||||
$qry = "SELECT
|
||||
sum(semesterstunden) as summe
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE
|
||||
mitarbeiter_uid='$lem->mitarbeiter_uid' AND
|
||||
studiensemester_kurzbz='$le->studiensemester_kurzbz' AND
|
||||
faktor>0 AND
|
||||
stundensatz>0 AND
|
||||
bismelden";
|
||||
if($result_std = $db->db_query($qry))
|
||||
{
|
||||
if($row->planfaktor!='')
|
||||
$lem->faktor = $row->planfaktor;
|
||||
else
|
||||
$lem->faktor = '1.0';
|
||||
|
||||
if($row->semesterstunden!='')
|
||||
if($row_std = $db->db_fetch_object($result_std))
|
||||
{
|
||||
$lem->semesterstunden = $row->semesterstunden;
|
||||
$lem->planstunden = $row->semesterstunden;
|
||||
}
|
||||
else
|
||||
{
|
||||
$lem->planstunden = '0';
|
||||
$lem->semesterstunden = '0';
|
||||
//Grenze ueberschritten
|
||||
if($row_std->summe>=WARN_SEMESTERSTD_FREI)
|
||||
{
|
||||
$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);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Stunden berechnen die noch maximal unterrichtet werden darf
|
||||
$maxstunden = WARN_SEMESTERSTD_FREI-$row_std->summe;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error = true;
|
||||
$return = false;
|
||||
$errormsg = 'Lehrveranstaltung wurde nicht gefunden';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error = true;
|
||||
$return = false;
|
||||
$errormsg = 'Fehler in einer Datenbankabfrage:'.$db->db_last_error();
|
||||
}
|
||||
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
if($lem->save())
|
||||
//Faktor und Semesterstunden aus tbl_lehrveranstaltung holen
|
||||
$qry = "SELECT planfaktor, semesterstunden FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) WHERE lehreinheit_id='".addslashes($_POST['lehreinheit_id'])."';";
|
||||
if($db->db_query($qry))
|
||||
{
|
||||
$return = true;
|
||||
$error = false;
|
||||
if($row = $db->db_fetch_object())
|
||||
{
|
||||
if($row->planfaktor!='')
|
||||
$lem->faktor = $row->planfaktor;
|
||||
else
|
||||
$lem->faktor = '1.0';
|
||||
|
||||
if($row->semesterstunden!='')
|
||||
{
|
||||
//wenn es sich um einen freien Lektor handelt, und dieser nicht mehr die volle Stundenanzahl unterrichten
|
||||
//darf, dann werden nur die restlichen zur Verfuegung stehenden Stunden zugeteilt.
|
||||
$lem->semesterstunden = ($row->semesterstunden>$maxstunden?$maxstunden:$row->semesterstunden);
|
||||
$lem->planstunden = ($row->semesterstunden>$maxstunden?$maxstunden:$row->semesterstunden);
|
||||
}
|
||||
else
|
||||
{
|
||||
$lem->planstunden = '0';
|
||||
$lem->semesterstunden = '0';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$error = true;
|
||||
$return = false;
|
||||
$errormsg = 'Lehrveranstaltung wurde nicht gefunden';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = $lem->errormsg;
|
||||
$error = true;
|
||||
$return = false;
|
||||
$errormsg = 'Fehler in einer Datenbankabfrage:'.$db->db_last_error();
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
if($lem->save())
|
||||
{
|
||||
$return = true;
|
||||
$error = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = $lem->errormsg;
|
||||
$error = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,16 +21,15 @@
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/person.class.php');
|
||||
require_once('../../include/datum.class.php');
|
||||
require_once('../../include/adresse.class.php');
|
||||
require_once('../../include/nation.class.php');
|
||||
require_once('../../include/firma.class.php');
|
||||
require_once('../../include/kontakt.class.php');
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/person.class.php');
|
||||
require_once('../../include/datum.class.php');
|
||||
require_once('../../include/adresse.class.php');
|
||||
require_once('../../include/nation.class.php');
|
||||
require_once('../../include/firma.class.php');
|
||||
require_once('../../include/kontakt.class.php');
|
||||
|
||||
|
||||
$user=get_uid();
|
||||
@@ -83,6 +82,7 @@ $firma_id = (isset($_POST['firma'])?$_POST['firma']:'');
|
||||
$zustellung = (isset($_POST['zustellung'])?true:false);
|
||||
$anmerkung = (isset($_POST['anmerkung'])?$_POST['anmerkung']:false);
|
||||
$kontakt = (isset($_POST['kontakt'])?$_POST['kontakt']:false);
|
||||
$kontakttyp = (isset($_POST['kontakttyp'])?$_POST['kontakttyp']:false);
|
||||
|
||||
if($person_id=='')
|
||||
die('Person_id muss uebergeben werden');
|
||||
|
||||
@@ -20,20 +20,16 @@
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/person.class.php');
|
||||
require_once('../../include/datum.class.php');
|
||||
require_once('../../include/kontakt.class.php');
|
||||
require_once('../../include/adresse.class.php');
|
||||
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../include/person.class.php');
|
||||
require_once('../../include/datum.class.php');
|
||||
require_once('../../include/kontakt.class.php');
|
||||
require_once('../../include/adresse.class.php');
|
||||
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
$user=get_uid();
|
||||
$datum_obj = new datum();
|
||||
@@ -53,6 +49,7 @@ function disablefields(obj)
|
||||
else
|
||||
val=true;
|
||||
|
||||
document.getElementById('anrede').disabled=val;
|
||||
document.getElementById('titel').disabled=val;
|
||||
document.getElementById('titelpost').disabled=val;
|
||||
document.getElementById('nachname').disabled=val;
|
||||
@@ -115,6 +112,7 @@ $where = '';
|
||||
$error = false;
|
||||
//Parameter
|
||||
$titel = (isset($_POST['titel'])?$_POST['titel']:'');
|
||||
$anrede = (isset($_POST['anrede'])?$_POST['anrede']:'');
|
||||
$titelpost = (isset($_POST['titelpost'])?$_POST['titelpost']:'');
|
||||
$nachname = (isset($_POST['nachname'])?$_POST['nachname']:'');
|
||||
$vorname = (isset($_POST['vorname'])?$_POST['vorname']:'');
|
||||
@@ -147,6 +145,7 @@ if(isset($_POST['save']))
|
||||
if($person_id=='0')
|
||||
{
|
||||
$person->new = true;
|
||||
$person->anrede = $anrede;
|
||||
$person->titelpre = $titel;
|
||||
$person->nachname = $nachname;
|
||||
$person->vorname = $vorname;
|
||||
@@ -339,6 +338,7 @@ if($geburtsdatum!='')
|
||||
<!--Formularfelder-->
|
||||
<table>
|
||||
<?php
|
||||
echo '<tr><td>Anrede</td><td><input type="text" id="anrede" name="anrede" maxlength="16" value="'.$anrede.'" /></td></tr>';
|
||||
echo '<tr><td>Titel(Pre) *</td><td><input type="text" id="titel" name="titel" maxlength="64" value="'.$titel.'" /></td></tr>';
|
||||
echo '<tr><td>Vorname</td><td><input type="text" id="vorname" maxlength="32" name="vorname" value="'.$vorname.'" /></td></tr>';
|
||||
echo '<tr><td>Nachname *</td><td><input type="text" maxlength="64" id="nachname" name="nachname" value="'.$nachname.'" /></td></tr>';
|
||||
|
||||
Reference in New Issue
Block a user