Sync Lehrverbände, Studenten, Mitarbeiter

This commit is contained in:
Andreas Österreicher
2006-11-28 16:29:09 +00:00
parent 1de5b19cf4
commit 8df2ca579f
8 changed files with 699 additions and 225 deletions
@@ -0,0 +1,57 @@
<?php
/**
* Synchronisiert die Lehrverbaende von Vilesci DB in PORTAL DB
*
*/
require_once('../../vilesci/config.inc.php');
require_once('../../include/fas/person.class.php');
require_once('../../include/fas/benutzer.class.php');
require_once('../../include/fas/mitarbeiter.class.php');
$conn=pg_connect(CONN_STRING) or die("Connection zur Portal Datenbank fehlgeschlagen");
$conn_vilesci=pg_connect(CONN_STRING_VILESCI) or die("Connection zur Vilesci Datenbank fehlgeschlagen");
$error_log='';
$text = '';
$anzahl_eingefuegt=0;
$anzahl_fehler=0;
// ***********************************
// * VILESCI->PORTAL - Synchronisation
// ***********************************
$qry = "SELECT studiengang_kz, semester, verband, gruppe FROM tbl_student GROUP BY studiengang_kz, semester, verband, gruppe";
if($result = pg_query($conn_vilesci, $qry))
{
$text.="Sync der Lehrverbaende\n\n";
while($row=pg_fetch_object($result))
{
$qry = "INSERT INTO tbl_lehrverband(studiengang_kz, semester, verband, gruppe) VALUES(
$row->studiengang_kz, $row->semester, '$row->verband', '$row->gruppe');";
if(!pg_query($conn, $qry))
{
$error_log.= "Fehler beim einfuegen des Datensatzes: $qry";
$anzahl_fehler++;
}
else
$anzahl_eingefuegt++;
}
}
$text .= "Anzahl eingefuegter Datensaetze: $anzahl_eingefuegt\n";
$text .= "Anzahl der Fehler: $anzahl_fehler\n";
?>
<html>
<head>
<title>Synchro - Vilesci -> Portal - Personen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
echo nl2br($text);
echo nl2br($error_log);
?>
</body>
</html>
@@ -0,0 +1,137 @@
<?php
/**
* Synchronisiert Personendatensaetze von Vilesci DB in PORTAL DB
*
*/
require_once('../../vilesci/config.inc.php');
require_once('../../include/fas/person.class.php');
require_once('../../include/fas/benutzer.class.php');
require_once('../../include/fas/mitarbeiter.class.php');
$conn=pg_connect(CONN_STRING) or die("Connection zur Portal Datenbank fehlgeschlagen");
$conn_vilesci=pg_connect(CONN_STRING_VILESCI) or die("Connection zur Vilesci Datenbank fehlgeschlagen");
$error_log='';
$text = '';
$anzahl_eingefuegt=0;
$anzahl_fehler=0;
// ***********************************
// * VILESCI->PORTAL - Synchronisation
// ***********************************
//Mitarbeiter
$qry = "SELECT * FROM tbl_person JOIN tbl_mitarbeiter USING(uid) WHERE personalnummer<>'OFF'";
if($result = pg_query($conn_vilesci, $qry))
{
$text.="\n Sync Mitarbeiter\n\n";
while($row = pg_fetch_object($result))
{
$error=false;
$mitarbeiter = new mitarbeiter($conn);
if($row->personalnummer!='')
{
$mitarbeiter->sprache='German';
$mitarbeiter->anrede='';
$mitarbeiter->titelpost='';
$mitarbeiter->titelpre=$row->titel;
$mitarbeiter->nachname=$row->nachname;
if(!$len=strpos($row->vornamen,' '))
{
$student->vorname=$row->vornamen;
$mitarbeiter->vornamen='';
}
else
{
$mitarbeiter->vorname=substr($row->vornamen,0,$len);
$mitarbeiter->vornamen=substr($row->vornamen,$len+1,strlen($row->vornamen));
}
$mitarbeiter->gebdatum=$row->gebdatum;
$mitarbeiter->gebort=$row->gebort;
$mitarbeiter->gebzeit=$row->gebzeit;
$mitarbeiter->foto='';
$mitarbeiter->anmerkungen=$row->anmerkungen;
$mitarbeiter->homepage=$row->homepage;
$mitarbeiter->svnr='';
$mitarbeiter->ersatzkennzeichen='';
$mitarbeiter->familienstand='';
$mitarbeiter->anzahlkinder='';
$mitarbeiter->aktiv=($row->aktiv=='t'?true:false);
$mitarbeiter->insertvon='';
$mitarbeiter->insertamum='';
$mitarbeiter->updateamum=$row->updateamum;
$mitarbeiter->updatevon=$row->updatevon;
$mitarbeiter->ext_id='';
$mitarbeiter->uid=$row->uid;
$mitarbeiter->bnaktiv=$row->aktiv;
$mitarbeiter->alias=$row->alias;
$mitarbeiter->ausbildungcode='';
$mitarbeiter->personalnummer=$row->personalnummer;
$mitarbeiter->kurzbz=$row->kurzbz;
$mitarbeiter->lektor=($row->lektor=='t'?true:false);
$mitarbeiter->fixangestellt=($row->fixangestellt=='t'?true:false);
$mitarbeiter->telefonklappe=$row->telefonklappe;
$qry = "SELECT person_id FROM tbl_benutzer WHERE uid='$row->uid'";
if($result1 = pg_query($conn, $qry))
{
if(pg_num_rows($result1)>0) //wenn dieser eintrag schon vorhanden ist
{
if($row1=pg_fetch_object($result1))
{
//Mitarbeiterdaten updaten
$mitarbeiter->new=false;
$mitarbeiter->person_id=$row1->person_id;
}
else
{
$error_log.="Person_id von $row->uid konnte nicht ermittelt werden\n";
$error=true;
}
}
else
{
//Mitarbeiter neu anlegen
$mitarbeiter->new=true;
}
if(!$error)
if(!$mitarbeiter->save())
{
$error_log.=$mitarbeiter->errormsg."\n";
$anzahl_fehler++;
}
else
$anzahl_eingefuegt++;
else
$anzahl_fehler++;
}
else
$error_log .= "$row->nachname ($row->uid) hat keine Personalnummer\n";
}
}
}
else
$error_log .= 'Mitarbeiterdatensaetze konnten nicht geladen werden\n';
$text.="Anzahl aktualisierte Datensaetze: $anzahl_eingefuegt\n";
$text.="Anzahl der Fehler: $anzahl_fehler\n";
?>
<html>
<head>
<title>Synchro - Vilesci -> Portal - Personen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
echo nl2br($text);
echo nl2br($error_log);
?>
</body>
</html>
-115
View File
@@ -1,115 +0,0 @@
<?php
/**
* Synchronisiert Personendatensaetze von Vilesci DB in PORTAL DB
*
*/
include('../../vilesci/config.inc.php');
include('../../include/fas/person.class.php');
include('../../include/fas/benutzer.class.php');
include('../../include/fas/mitarbeiter.class.php');
$conn=pg_connect(CONN_STRING) or die("Connection zur Portal Datenbank fehlgeschlagen");
$conn_vilesci=pg_connect(CONN_STRING_VILESCI) or die("Connection zur Vilesci Datenbank fehlgeschlagen");
$adress='oesi@technikum-wien.at';
//$adress='fas_sync@technikum-wien.at';
$error_log='';
$text = '';
function validate($row)
{
}
/*************************
* VILESCI-PORTAL - Synchronisation
*/
//Mitarbeiter
$qry = "SELECT * FROM tbl_person join tbl_mitarbeiter using(uid) WHERE personalnummer<>'OFF'";
if($result = pg_query($conn_vilesci, $qry))
{
$text.="Mitarbeiter Sync\n----------------\n";
while($row = pg_fetch_object($result))
{
$mitarbeiter = new mitarbeiter($conn);
$qry = "Select count(*) from tbl_benutzer where uid='$row->uid'";
if($result1 = pg_query($conn, $qry))
{
if($row->personalnummer!='')
{
$mitarbeiter->sprache='German';
$mitarbeiter->anrede='';
$mitarbeiter->titelpost='';
$mitarbeiter->titelpre=$row->titel;
$mitarbeiter->nachname=$row->nachname;
if(!$len=strpos($row->vornamen,' '))
$len = strlen($row->vornamen);
$mitarbeiter->vorname=substr($row->vornamen,0,$len);
$mitarbeiter->gebdatum=$row->gebdatum;
$mitarbeiter->gebort=$row->gebort;
$mitarbeiter->gebzeit=$row->gebzeit;
$mitarbeiter->foto='';
$mitarbeiter->anmerkungen=$row->anmerkungen;
$mitarbeiter->homepage=$row->homepage;
$mitarbeiter->svnr='';
$mitarbeiter->ersatzkennzeichen='';
$mitarbeiter->familienstand='';
$mitarbeiter->anzahlkinder='';
$mitarbeiter->aktiv=($row->aktiv=='t'?true:false);
$mitarbeiter->insertvon='SYNC';
$mitarbeiter->updatevon=$row->updatevon;
$mitarbeiter->ext_id='';
$mitarbeiter->uid=$row->uid;
$mitarbeiter->bnaktiv=$row->aktiv;
$mitarbeiter->alias=$row->alias;
$mitarbeiter->ausbildungcode='';
$mitarbeiter->personalnummer=$row->personalnummer;
$mitarbeiter->kurzbz=$row->kurzbz;
$mitarbeiter->lektor=($row->lektor=='t'?true:false);
$mitarbeiter->fixangestellt=($row->fixangestellt=='t'?true:false);
$mitarbeiter->telefonklappe=$row->telefonklappe;
if(pg_fetch_object($result1)->count>0) //Wenn dieser eintrag schon vorhanden ist
{
//Mitarbeiterdaten updaten
$mitarbeiter->new=false;
//Person_id ermitteln
$qry = "Select person_id from tbl_benutzer where uid='$row->uid'";
if($row2=pg_fetch_object(pg_query($conn,$qry)))
$mitarbeiter->person_id=$row2->person_id;
}
else
{
//Mitarbeiter neu anlegen
$mitarbeiter->new=true;
}
if(!$mitarbeiter->save())
$error_log.=$mitarbeiter->errormsg."\n";
}
else
$error_log .= "$row->nachname ($row->uid) hat keine Personalnummer";
}
}
}
else
$error_log .= 'Mitarbeiterdatensaetze konnten nicht geladen werden';
?>
<html>
<head>
<title>Synchro - Vilesci -> Portal - Personen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
echo nl2br($text);
echo nl2br($error_log);
?>
</body>
</html>
@@ -0,0 +1,136 @@
<?php
/**
* Synchronisiert Studentendatensaetze von Vilesci DB in PORTAL DB
*
*/
require_once('../../vilesci/config.inc.php');
require_once('../../include/fas/person.class.php');
require_once('../../include/fas/benutzer.class.php');
require_once('../../include/fas/student.class.php');
$conn=pg_connect(CONN_STRING) or die("Connection zur Portal Datenbank fehlgeschlagen");
$conn_vilesci=pg_connect(CONN_STRING_VILESCI) or die("Connection zur Vilesci Datenbank fehlgeschlagen");
$error_log='';
$text = '';
$anzahl_eingefuegt=0;
$anzahl_fehler=0;
// ***********************************
// * VILESCI->PORTAL - Synchronisation
// ***********************************
//Studenten
$qry = "SELECT * FROM tbl_person JOIN tbl_student USING(uid) WHERE uid NOT LIKE '\_dummy%' AND uid NOT LIKE '\_Dummy%'";
if($result = pg_query($conn_vilesci, $qry))
{
$text.="\n Sync Studenten\n\n";
while($row = pg_fetch_object($result))
{
$error=false;
$student = new student($conn);
$student->sprache='German';
$student->anrede='';
$student->titelpost='';
$student->titelpre=$row->titel;
$student->nachname=$row->nachname;
if(!$len=strpos($row->vornamen,' '))
{
$student->vorname=$row->vornamen;
$student->vornamen='';
}
else
{
$student->vorname=substr($row->vornamen,0,$len);
$student->vornamen=substr($row->vornamen,$len+1,strlen($row->vornamen));
}
$student->gebdatum=$row->gebdatum;
$student->gebort=$row->gebort;
$student->gebzeit=$row->gebzeit;
$student->foto='';
$student->anmerkungen=$row->anmerkungen;
$student->homepage=$row->homepage;
$student->svnr='';
$student->ersatzkennzeichen='';
$student->familienstand='';
$student->anzahlkinder='';
$student->aktiv=($row->aktiv=='t'?true:false);
$student->insertvon='';
$student->insertamum='';
$student->updateamum=$row->updateamum;
$student->updatevon=$row->updatevon;
$student->ext_id='';
$student->uid=$row->uid;
$student->bnaktiv=$row->aktiv;
$student->alias=$row->alias;
$student->matrikelnr=$row->matrikelnr;
$student->prestudent_id='';
$student->studiengang_kz=$row->studiengang_kz;
$student->semester=$row->semester;
$student->verband=$row->verband;
$student->gruppe=$row->gruppe;
$qry = "SELECT person_id FROM tbl_benutzer WHERE uid='$row->uid'";
if($result1 = pg_query($conn, $qry))
{
if(pg_num_rows($result1)>0) //wenn dieser eintrag schon vorhanden ist
{
if($row1=pg_fetch_object($result1))
{
//Mitarbeiterdaten updaten
$student->new=false;
$student->person_id=$row1->person_id;
}
else
{
$error_log.="Person_id von $row->uid konnte nicht ermittelt werden\n";
$error=true;
}
}
else
{
//Mitarbeiter neu anlegen
$student->new=true;
}
if(!$error)
if(!$student->save())
{
$error_log.=$student->errormsg."\n";
$anzahl_fehler++;
}
else
$anzahl_eingefuegt++;
else
$anzahl_fehler++;
}
else
$error_log .= "$row->nachname ($row->uid) hat keine Personalnummer\n";
}
}
else
$error_log .= 'Studentendatensaetze konnten nicht geladen werden\n';
$text.="Anzahl aktualisierte Datensaetze: $anzahl_eingefuegt\n";
$text.="Anzahl der Fehler: $anzahl_fehler\n";
?>
<html>
<head>
<title>Synchro - Vilesci -> Portal - Studenten</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
echo nl2br($text);
echo nl2br($error_log);
?>
</body>
</html>