This commit is contained in:
Christian Paminger
2008-04-10 09:05:53 +00:00
parent f2e42a3573
commit 73e4362ca9
5 changed files with 70 additions and 70 deletions
+2 -2
View File
@@ -40,7 +40,7 @@ function generateUID($stgkzl,$jahr, $stgtyp, $matrikelnummer)
$nr = $nr+500;
elseif($art=='0' && $stgtyp=='m') //Incoming im Masterstudiengang
$nr = $nr+500;
return $stgkzl.$jahr.($art!='0'?$stgtyp:'x').$nr;
}
@@ -51,7 +51,7 @@ function generateUID($stgkzl,$jahr, $stgtyp, $matrikelnummer)
function generateMitarbeiterUID($conn, $vorname, $nachname, $lektor)
{
$bn = new benutzer($conn);
for($nn=8,$vn=0;$nn!=0;$nn--,$vn++)
{
$uid = substr($nachname,0,$nn);
+2 -2
View File
@@ -15,7 +15,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
@@ -75,7 +75,7 @@ $menu=array
(
'name'=>'Personen', 'opener'=>'true', 'hide'=>'true',
'Suche'=>array('name'=>'Suche', 'link'=>'personen/suche.php', 'target'=>'main'),
'Personen zusammenlegen'=>array('name'=>'Personen zusammenlegen', 'link'=>'stammdaten/personen_wartung.php', 'target'=>'main'),
'Zusammenlegen'=>array('name'=>'Zusammenlegen', 'link'=>'stammdaten/personen_wartung.php', 'target'=>'main'),
'Gruppen'=>array
(
'name'=>'Gruppen',
+29 -29
View File
@@ -64,12 +64,12 @@ $stsemprevprev = $stsem->getBeforePrevious();
echo "Generiere Funktionen für $stsemprevprev/$stsemprev<br>";
$qry = "SELECT tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehrveranstaltung.studiengang_kz, sum(tbl_lehreinheitmitarbeiter.semesterstunden) as semstd
FROM lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung
WHERE
$qry = "SELECT tbl_lehreinheitmitarbeiter.mitarbeiter_uid, tbl_lehrveranstaltung.studiengang_kz, sum(tbl_lehreinheitmitarbeiter.semesterstunden) as semstd
FROM lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung
WHERE
tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id AND
tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND
(studiensemester_kurzbz='$stsemprev' OR studiensemester_kurzbz='$stsemprevprev') AND
(studiensemester_kurzbz='$stsemprev' OR studiensemester_kurzbz='$stsemprevprev') AND
bismelden=true AND tbl_lehreinheitmitarbeiter.semesterstunden>0 GROUP BY mitarbeiter_uid, studiengang_kz";
if($result = pg_query($conn, $qry))
@@ -91,42 +91,42 @@ if($result = pg_query($conn, $qry))
$person_error = true;
$verwendung_not_found++;
}
else
else
{
if($row_verw = pg_fetch_object($result_verw))
$verwendung_id = $row_verw->bisverwendung_id;
else
else
{
echo "<br>Fehler beim Holen der Verwendung von $row->mitarbeiter_uid";
$person_error = true;
}
}
if(pg_num_rows($result_verw)>1)
{
echo "<br>Es wurde mehr als eine Verwendung bei $row->mitarbeiter_uid gefunden - es wird die Verwendung $verwendung_id verwendet";
$verwendung_multiple++;
}
}
else
else
{
echo "<br>Fehler beim Ermitteln der Verwendung ".pg_last_error($conn);
$person_error = true;
}
}
if(!$person_error)
{
//SWS berechnen
$swsneu = round($row->semstd/$wochen, 2);
//Funktion fuer diesen Studiengang suchen
$bisfunktion = new bisfunktion($conn);
if($bisfunktion->load($verwendung_id, $row->studiengang_kz))
{
$bisfunktion->new = false;
if($bisfunktion->sws!=$swsneu)
{
echo "<br>$row->mitarbeiter_uid: Funktion bei Studiengang ".$stg_arr[$row->studiengang_kz]." ($row->studiengang_kz) wird von $bisfunktion->sws auf $swsneu geaendert";
@@ -134,7 +134,7 @@ if($result = pg_query($conn, $qry))
$funktion_geaendert++;
}
}
else
else
{
$bisfunktion->insertamum = date('Y-m-d H:i:s');
$bisfunktion->insertvon = $user;
@@ -146,46 +146,46 @@ if($result = pg_query($conn, $qry))
}
$bisfunktion->updateamum = date('Y-m-d H:i:s');
$bisfunktion->updatevon = $user;
if(!$bisfunktion->save())
{
echo "<br>$row->mitarbeiter_uid: Fehler beim Anlegen der Funktion ".$bisfunktion->errormsg;
if($bisfunktion->new)
$funktion_hinzugefuegt--;
else
else
$funktion_geaendert--;
$funktion_error++;
}
}
}
echo '<br><br>';
echo '<b>Check fuer nicht benoetigte Funktionen</b>';
$qry = "SELECT * FROM bis.tbl_bisfunktion JOIN bis.tbl_bisverwendung USING(bisverwendung_id)
$qry = "SELECT * FROM bis.tbl_bisfunktion JOIN bis.tbl_bisverwendung USING(bisverwendung_id)
WHERE (mitarbeiter_uid, studiengang_kz) NOT IN (
SELECT mitarbeiter_uid, studiengang_kz
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
(tbl_lehreinheit.studiensemester_kurzbz='$stsemprev' OR tbl_lehreinheit.studiensemester_kurzbz='$stsemprevprev'))
SELECT mitarbeiter_uid, studiengang_kz
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
(tbl_lehreinheit.studiensemester_kurzbz='$stsemprev' OR tbl_lehreinheit.studiensemester_kurzbz='$stsemprevprev'))
AND (ende>'$lastbismeldung' OR ende is null)
ORDER BY mitarbeiter_uid, studiengang_kz";
if($result = pg_query($conn, $qry))
{
$funktion_ohne_lehrauftrag = pg_num_rows($result);
while($row = pg_fetch_object($result))
{
echo "<br><b>$row->mitarbeiter_uid</b> hat im Studiengang ".$stg_arr[$row->studiengang_kz]." ($row->studiengang_kz) eine Funktion ohne Lehrauftrag";
}
}
echo "Loeschen der Funktionen mit: DELETE FROM bis.tbl_bisfunktion where (studiengang_kz, bisverwendung_id) in (SELECT studiengang_kz, bisverwendung_id FROM bis.tbl_bisfunktion JOIN bis.tbl_bisverwendung USING(bisverwendung_id)
echo "Loeschen der Funktionen mit: DELETE FROM bis.tbl_bisfunktion where (studiengang_kz, bisverwendung_id) in (SELECT studiengang_kz, bisverwendung_id FROM bis.tbl_bisfunktion JOIN bis.tbl_bisverwendung USING(bisverwendung_id)
WHERE (mitarbeiter_uid, studiengang_kz) NOT IN (
SELECT mitarbeiter_uid, studiengang_kz
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
(tbl_lehreinheit.studiensemester_kurzbz='$stsemprevprev' OR tbl_lehreinheit.studiensemester_kurzbz='$stsemprev'))
SELECT mitarbeiter_uid, studiengang_kz
FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter
WHERE tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND
(tbl_lehreinheit.studiensemester_kurzbz='$stsemprevprev' OR tbl_lehreinheit.studiensemester_kurzbz='$stsemprev'))
AND (ende>'2006-11-15' OR ende is null))";
echo '<br><br>';
echo '<h3>Uebersicht</h3>';
+35 -35
View File
@@ -53,7 +53,7 @@ $rechte->getBerechtigungen($user);
<?php
if(!$rechte->isBerechtigt('mitarbeiter') && !$rechte->isBerechtigt('admin'))
die('Sie haben nicht die erforderlichen Rechte zum Importieren der Personaldaten');
$anzahl_personen_gesamt=0;
$anzahl_verwendungen_gesamt=0;
$anzahl_funktionen_gesamt=0;
@@ -64,9 +64,9 @@ $anzahl_funktionen_insert=0;
function getValue($obj)
{
foreach ($obj as $row)
foreach ($obj as $row)
{
return $row->nodeValue;
return $row->nodeValue;
}
}
@@ -76,20 +76,20 @@ if(isset($_POST['submitfile']))
{
$filename = $_FILES['datei']['tmp_name'];
//File oeffnen
$doc = new DOMDocument;
if(!$doc->load($filename))
die('XML konnte nicht geladen werden');
$personen = $doc->getElementsByTagName('Person');
foreach ($personen as $person)
{
//Personalnummer ermitteln
$persnr = $person->getElementsByTagName('PersonalNummer');
$habilitation = $person->getElementsByTagName('Habilitation');
$personalnummer = (int)getValue($persnr);
$anzahl_personen_gesamt++;
//Mitarbeiter mit dieser Personalnummer holen
$qry = "SELECT mitarbeiter_uid FROM public.tbl_mitarbeiter WHERE personalnummer='$personalnummer'";
@@ -99,7 +99,7 @@ if(isset($_POST['submitfile']))
{
$mitarbeiter_uid = $row->mitarbeiter_uid;
}
else
else
{
echo "<br>Mitarbeiter mit der Personalnummer $personalnummer wurde nicht gefunden.";
$anzahl_personen_failed++;
@@ -112,10 +112,10 @@ if(isset($_POST['submitfile']))
echo "<br>Fehlerhafte qry:".$qry;
continue;
}
//Verwendungen durchgehen
$verwendungen = $person->getElementsByTagName('Verwendung');
foreach ($verwendungen as $verwendung)
{
$beschart1 = getValue($verwendung->getElementsByTagName('BeschaeftigungsArt1'));
@@ -123,14 +123,14 @@ if(isset($_POST['submitfile']))
$ausmass = getValue($verwendung->getElementsByTagName('BeschaeftigungsAusmass'));
$verwendungscode = getValue($verwendung->getElementsByTagName('VerwendungsCode'));
$anzahl_verwendungen_gesamt++;
//Verwendung in der Datenbank suchen
$qry = "SELECT bisverwendung_id FROM bis.tbl_bisverwendung
WHERE
ba1code='$beschart1' AND
ba2code='$beschart2' AND
beschausmasscode='$ausmass' AND
verwendung_code='$verwendungscode' AND
$qry = "SELECT bisverwendung_id FROM bis.tbl_bisverwendung
WHERE
ba1code='$beschart1' AND
ba2code='$beschart2' AND
beschausmasscode='$ausmass' AND
verwendung_code='$verwendungscode' AND
mitarbeiter_uid='$mitarbeiter_uid'
ORDER BY beginn DESC LIMIT 1";
if($result = pg_query($conn, $qry))
@@ -139,7 +139,7 @@ if(isset($_POST['submitfile']))
{
$bisverwendung_id = $row->bisverwendung_id;
}
else
else
{
//Wenn eine verwendung vorhanden ist, dann ueberspringen
$qry = "SELECT count(*) as anzahl FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='$mitarbeiter_uid'";
@@ -155,7 +155,7 @@ if(isset($_POST['submitfile']))
}
}
}
//Wenn keine Verwendung vorhanden ist, dann diese anlegen
$bisverwendung = new bisverwendung($conn);
$bisverwendung->ba1code = $beschart1;
@@ -176,30 +176,30 @@ if(isset($_POST['submitfile']))
$bisverwendung->updatevon = 'bisimport';
$bisverwendung->insertamum = date('Y-m-d H:i:s');
$bisverwendung->insertvon = 'bisimport';
if($bisverwendung->save(true))
{
echo "<br>$mitarbeiter_uid: BisVerwendung (ba1code: $beschart1, ba2code: $beschart2, ausmass: $ausmass, verwendungscode: $verwendungscode) wurde neu angelegt";
echo "<br>$mitarbeiter_uid: BisVerwendung (ba1code: $beschart1, ba2code: $beschart2, ausmass: $ausmass, verwendungscode: $verwendungscode) wurde neu angelegt";
$bisverwendung_id = $bisverwendung->bisverwendung_id;
}
else
else
{
echo "<br>$mitarbeiter_uid: BisVerwendung (ba1code: $beschart1, ba2code: $beschart2, ausmass: $ausmass, verwendungscode: $verwendungscode) konnte nicht angelegt werden: $bisverwendung->errormsg";
$anzahl_verwendungen_failed++;
continue;
}
}
}
}
else
else
{
$anzahl_verwendungen_failed++;
echo "<br>Fehlerhafte qry:".$qry;
continue;
}
//Funktionen
$funktionen = $verwendung->getElementsByTagName('Funktion');
foreach ($funktionen as $funktion)
{
$stgkz = (int)getValue($funktion->getElementsByTagName('StgKz'));
@@ -214,21 +214,21 @@ if(isset($_POST['submitfile']))
{
if($row->sws!=$sws)
{
$qry = "UPDATE bis.tbl_bisfunktion
SET sws='$sws', updateamum=now(), updatevon='$user'
$qry = "UPDATE bis.tbl_bisfunktion
SET sws='$sws', updateamum=now(), updatevon='$user'
WHERE bisverwendung_id='$bisverwendung_id' AND studiengang_kz='$stgkz'";
if(pg_query($conn, $qry))
{
echo "<br>$mitarbeiter_uid: SWS der Funktion (id: $bisverwendung_id, stg: $stgkz) wurde von $row->sws auf $sws geaendert";
}
else
else
{
$anzahl_funktionen_failed++;
echo "<br>Fehler bei qry:".$qry;
}
}
}
else
else
{
$qry = "INSERT INTO bis.tbl_bisfunktion(bisverwendung_id, studiengang_kz, sws, updateamum, updatevon, insertamum, insertvon)
VALUES('$bisverwendung_id','$stgkz','$sws',null, null, now(),'$user');";
@@ -237,14 +237,14 @@ if(isset($_POST['submitfile']))
$anzahl_funktionen_insert++;
echo "<br>$mitarbeiter_uid: Neue Funktion wurde angelegt (id: $bisverwendung_id, stg: $stgkz, sws: $sws)";
}
else
else
{
echo "<br>$mitarbeiter_uid: Fehler beim Anlegen der Funktion: $qry";
$anzahl_funktionen_failed++;
}
}
}
else
else
{
$anzahl_funktionen_failed++;
echo "<br>Fehlerhafte qry:".$qry;
@@ -252,7 +252,7 @@ if(isset($_POST['submitfile']))
}
}
}
echo '<br><br> ------------------- ';
echo "<br>Anzahl der Personen im XML-File: $anzahl_personen_gesamt";
echo "<br>Anzahl der Verwendungen im XML-File: $anzahl_verwendungen_gesamt";
@@ -261,10 +261,10 @@ if(isset($_POST['submitfile']))
echo "<br>Anzahl der Verwendungen die nicht gefunden wurden: $anzahl_verwendungen_failed";
echo "<br>Anzahl der Fehler bei Funktionen: $anzahl_funktionen_failed";
echo "<br>Anzahl der eingefuegten Funktionen: $anzahl_funktionen_insert";
}
}
else
else
{
//Formular zum Hochladen der XML Datei
echo " <form method='POST' enctype='multipart/form-data' action='".$_SERVER['PHP_SELF']."'>
+2 -2
View File
@@ -211,10 +211,10 @@ if($result = pg_query($conn, $qry))
{
$error_log.=", Hauptberuf ('".$rowvw->hauptberufcode."')";
}
else
else
{
$error_log="Hauptberuf ('".$rowvw->hauptberufcode."')";
}
}
}
if($rowvw->ba1code==3)
{