diff --git a/admin/sync/fas/sync_fas_portal_adresse.php b/admin/sync/fas/sync_fas_portal_adresse.php
index ef07c2155..22ff2eb0f 100644
--- a/admin/sync/fas/sync_fas_portal_adresse.php
+++ b/admin/sync/fas/sync_fas_portal_adresse.php
@@ -21,7 +21,7 @@
*/
//*
-//* Synchronisiert Adressendatensaetze von Vilesci DB in PORTAL DB
+//* Synchronisiert Adressendatensaetze von FAS DB in PORTAL DB
//*
//*
@@ -55,7 +55,7 @@ function validate($row)
-Synchro - Vilesci -> Portal - Adresse
+Synchro - FAS -> Portal - Adresse
diff --git a/admin/sync/fas/sync_fas_portal_mitarbeiter.php b/admin/sync/fas/sync_fas_portal_mitarbeiter.php
new file mode 100644
index 000000000..2375278a4
--- /dev/null
+++ b/admin/sync/fas/sync_fas_portal_mitarbeiter.php
@@ -0,0 +1,184 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+/**
+ * Synchronisiert Mitarbeiterdatensaetze von FAS DB in PORTAL DB
+ *
+ */
+require_once('../../../vilesci/config.inc.php');
+require_once('../../../include/person.class.php');
+require_once('../../../include/benutzer.class.php');
+require_once('../../../include/mitarbeiter.class.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='';
+$text = '';
+$anzahl_eingefuegt=0;
+$anzahl_fehler=0;
+
+// ***********************************
+// * VILESCI->PORTAL - Synchronisation
+// ***********************************
+
+//Mitarbeiter
+$qry = "SELECT * FROM person JOIN mitarbeiter ON person_fk=person_pk WHERE uid NOT LIKE '\_dummy%'";
+
+if($result = pg_query($conn_fas, $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=$row->anrede;
+ $mitarbeiter->titelpost=$row->postnomentitel;
+ $mitarbeiter->titelpre=$row->titel;
+ $mitarbeiter->nachname=$row->familienname;
+ $mitarbeiter->vorname=$row->vorname;
+ $mitarbeiter->vornamen=$row->vornamen;
+ $mitarbeiter->gebdatum=$row->gebdat;
+ $mitarbeiter->gebort=$row->gebort;
+
+ $mitarbeiter->geburtsnation=$row->gebnation;
+ $mitarbeiter->foto='';
+ $mitarbeiter->anmerkungen=$row->bemerkung;
+ $mitarbeiter->svnr=$row->svnr;
+ $mitarbeiter->geschlecht=strtolower($row->geschlecht);
+ $mitarbeiter->ersatzkennzeichen=$row->ersatzkennzeichen;
+ $mitarbeiter->familienstand=$row->familienstand;
+ $mitarbeiter->anzahlkinder=$row->anzahlderkinder;
+ $mitarbeiter->aktiv=($row->aktiv=='t'?true:false);
+ $mitarbeiter->insertvon='SYNC';
+ $mitarbeiter->insertamum='';
+ $mitarbeiter->updateamum='';
+ $mitarbeiter->updatevon='SYNC';
+ $mitarbeiter->ext_id=$row->person_pk;
+ $mitarbeiter->ext_id_mitarbeiter=$row->mitarbeiter_pk;
+ $mitarbeiter->kurzbz=$row->kurzbez;
+ $mitarbeiter->uid=$row->uid;
+ $mitarbeiter->ausbildungcode=$row->ausbildung;
+ $mitarbeiter->personalnummer=$row->persnr;
+
+ $mitarbeiter->gebzeit='';
+ $mitarbeiter->ort_kurzbz='';
+ $mitarbeiter->homepage='';
+ $mitarbeiter->alias='';
+ $mitarbeiter->lektor=true;
+ $mitarbeiter->fixangestellt=false;
+ $mitarbeiter->telefonklappe='';
+
+ $qry = "SELECT person_id FROM public.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))
+ {
+ $qry2="SELECT * FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON mitarbeiter_uid=public.tbl_benutzer.uid JOIN public.tbl_person USING (person_id) WHERE mitarbeiter_uid='$row->uid'";
+ if($result2 = pg_query($conn, $qry2))
+ {
+ if(pg_num_rows($result2)>0) //wenn dieser eintrag schon vorhanden ist
+ {
+ if($row2=pg_fetch_object($result2))
+ {
+ //Mitarbeiterdaten updaten
+ $mitarbeiter->new=false;
+ $mitarbeiter->person_id=$row1->person_id;
+
+ $mitarbeiter->gebzeit=$row2->gebzeit;
+ $mitarbeiter->ort_kurzbz=$row2->ort_kurzbz;
+ $mitarbeiter->homepage=$row2->homepage;
+ $mitarbeiter->alias=$row2->alias;
+ $mitarbeiter->lektor=($row2->lektor=='t'?true:false);
+ $mitarbeiter->fixangestellt=($row2->fixangestellt=='t'?true:false);
+ $mitarbeiter->telefonklappe=$row2->telefonklappe;
+ }
+ }
+ else
+ {
+ //Mitarbeiter neu anlegen
+ $mitarbeiter->new=true;
+ }
+ }
+ else
+ {
+ $error_log.="Mitarbeiter von $row->uid konnte nicht gefunden werden\n";
+ $error=true;
+ }
+ }
+ 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 .= "Fehler beim ermitteln der UID\n";
+ //}
+ //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";
+?>
+
+
+
+Synchro - Vilesci -> Portal - Mitarbeiter
+
+
+
+
+
+
\ No newline at end of file
diff --git a/admin/sync/fas/sync_fas_portal_person.php b/admin/sync/fas/sync_fas_portal_person.php
index 4995f8165..cc8c63910 100644
--- a/admin/sync/fas/sync_fas_portal_person.php
+++ b/admin/sync/fas/sync_fas_portal_person.php
@@ -121,7 +121,6 @@ if($result = pg_query($conn_fas, $qry))
//update
$person->person_id=$rowu->person_id;
$person->new=false;
- //echo nl2br("update1 von ".$row->uid.", ".$row->familienname."\n");
}
else
{
@@ -141,7 +140,6 @@ if($result = pg_query($conn_fas, $qry))
//update
$person->person_id=$row1->person_portal;
$person->new=false;
- //echo nl2br("update2 von ".$row->uid.", ".$row->familienname."\n");
}
else
{
diff --git a/admin/sync/fas/sync_fas_portal_reihungstest.php b/admin/sync/fas/sync_fas_portal_reihungstest.php
new file mode 100644
index 000000000..441a728c9
--- /dev/null
+++ b/admin/sync/fas/sync_fas_portal_reihungstest.php
@@ -0,0 +1,134 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+
+//*
+//* Synchronisiert Reihungstestdatensaetze von FAS DB in PORTAL DB
+//*
+//*
+
+require_once('../../../vilesci/config.inc.php');
+require_once('../../../include/reihungstest.class.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='';
+$text = '';
+$anzahl_quelle=0;
+$anzahl_eingefuegt=0;
+$anzahl_fehler=0;
+$anzahl_quelle2=0;
+$anzahl_eingefuegt2=0;
+$anzahl_fehler2=0;
+
+function validate($row)
+{
+}
+
+/*************************
+ * FAS-PORTAL - Synchronisation
+ */
+?>
+
+
+
+Synchro - FAS -> Portal - Reihungstest
+
+
+
+ort_kurzbz ='';
+ $reihungstest->anmerkung =$row->raum;
+ $reihungstest->datum =$row->datum;
+ $reihungstest->uhrzeit =$row->uhrzeit;
+ //$reihungstest->updateamum =$row->;
+ $reihungstest->updatevon ="SYNC";
+ //$reihungstest->insertamum =$row->;
+ $reihungstest->insertvon ="SYNC";
+ $reihungstest->ext_id =$row->reihungstest_pk;
+
+
+ //echo nl2br ($reihungstest->ext_id."\n");
+
+ $qry2="SELECT reihungstest_id, ext_id FROM tbl_reihungstest WHERE ext_id=".$row->reihungstest_pk.";";
+ if($result2 = pg_query($conn, $qry2))
+ {
+ if(pg_num_rows($result2)>0) //eintrag gefunden
+ {
+ if($row2=pg_fetch_object($result2))
+ {
+ // update adresse, wenn datensatz bereits vorhanden
+ $reihungstest->new=false;
+ $reihungstest->reihungstest_id=$row2->reihungstest_id;
+ }
+ }
+ else
+ {
+ // insert, wenn datensatz noch nicht vorhanden
+ $reihungstest->new=true;
+ }
+ }
+
+
+ if(!$error)
+ {
+ if(!$reihungstest->save())
+ {
+ $error_log.=$reihungstest->errormsg."\n";
+ $anzahl_fehler++;
+ }
+ else
+ {
+ $anzahl_eingefuegt++;
+ echo "- ";
+ ob_flush();
+ flush();
+ }
+ }
+ flush();
+ }
+}
+
+
+//echo nl2br($text);
+echo nl2br($error_log);
+echo nl2br("\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler");
+
+?>
+
+
\ No newline at end of file
diff --git a/admin/sync/fas/sync_fas_portal_schluessel.php b/admin/sync/fas/sync_fas_portal_schluessel.php
index 072ce5543..dd9e69507 100644
--- a/admin/sync/fas/sync_fas_portal_schluessel.php
+++ b/admin/sync/fas/sync_fas_portal_schluessel.php
@@ -39,6 +39,7 @@ $text = '';
$anzahl_quelle=0;
$anzahl_eingefuegt=0;
$anzahl_fehler=0;
+$krit='';
function validate($row)
{
@@ -90,16 +91,16 @@ if($result = pg_query($conn_fas, $qry))
{
$schluessel->person_id=$row1->person_portal;
//Schlüsseltyp feststellen
- $qry2="SELECT schluesseltyp FROM tbl_schluesseltyp WHERE schluesseltyp=".$row->name.";";
+ $qry2="SELECT * FROM tbl_syncschluesseltyp WHERE fas_typ='".$row->schluessel_fk."';";
if($result2 = pg_query($conn, $qry2))
{
if(pg_num_rows($result2)>0) //eintrag gefunden
{
if($row2=pg_fetch_object($result2))
{
- $schluessel->schluesseltyp=$row2->schluesseltyp;
+ $schluessel->schluesseltyp=$row2->portal_typ;
//Insert oder Update
- $qry3="SELECT schluessel_id FROM tbl_schluessel WHERE beschreibung=".$row->name.";";
+ $qry3="SELECT schluessel_id FROM tbl_schluessel WHERE ext_id=".$row->schluessel_fk.";";
if($result3 = pg_query($conn, $qry3))
{
if(pg_num_rows($result3)>0) //eintrag gefunden
diff --git a/admin/sync/fas/sync_fas_portal_schluesseltyp.php b/admin/sync/fas/sync_fas_portal_schluesseltyp.php
index 627b7adbe..17fcb0d4a 100644
--- a/admin/sync/fas/sync_fas_portal_schluesseltyp.php
+++ b/admin/sync/fas/sync_fas_portal_schluesseltyp.php
@@ -95,13 +95,13 @@ if($result = pg_query($conn_fas, $qry))
{
//überprüfen, ob sync-eintrag schon vorhanden
- $qryz="SELECT * FROM tbl_syncschluesseltyp WHERE fas_typ='$row->schluesseltyp_pk' AND portal_typ='$schluesseltyp->schluesseltyp'";
+ $qryz="SELECT * FROM tbl_syncschluesseltyp WHERE fas_typ='$row->schluessel_pk' AND portal_typ='$schluesseltyp->schluesseltyp'";
if($resultz = pg_query($conn, $qryz))
{
if(pg_num_rows($resultz)==0) //wenn dieser eintrag noch nicht vorhanden ist
{
- $qry='INSERT INTO tbl_syncschluesseltyp (fas_typ, portal_typ)'.
- 'VALUES ('.$row->schluesseltyp_pk.', '.$person->schluesseltyp.');';
+ $qry="INSERT INTO tbl_syncschluesseltyp (fas_typ, portal_typ)".
+ "VALUES ('".$row->schluessel_pk."', '".$schluesseltyp->schluesseltyp."');";
$resulti = pg_query($conn, $qry);
}
}
diff --git a/admin/sync/fas/sync_fas_portal_student.php b/admin/sync/fas/sync_fas_portal_student.php
new file mode 100644
index 000000000..a443b5f57
--- /dev/null
+++ b/admin/sync/fas/sync_fas_portal_student.php
@@ -0,0 +1,265 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+/**
+ * Synchronisiert Studentendatensaetze von FAS DB in PORTAL DB
+ *
+ */
+require_once('../../../vilesci/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='';
+$text = '';
+$anzahl_eingefuegt=0;
+$anzahl_fehler=0;
+
+// ***********************************
+// * VILESCI->PORTAL - Synchronisation
+// ***********************************
+
+//Mitarbeiter
+$qry = "SELECT * FROM person JOIN student ON person_fk=person_pk WHERE uid NOT LIKE '\_dummy%'";
+
+if($result = pg_query($conn_fas, $qry))
+{
+ $text.="\n Sync Student\n\n";
+ while($row = pg_fetch_object($result))
+ {
+ $error=false;
+ //Attribute Person
+ $staatsbuergerschaft=$row->staatsbuergerschaft;
+ $geburtsnation=$row->gebnation;
+ $sprache='German';
+ $anrede=$row->anrede;
+ $titelpost=$row->postnomentitel;
+ $titelpre=$row->titel;
+ $nachname=$row->familienname;
+ $vorname=$row->vorname;
+ $vornamen=$row->vornamen;
+ $gebdatum=$row->gebdat;
+ $gebort=$row->gebort;
+ $gebzeit=''; //bei insert auslassen
+ $foto=''; //bei insert auslassen
+ $anmerkungen=$row->bemerkung;
+ $svnr=$row->svnr;
+ $ersatzkennzeichen=$row->ersatzkennzeichen;
+ $familienstand=$row->familienstand;
+ $geschlecht=strtolower($row->geschlecht);
+ $anzahlkinder=$row->anzahlderkinder;
+ $aktiv=($row->aktiv=='t'?true:false);
+ $insertvon='SYNC';
+ $insertamum='';
+ $updateamum='';
+ $updatevon='SYNC';
+ $ext_id_person=$row->person_pk;
+
+ //Attribute Benutzer
+ $uid='';
+ $person_id='';
+ $aktiv='';
+ $alias='';
+
+ //Attribute Prestudent
+ $aufmerksam_kurzbz=$row->aufmerksamdurch;
+ $person_id='';
+ $studiengang_kz='';
+ $beruftaetigkeit_code=$row->berufstaetigkeit;
+ $ausbildungcode='';
+ $zgv_code=$row->zgv;
+ $zgvort=$row->zgvort;
+ $zgvdatum=$row->zgvdatum;
+ $zgvmas_code=$row->zgvmagister;
+ $zgvmaort=$row->zgvmagisterortort;
+ $zgvmadatum=$row->zgvmagisterdatum;
+ $facheinschlberuf=($row->berufstätigkeit=='J'?true:false);
+ $reihungstest_id='';
+ $punkte='';
+ $ext_id_pre=$row->person_pk;
+ $anmeldungreihungstest='';
+
+ //Attribute Student
+ $student_uid=$row->uid;
+ $matrikelnr=$row->perskz;
+ $prestudent_id='';
+ //studiengang_kz bei prestudent
+ $semester='';
+ $verband='';
+ $gruppe='';
+ $ext_id_student=$row->student_pk;
+
+ //Ermittlung der Daten des Reihungstests
+ $qry_rt1="SELECT student_fk, reihungstest_fk, anmeldungreihungstest FROM student_reihungstest WHERE student_fk=".$row->student_pk.";";
+ if($result_rt1 = pg_query($conn, $qry_rt1))
+ {
+ if($row_rt1=pg_fetch_object($result_rt1))
+ {
+ $qry_rt2="SELECT reihungstest_id FROM public.tbl_reihungstest WHERE ext_id=".$row_rt1->reihungstest_fk.";";
+ if($result_rt2 = pg_query($conn, $qry_rt2))
+ {
+ if($row_rt2=pg_fetch_object($result_rt2))
+ {
+ $reihungstest_id=$row_rt2->reihungstest_id;
+ $anmeldungreihungstest=$row_rt1->anmeldungreihungstest;
+ }
+ else
+ {
+ $error_log.="Reihungstest_id von $row_rt1->reihungstest_fk konnte nicht gefunden werden.\n";
+ $error=true;
+ }
+ }
+ else
+ {
+ $error_log.="Reihungstest von $row_rt1->reihungstest_fk wurde nicht gefunden.\n";
+ $error=true;
+ }
+ }
+ else
+ {
+ $error_log.="Fehler beim Ermitteln des Reihungstests von Student $row->familienname, $row->vorname aufgetreten!\n";
+ $error=true;
+ }
+ }
+
+ //Start der Transaktion
+ pg_query($this->conn,'BEGIN;');
+
+ //Reihenfolge: person - prestudent - student - benutzer
+
+ //insert oder update bei person?
+ $qry="SELECT person_id FROM public.tbl_benutzer WHERE uid='$row->uid'";
+ if($resultu = pg_query($conn, $qry))
+ {
+ if(pg_num_rows($resultu)>0) //wenn dieser eintrag schon vorhanden ist
+ {
+ if($rowu=pg_fetch_object($resultu))
+ {
+ //update
+ $person_id=$rowu->person_id;
+ $new_person=false;
+ }
+ else
+ {
+ $error=true;
+ $error_log.="benutzer von $row->uid konnte nicht ermittelt werden\n";
+ }
+ }
+ else
+ {
+ $qry1="SELECT person_fas, person_portal FROM public.tbl_syncperson WHERE person_fas='$row->person_pk'";
+ if($result1 = pg_query($conn, $qry1))
+ {
+ if(pg_num_rows($result1)>0) //wenn dieser eintrag schon vorhanden ist
+ {
+ if($row1=pg_fetch_object($result1))
+ {
+ //update
+ $person_id=$row1->person_portal;
+ $new_person=false;
+ }
+ else
+ {
+ $error=true;
+ $error_log.="person von $row->person_pk konnte nicht ermittelt werden\n";
+ }
+ }
+ else
+ {
+ //vergleich svnr und ersatzkennzeichen
+ $qryz="SELECT person_id FROM public.tbl_person
+ WHERE ('$row->svnr' is not null AND svnr = '$row->svnr')
+ OR ('$row->ersatzkennzeichen' is not null AND ersatzkennzeichen = '$row->ersatzkennzeichen')";
+ if($resultz = pg_query($conn, $qryz))
+ {
+ if(pg_num_rows($resultz)>0) //wenn dieser eintrag schon vorhanden ist
+ {
+ if($rowz=pg_fetch_object($resultz))
+ {
+ $new_person=false;
+ $person_id=$rowz->person_id;
+ //echo nl2br("update3 von ".$row->uid.", ".$row->familienname."\n");
+ }
+ else
+ {
+ $error=true;
+ $error_log.="person mit svnr: $row->svnr bzw. ersatzkennzeichen: $row->ersatzkennzeichen konnte nicht ermittelt werden (".pg_num_rows($resultz).")\n";
+ }
+ }
+ else
+ {
+ //insert
+ $new_person=true;
+ //echo nl2br("insert von ".$row->uid.", ".$row->familienname."\n");
+ }
+ }
+ }
+ }
+ }
+ }
+ if(new_person)
+ {
+ //insert person
+
+ }
+ else
+ {
+ //update person
+ }
+
+ if(!$error)
+ {
+ //Reihenfolge: prestudent - student - benutzer
+ }
+ else
+ {
+ pg_query($this->conn,'ROLLBACK;');
+ }
+
+
+
+
+
+ //Basisdaten speichern
+ if(!benutzer::save())
+ {
+ pg_query($this->conn,'ROLLBACK;');
+ return false;
+ }
+ }
+}
+?>
+
+
+
+Synchro - Vilesci -> Portal - Student
+
+
+
+
+
+
\ No newline at end of file
diff --git a/admin/sync/fas/sync_fas_portal_telefon.php b/admin/sync/fas/sync_fas_portal_telefon.php
index 52e24eafb..615dd354d 100644
--- a/admin/sync/fas/sync_fas_portal_telefon.php
+++ b/admin/sync/fas/sync_fas_portal_telefon.php
@@ -72,7 +72,22 @@ if($result = pg_query($conn_fas, $qry))
$error=false;
$kontakt =new kontakt($conn);
$kontakt->firma_id ='';
- $kontakt->kontakttyp ='telefon';
+ If($row->typ<'20')
+ {
+ $kontakt->kontakttyp ='telefon';
+ }
+ elseif($row->typ>='20' && $row->typ<'30')
+ {
+ $kontakt->kontakttyp ='mobil';
+ }
+ elseif($row->typ>='30' && $row->typ<'40')
+ {
+ $kontakt->kontakttyp ='fax';
+ }
+ else
+ {
+ $kontakt->kontakttyp ='so.tel';
+ }
$kontakt->anmerkung =$row->name;
$kontakt->kontakt =$row->nummer;
$kontakt->zustellung =false;
diff --git a/include/benutzer.class.php b/include/benutzer.class.php
index f514ccad2..2924950ca 100644
--- a/include/benutzer.class.php
+++ b/include/benutzer.class.php
@@ -76,7 +76,7 @@ class benutzer extends person
}
if($this->uid == '')
{
- $this->errormsg = 'UID muss eingegeben werden';
+ $this->errormsg = 'UID muss eingegeben werden '.$this->uid;
return false;
}
if(strlen($this->alias)>256)
diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php
index 62780c63d..b8bd1d2fd 100644
--- a/include/mitarbeiter.class.php
+++ b/include/mitarbeiter.class.php
@@ -31,6 +31,7 @@ class mitarbeiter extends benutzer
var $fixangestellt; //boolean
var $telefonklappe; //varchar(25)
var $ort_kurzbz; //varchar(8)
+ var $ext_id_mitarbeiter; //bigint
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional einen Mitarbeiter
@@ -55,8 +56,8 @@ class mitarbeiter extends benutzer
}
//Mitarbeiter laden
- //if($uid!=null)
- // $this->load($uid);
+ if($uid!=null)
+ $this->load($uid);
}
// ************************************************
@@ -72,7 +73,7 @@ class mitarbeiter extends benutzer
}
if($this->uid=='')
{
- $this->errormsg = 'UID muss eingegeben werden';
+ $this->errormsg = 'UID muss eingegeben werden '.$this->uid;
return false;
}
if($this->ausbildungcode!='' && !is_numeric($this->ausbildungcode))
@@ -97,7 +98,7 @@ class mitarbeiter extends benutzer
}
if(!is_bool($this->lektor))
{
- $this->errormsg = 'lektor muss boolean sein'.$this->lektor;
+ $this->errormsg = 'lektor muss boolean sein '.$this->lektor;
return false;
}
if(!is_bool($this->fixangestellt))
@@ -140,9 +141,11 @@ class mitarbeiter extends benutzer
if($this->new)
{
- //Neuen Datensatz anlegen
+
+ //Neuen Datensatz anlegen
$qry = "INSERT INTO public.tbl_mitarbeiter(mitarbeiter_uid, ausbildungcode, personalnummer, kurzbz, lektor, ort_kurzbz,
- fixangestellt, telefonklappe, updateamum, updatevon)
+ fixangestellt, telefonklappe, updateamum, updatevon, ext_id)
+
VALUES('".addslashes($this->uid)."',".
$this->addslashes($this->ausbildungcode).",".
$this->addslashes($this->personalnummer).",". //TODO: in Produktivversion nicht angeben
@@ -152,7 +155,8 @@ class mitarbeiter extends benutzer
($this->fixangestellt?'true':'false').','.
$this->addslashes($this->telefonklappe).','.
$this->addslashes($this->updateamum).','.
- $this->addslashes($this->updatevon).');';
+ $this->addslashes($this->updatevon).', '.
+ $this->addslashes($this->ext_id_mitarbeiter).');';
}
else
{
@@ -166,7 +170,8 @@ class mitarbeiter extends benutzer
' telefonklappe='.$this->addslashes($this->telefonklappe).','.
' ort_kurzbz='.$this->addslashes($this->ort_kurzbz).','.
' updateamum='.$this->addslashes($this->updateamum).','.
- ' updatevon='.$this->addslashes($this->updatevon).
+ ' updatevon='.$this->addslashes($this->updatevon).','.
+ ' ext_id='.$this->addslashes($this->ext_id_mitarbeiter).
" WHERE mitarbeiter_uid='".addslashes($this->uid)."';";
}
diff --git a/include/person.class.php b/include/person.class.php
index 9959b9596..0580b513d 100644
--- a/include/person.class.php
+++ b/include/person.class.php
@@ -196,7 +196,7 @@ class person
$this->errormsg = 'Vornamen darf nicht laenger als 128 Zeichen sein';
return false;
}
- //ToDo Gebdatum pruefen -> laut bis muss er aelter als 10 Jahre sein
+ //ToDo Gebdatum pruefen -> laut bis muss student aelter als 10 Jahre sein
/*if(strlen($this->gebdatum)==0 || is_null($this->gebdatum))
{
$this->errormsg = 'Geburtsdatum muss eingegeben werden';
diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php
new file mode 100644
index 000000000..f453fa5b8
--- /dev/null
+++ b/include/reihungstest.class.php
@@ -0,0 +1,226 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+/**
+ * Klasse Reihungstest
+ * @create 10-01-2007
+ */
+
+class reihungstest
+{
+ var $conn; // @var resource DB-Handle
+ var $new; // @var boolean
+ var $errormsg; // @var string
+ var $done=false; // @var boolean
+
+ //Tabellenspalten
+ Var $reihungstest_id; // @var integer
+ var $studiengang_kz; // @var integer
+ var $ort_kurzbz; // @var string
+ var $anmerkung; // @var string
+ var $datum; // @var date
+ var $uhrzeit; // @var time without time zone
+ var $ext_id; // @var integer
+ var $insertamum; // @var timestamp
+ var $insertvon; // @var bigint
+ var $updateamum; // @var timestamp
+ var $updatevon; // @var bigint
+
+ /**
+ * Konstruktor
+ * @param $conn Connection
+ * $kontakt_id ID der Adresse die geladen werden soll (Default=null)
+ */
+ function reihungstest($conn,$reihungstest_id=null, $unicode=false)
+ {
+ $this->conn = $conn;
+ if ($unicode)
+ {
+ $qry = "SET CLIENT_ENCODING TO 'UNICODE';";
+ }
+ else
+ {
+ $qry="SET CLIENT_ENCODING TO 'LATIN9';";
+ }
+ if(!pg_query($conn,$qry))
+ {
+ $this->errormsg = "Encoding konnte nicht gesetzt werden";
+ return false;
+ }
+ }
+
+ /**
+ * Laedt den Reihungstest mit der ID $reihungstest_id
+ * @param $sreihungstest_id ID des zu ladenden Reihungstests
+ * @return true wenn ok, false im Fehlerfall
+ */
+ function load($reihungstest_id)
+ {
+ //noch nicht implementiert
+ }
+
+ // ************************************************
+ // * wenn $var '' ist wird "null" zurueckgegeben
+ // * wenn $var !='' ist werden datenbankkritische
+ // * Zeichen mit backslash versehen und das Ergebnis
+ // * unter Hochkomma gesetzt.
+ // ************************************************
+ function addslashes($var)
+ {
+ return ($var!=''?"'".addslashes($var)."'":'null');
+ }
+ /**
+ * Prueft die Variablen auf gueltigkeit
+ * @return true wenn ok, false im Fehlerfall
+ */
+ function checkvars()
+ {
+ //Zahlenfelder pruefen
+ if(!is_numeric($this->studiengang_kz))
+ {
+ $this->errormsg='studiengang_kz enthaelt ungueltige Zeichen:'.$this->reihungstest_id.' - Studiengang: '.$row->studiengang_kz;
+ return false;
+ }
+ //Gesamtlaenge pruefen
+ //$this->errormsg='Eine der Gesamtlaengen wurde ueberschritten';
+ if(strlen($this->ort_kurzbz)>8)
+ {
+ $this->errormsg = 'Ort_kurzbz darf nicht länger als 8 Zeichen sein - Studiengang: '.$row->studiengang_kz;
+ return false;
+ }
+ if(strlen($this->anmerkung)>64)
+ {
+ $this->errormsg = 'Anmerkung darf nicht länger als 64 Zeichen sein - Studiengang: '.$row->studiengang_kz;
+ return false;
+ }
+
+ $this->errormsg = '';
+ return true;
+ }
+
+ /**
+ * Speichert den aktuellen Datensatz in die Datenbank
+ * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
+ * andernfalls wird der Datensatz mit der ID in $reihungstest_id aktualisiert
+ * @return true wenn ok, false im Fehlerfall
+ */
+ function save()
+ {
+ $this->done=false;
+
+ if($this->new)
+ {
+ //Neuen Datensatz einfuegen
+
+ $qry='INSERT INTO tbl_reihungstest (studiengang_kz, ort_kurzbz, anmerkung, datum, uhrzeit,
+ ext_id, insertamum, insertvon, updateamum, updatevon) VALUES('.
+ $this->addslashes($this->studiengang_kz).', '.
+ $this->addslashes($this->ort_kurzbz).', '.
+ $this->addslashes($this->anmerkung).', '.
+ $this->addslashes($this->datum).', '.
+ $this->addslashes($this->uhrzeit).', '.
+ $this->addslashes($this->ext_id).', now(), '.
+ $this->addslashes($this->insertvon).', now(), '.
+ $this->addslashes($this->updatevon).');';
+ $this->done=true;
+ }
+ else
+ {
+ $qryz="SELECT * FROM tbl_reihungstest WHERE reihungstest_id='$this->reihungstest_id';";
+ if($resultz = pg_query($this->conn, $qryz))
+ {
+ while($rowz = pg_fetch_object($resultz))
+ {
+ $update=false;
+ if($rowz->studiengang_kz!=$this->studiengang_kz) $update=true;
+ if($rowz->ort_kurzbz!=$this->kurzbz) $update=true;
+ if($rowz->anmerkung!=$this->anmerkung) $update=true;
+ if($rowz->datum!=$this->datum) $update=true;
+ if($rowz->uhrzeit!=$this->uhrzeit) $update=true;
+ if($rowz->ext_id!=$this->ext_id) $update=true;
+
+ if($update)
+ {
+ $qry='UPDATE tbl_schluessel SET '.
+ 'studiengang_kz='.$this->addslashes($this->studiengang_kz).', '.
+ 'ort_kurzbz='.$this->addslashes($this->ort_kurzbz).', '.
+ 'anmerkung='.$this->addslashes($this->anmerkung).', '.
+ 'datum='.$this->addslashes($this->datum).', '.
+ 'uhrzeit='.$this->addslashes($this->uhrzeit).', '.
+ 'ext_id='.$this->addslashes($this->ext_id).', '.
+ 'updateamum= now(), '.
+ 'updatevon='.$this->addslashes($this->updatevon).' '.
+ 'WHERE reihungstest_id='.$this->addslashes($this->reihungstest_id).';';
+ $this->done=true;
+ }
+ }
+ }
+ else
+ {
+ return false;
+ }
+ }
+ if ($this->done)
+ {
+ if(pg_query($this->conn, $qry))
+ {
+ //Log schreiben
+ /*$sql = $qry;
+ $qry = "SELECT nextval('log_seq') as id;";
+ if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
+ {
+ $this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
+ return false;
+ }
+
+ $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
+ if(pg_query($this->conn, $qry))
+ return true;
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
+ return false;
+ } */
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern der Daten';
+ return false;
+ }
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ /**
+ * Loescht den Datenensatz mit der ID die uebergeben wird
+ * @param $reihungstest_id ID die geloescht werden soll
+ * @return true wenn ok, false im Fehlerfall
+ */
+ function delete($reihungstest_id)
+ {
+ //noch nicht implementiert!
+ }
+}
+?>
\ No newline at end of file
diff --git a/include/schluessel.class.php b/include/schluessel.class.php
index 694a88525..e17aabbc0 100644
--- a/include/schluessel.class.php
+++ b/include/schluessel.class.php
@@ -20,7 +20,7 @@
* Rudolf Hangl .
*/
/**
- * Klasse Schüssel
+ * Klasse Schlüssel
* @create 22-12-2006
*/
@@ -144,6 +144,10 @@ class schluessel
}
}
}
+ else
+ {
+ return false;
+ }
}
if ($this->done)
{
diff --git a/include/student.class.php b/include/student.class.php
index 270d33744..6d244bd8d 100644
--- a/include/student.class.php
+++ b/include/student.class.php
@@ -30,6 +30,7 @@ class student extends benutzer
var $semester;
var $verband;
var $gruppe;
+ var $ext_id_student;
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional einen Studenten
@@ -175,7 +176,7 @@ class student extends benutzer
{
//Neuen Datensatz anlegen
$qry = "INSERT INTO public.tbl_student(student_uid, matrikelnr, updateamum, updatevon, prestudent_id,
- studiengang_kz, semester, verband, gruppe)
+ studiengang_kz, semester, ext_id, verband, gruppe)
VALUES('".addslashes($this->uid)."',".
$this->addslashes($this->matrikelnr).",".
$this->addslashes($this->updateamum).','.
@@ -183,6 +184,7 @@ class student extends benutzer
$this->addslashes($this->prestudent_id).','.
$this->studiengang_kz.','.
$this->semester.','.
+ $this->ext_id_student.','.
($this->verband!=''?"'".addslashes($this->verband)."'":' ').','.
($this->gruppe!=''?"'".addslashes($this->gruppe)."'":' ').');';
}
@@ -196,6 +198,7 @@ class student extends benutzer
' prestudent_id='.$this->addslashes($this->prestudent_id).','.
' studiengang_kz='.$this->studiengang_kz.','.
' semester='.$this->semester.','.
+ ' ext_id='.$this->ext_id_student;
' verband='.$this->addslashes($this->verband).','.
' gruppe='.$this->addslashes($this->gruppe).
" WHERE student_uid='".addslashes($this->uid)."';";