This commit is contained in:
Christian Paminger
2007-10-03 15:29:24 +00:00
parent b260afb222
commit 1f1e7fb265
3 changed files with 515 additions and 0 deletions
+287
View File
@@ -0,0 +1,287 @@
<?php
/* Copyright (C) 2007
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../../vilesci/config.inc.php');
require_once('../sync_config.inc.php');
$conn=pg_connect(CONN_STRING) or die("Connection zur Portal Datenbank fehlgeschlagen");
$conn_fas=pg_connect(CONN_STRING_FAS) or die("Connection zur FAS Datenbank fehlgeschlagen");
//$adress="ruhan@technikum-wien.at";
$error_log='';
$error_log_all="";
$stgart=array();
$fehler=array();
function myaddslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
?>
<html>
<head>
<title>Datenüberprüfung für BIS-Meldung</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
$qry="SELECT * FROM public.tbl_studiensemester";
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
$beginn[$row->studiensemester_kurzbz]=$row->start;
$ende[$row->studiensemester_kurzbz]=$row->ende;
}
}
$qry="SELECT * FROM public.tbl_studiengang";
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
$stgart[$row->studiengang_kz]=$row->typ;
$email[$row->studiengang_kz]=$row->email;
}
}
$qry="SELECT *, tbl_abschlusspruefung.datum AS abdatum FROM public.tbl_student
JOIN public.tbl_benutzer ON(student_uid=uid)
JOIN public.tbl_person USING (person_id)
JOIN public.tbl_prestudent USING (prestudent_id)
JOIN public.tbl_prestudentrolle ON(tbl_prestudent.prestudent_id=tbl_prestudentrolle.prestudent_id)
JOIN public.tbl_adresse ON(tbl_person.person_id=tbl_adresse.person_id)
LEFT JOIN lehre.tbl_abschlusspruefung USING(student_uid)
WHERE heimatadresse IS TRUE
AND (studiensemester_kurzbz='WS2007')
AND (rolle_kurzbz='Student' OR rolle_kurzbz='Incoming' OR rolle_kurzbz='Outgiong'
OR rolle_kurzbz='Praktikant' OR rolle_kurzbz='Diplomand' OR rolle_kurzbz='Absolvent')
ORDER BY tbl_student.studiengang_kz, student_uid, nachname, vorname
";
//
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
if($row->gebdatum<'1920-01-01')
{
$error_log.="Geburtsdatum ('".$row->gebdatum."')";
}
if($row->geschlecht!='m' && $row->geschlecht!='w')
{
if($error_log!='')
{
$error_log.=", Geschlecht ('".$row->gebdatum."')";
}
else
{
$error_log.="Geschlecht ('".$row->gebdatum."')";
}
}
if($row->vorname=='' || $row->vorname==null)
{
if($error_log!='')
{
$error_log.=", Vorname ('".$row->vorname."')";
}
else
{
$error_log.="Vorname ('".$row->vorname."')";
}
}
if($row->nachname=='' || $row->nachname==null)
{
if($error_log!='')
{
$error_log.=", Nachname ('".$row->nachname."')";
}
else
{
$error_log.="Nachname ('".$row->nachname."')";
}
}
if(($row->svnr=='' || $row->svnr==null)&&($row->ersatzkennzeichen=='' || $row->ersatzkennzeichen==null))
{
if($error_log!='')
{
$error_log.=", SVNR ('".$row->svnr."') bzw. Erskz ('".$row->ersatzkennzeichen."')";
}
else
{
$error_log.="SVNR ('".$row->svnr."') bzw. Erskz ('".$row->ersatzkennzeichen."')";
}
}
if($row->staatsbuergerschaft=='' || $row->staatsbuergerschaft==null)
{
if($error_log!='')
{
$error_log.=", Staatsbürgerschaft ('".$row->staatsbuergerschaft."')";
}
else
{
$error_log.="Staatsbürgerschaft ('".$row->staatsbuergerschaft."')";
}
}
if($row->plz=='' || $row->plz==null)
{
if($error_log!='')
{
$error_log.=", Heimat-PLZ ('".$row->plz."')";
}
else
{
$error_log.="Heimat-PLZ ('".$row->plz."')";
}
}
if($row->gemeinde=='' || $row->gemeinde==null)
{
if($error_log!='')
{
$error_log.=", Heimat-Gemeinde ('".$row->gemeinde."')";
}
else
{
$error_log.="Heimat-Gemeinde ('".$row->gemeinde."')";
}
}
if($row->strasse=='' || $row->strasse==null)
{
if($error_log!='')
{
$error_log.=", Heimat-Strasse ('".$row->strasse."')";
}
else
{
$error_log.="Heimat-Strasse ('".$row->strasse."')";
}
}
if($row->nation=='' || $row->nation==null)
{
if($error_log!='')
{
$error_log.=", Heimat-Nation ('".$row->nation."')";
}
else
{
$error_log.="Heimat-Nation ('".$row->nation."')";
}
}
if($row->zgv_code=='' || $row->zgv_code==null)
{
if($error_log!='')
{
$error_log.=", ZugangCode ('".$row->zgv_code."')";
}
else
{
$error_log.="ZugangCode ('".$row->zgv_code."')";
}
}
if($row->zgvdatum=='' || $row->zgvdatum==null)
{
if($error_log!='')
{
$error_log.=", ZugangDatum ('".$row->zgvdatum."')";
}
else
{
$error_log.="ZugangDatum ('".$row->zgvdatum."')";
}
}
if($stgart[$row->studiengang_kz]=='m')
{
if($row->zgvmas_code=='' || $row->zgvmas_code==null)
{
if($error_log!='')
{
$error_log.=", ZugangMagStgCode ('".$row->zgvmas_code."')";
}
else
{
$error_log.="ZugangMagStgCode ('".$row->zgvmas_code."')";
}
}
if($row->zgvmadatum=='' || $row->zgvmadatum==null)
{
if($error_log!='')
{
$error_log.=", ZugangMagStgDatum ('".$row->zgvmadatum."')";
}
else
{
$error_log.="ZugangMagStgDatum ('".$row->zgvmadatum."')";
}
}
}
//bei Absolventen das Beendigungsdatum (Sponsion oder Abschlussprüfung) überprüfen
if($row->rolle_kurzbz=='Absolvent')
{
if($row->abdatum=='' || $row->abdatum==null)
{
if($error_log!='')
{
$error_log.=", Datum der Abschlussprüfung ('".$row->abdatum."')";
}
else
{
$error_log.="Datum der Abschlussprüfung ('".$row->abdatum."')";
}
}
if($row->sponsion=='' || $row->sponsion==null)
{
if($error_log!='')
{
$error_log.=", Datum der Sponsion ('".$row->sponsion."')";
}
else
{
$error_log.="Datum der Sponsion ('".$row->sponsion."')";
}
}
}
if($row->zgvdatum=='' || $row->zgvdatum==null)
{
if($error_log!='')
{
$error_log.=", Berufstätigkeitscode ('".$row->zgvdatum."')";
}
else
{
$error_log.="Berufstätigkeitscode ('".$row->zgvdatum."')";
}
}
if($error_log!='')
{
$error_log="Bei Student (UID, Vorname, Nachname) '".$row->student_uid."', '".$row->nachname."', '".$row->vorname."' ($row->rolle_kurzbz) fehlt: ".$error_log."\n";
if(!isset($fehler[$row->studiengang_kz]))
{
$fehler[$row->studiengang_kz]=$error_log;
}
else
{
$fehler[$row->studiengang_kz].=$error_log;
}
$error_log="";
}
}
}
echo "Fehlende BIS-Daten (für Meldung 11.2007): <br>";
echo "(Doppelte Zeilen deuten auf mehrere Heimatadressen hin - bitte Kontakte überprüfen)<br><br>";
foreach ($fehler as $f => $v)
{
echo nl2br("Studiengang: ".$f."(".$email[$f].")\n".$v."\n");
//mail(trim($email[$f]), 'BIS-Daten / Studiengang: '.$f,"Fehlende Daten für die BIS-Meldung:(von ".$_SERVER['HTTP_HOST'].")\n(Doppelte Zeilen deuten auf mehrere Heimatadressen hin - bitte Kontakte überprüfen)\n\nStudiengang: ".$f."(".$email[$f].")\n".$v."\n","From: vilesci@technikum-wien.at");
mail($adress, 'BIS-Daten / Studiengang: '.$f,"\nFehlende Daten für die BIS-Meldung: (von ".$_SERVER['HTTP_HOST'].")\n(Doppelte Zeilen deuten auf mehrere Heimatadressen hin - bitte Kontakte überprüfen)\n\nStudiengang: ".$f."(".$email[$f].")\n".$v."\n","From: vilesci@technikum-wien.at");
}
?>
+144
View File
@@ -0,0 +1,144 @@
<?php
/* Copyright (C) 2007
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
require_once('../../../vilesci/config.inc.php');
require_once('../sync_config.inc.php');
$conn=pg_connect(CONN_STRING) or die("Connection zur Portal Datenbank fehlgeschlagen");
$conn_fas=pg_connect(CONN_STRING_FAS) or die("Connection zur FAS Datenbank fehlgeschlagen");
$error_log='';
$ausgabe1='';
$ausgabe2='';
$ausgabe_all='';
$fehler=0;
$wochendiv=0;
$semester=array(1=>'WS2006', 2=>'SS2007');
$stundensumme=array(array());
function myaddslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
?>
<html>
<head>
<title>BIS-Meldung - Funktionen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
$qry="SELECT * FROM public.tbl_studiensemester";
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
$beginn[$row->studiensemester_kurzbz]=$row->start;
$ende[$row->studiensemester_kurzbz]=$row->ende;
}
}
//echo "mitarbeiter_uid / studiengang_kz / studiensemester_kurzbz / semesterstunden / semester / wochen<br>";
$qry="SELECT DISTINCT ON(mitarbeiter_uid) mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter ;";
//WHERE mitarbeiter_uid='balog'
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
$qry_erg="SELECT lehre.tbl_lehreinheitmitarbeiter.mitarbeiter_uid, lehre.tbl_lehrveranstaltung.studiengang_kz, lehre.tbl_lehreinheit.studiensemester_kurzbz, lehre.tbl_lehreinheitmitarbeiter.semesterstunden, lehre.tbl_lehrveranstaltung.semester, public.tbl_semesterwochen.wochen
FROM lehre.tbl_lehreinheitmitarbeiter join lehre.tbl_lehreinheit USING (lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN public.tbl_semesterwochen USING(studiengang_kz, semester)
WHERE lehre.tbl_lehreinheitmitarbeiter.mitarbeiter_uid='".$row->mitarbeiter_uid."'
AND (lehre.tbl_lehreinheit.studiensemester_kurzbz='".$semester[1]."' OR lehre.tbl_lehreinheit.studiensemester_kurzbz='".$semester[2]."');";
//GROUP BY lehre.tbl_lehreinheitmitarbeiter.mitarbeiter_uid, lehre.tbl_lehrveranstaltung.studiengang_kz, lehre.tbl_lehreinheit.studiensemester_kurzbz";
if($result_erg = pg_query($conn, $qry_erg))
{
if(pg_num_rows($result_erg)>0)
{
while($row_erg = pg_fetch_object($result_erg))
{
//$ausgabe1.= "mitarbeiter_uid: '".$row_erg->mitarbeiter_uid. "' studiengang_kz: '".$row_erg->studiengang_kz."' studiensemester_kurzbz: '". $row_erg->studiensemester_kurzbz."' semesterstunden: '".$row_erg->semesterstunden."' semester: '". $row_erg->semester."' semesterwochen: '". $row_erg->wochen."'\n";
if($row_erg->wochen==null || $row_erg->wochen<2)
{
$wochendiv=15;
}
else
{
$wochendiv=$row_erg->wochen;
}
if(isset($stundensumme[$row_erg->mitarbeiter_uid][$row_erg->studiengang_kz]))
{
$stundensumme[$row_erg->mitarbeiter_uid][$row_erg->studiengang_kz]+=$row_erg->semesterstunden/$wochendiv;
}
else
{
$stundensumme[$row_erg->mitarbeiter_uid][$row_erg->studiengang_kz]=$row_erg->semesterstunden/$wochendiv;
}
//$ausgabe1.='$stundensumme['.$row_erg->mitarbeiter_uid.']['.$row_erg->studiengang_kz.'] '.$stundensumme[$row_erg->mitarbeiter_uid][$row_erg->studiengang_kz][$row_erg->studiensemester_kurzbz]."\n";
}
//schleife über alle stg, in denen stunden vorhanden sind
$qry_stg="SELECT studiengang_kz FROM public.tbl_studiengang WHERE studiengang_kz>1 AND studiengang_kz<999;";
if($result_stg = pg_query($conn, $qry_stg))
{
while($row_stg = pg_fetch_object($result_stg))
{
//echo "stg: ".$row_stg->studiengang_kz."<br>";
if(isset($stundensumme[$row->mitarbeiter_uid][$row_stg->studiengang_kz]))
{
//echo "stg mit inhalt: ".$row_stg->studiengang_kz."<br>";
$qry_vw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".$row->mitarbeiter_uid."'".
" AND beginn<='".$beginn[$semester[1]]."' AND (ende::varchar is null OR ende>='".$ende[$semester[2]]."');";
if($result_vw = pg_query($conn, $qry_vw))
{
if(pg_num_rows($result_vw)>=1)
{
while($row_vw = pg_fetch_object($result_vw))
{
$qry_ins='';
//$ausgabe2="Stundensumme in qry: ".$stundensumme[$row_erg->mitarbeiter_uid][$row_stg->studiengang_kz]."\n";
$qry_ins="INSERT INTO bis.tbl_bisfunktion (bisverwendung_id, studiengang_kz, sws, updateamum, updatevon, insertvon, insertamum, ext_id)
VALUES (".myaddslashes($row_vw->bisverwendung_id).", ".myaddslashes($row_stg->studiengang_kz).", ".myaddslashes($stundensumme[$row->mitarbeiter_uid][$row_stg->studiengang_kz]).", "."now(), "."'SYNC', "."now(), "."'SYNC', "."NULL".");";
$ausgabe2.= "Verwendung von Mitarbeiter ".$row->mitarbeiter_uid." (ID/Code):".$row_vw->bisverwendung_id." ".$row_vw->verwendung_code."/".$row_vw->ba1code." -- ".$row_vw->beginn."/".$row_vw->ende." (".$beginn[$semester[1]]."/".$ende[$semester[2]].")\n-----".$qry_ins."\n";
}
}
else
{
while($row_vw = pg_fetch_object($result_vw))
{
$error_log.=$ausgabe2."#####Verwendung(ID/Code):".$row_vw->bisverwendung_id." ".$row_vw->verwendung_code."/".$row_vw->ba1code." -- ".$row_vw->beginn."/".$row_vw->ende." (".$beginn[$semester[1]]."/".$ende[$semester[2]].")\n";
}
}
}
}
}
}
}
}
$ausgabe_all.=$ausgabe1." ".$ausgabe2;
$ausgabe1='';
$ausgabe2='';
}
}
//echo nl2br("Fehler: ".$fehler."\n".$error_log);
//echo nl2br("\n***********************************\nLog: \n".$ausgabe);
echo nl2br("Log:\n".$ausgabe_all);
echo nl2br("Fehler:\n".$error_log);
//mail($adress, 'Fehler BIS-Funktionen von '.$_SERVER['HTTP_HOST'], "Fehler: ".$fehler."\n".$error_log,"From: vilesci@technikum-wien.at");
//mail($adress, 'BIS-Funktionen von '.$_SERVER['HTTP_HOST'], $ausgabe,"From: vilesci@technikum-wien.at");
?>
+84
View File
@@ -0,0 +1,84 @@
<?php
/* Copyright (C) 2007 Technikum-Wien
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
//*
//* Überprüfung der Verwendungsdatensätze im FASonline
//*
//*
require_once('../../../vilesci/config.inc.php');
require_once('../sync_config.inc.php');
$conn=pg_connect(CONN_STRING) or die("Connection zur Portal Datenbank fehlgeschlagen");
$conn_fas=pg_connect(CONN_STRING_FAS) or die("Connection zur FAS Datenbank fehlgeschlagen");
//$adress='ruhan@technikum-wien.at';
//$adress='fas_sync@technikum-wien.at';
$error_log='';
$fehler=0;
$text = '';
$anzahl_quelle=0;
$anzahl_eingefuegt=0;
$anzahl_update=0;
$anzahl_fehler=0;
$ausgabe='';
$error_log_fas='';
$update=false;
function myaddslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
?>
<html>
<head>
<title>BIS-Meldung - Überprüfung von Verwendungen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
$qry="SELECT * FROM public.tbl_studiensemester";
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
$beginn[$row->studiensemester_kurzbz]=$row->start;
$ende[$row->studiensemester_kurzbz]=$row->ende;
}
}
$qryall="SELECT DISTINCT ON(mitarbeiter_uid) * FROM bis.tbl_bisverwendung ORDER by mitarbeiter_uid;";
if($resultall = pg_query($conn, $qryall))
{
while($rowall=pg_fetch_object($resultall))
{
$i=0;
$qry="SELECT * FROM bis.tbl_bisverwendung JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid) JOIN public.tbl_person USING(person_id)
WHERE tbl_benutzer.aktiv=TRUE AND (ende>now() OR ende IS NULL) AND mitarbeiter_uid='".$rowall->mitarbeiter_uid."';";
if($result = pg_query($conn, $qry))
{
if(pg_num_rows($result)>1)
{
while($row=pg_fetch_object($result))
{
if($i==0)
{
echo "<br><u>Mitarbeiter(in): ".$row->nachname." ".$row->vorname." hat ".pg_num_rows($result)." aktuelle Verwendungen:</u><br>";
$i++;
}
echo "Verwendung Code ".$row->verwendung_code.", Beschäftigungscode ".$row->ba1code.", ".$row->ba2code.", mit Ausmaß ".$row->beschausmasscode.", ".$row->beginn." - ".$row->ende."<br>";
}
}
}
}
}
?>