From 50ea0c291568b8f2f4dc00fab709a60455d43b7b Mon Sep 17 00:00:00 2001 From: Rudolf Hangl Date: Wed, 28 Mar 2007 07:23:31 +0000 Subject: [PATCH] SYNC Student --- admin/sync/fas/sync_fas_vilesci_student.php | 338 ++++++++++++-------- 1 file changed, 207 insertions(+), 131 deletions(-) diff --git a/admin/sync/fas/sync_fas_vilesci_student.php b/admin/sync/fas/sync_fas_vilesci_student.php index 4fdeebc40..55d8f6dd2 100644 --- a/admin/sync/fas/sync_fas_vilesci_student.php +++ b/admin/sync/fas/sync_fas_vilesci_student.php @@ -408,7 +408,7 @@ foreach ($studiengangfk AS $stg) } */ -/* + $qry = "SELECT * FROM person JOIN student ON person_fk=person_pk WHERE uid NOT LIKE '\_dummy%' AND person_pk NOT IN( SELECT @@ -438,8 +438,8 @@ AND (trim(p1.familienname)<>trim(p2.familienname) OR trim(p1.vorname)<>trim(p2.v ) order by familienname; "; -*/ -$qry="SELECT * FROM person JOIN student ON person_fk=person_pk WHERE uid='tw05p102';"; + +//$qry="SELECT * FROM person JOIN student ON person_fk=person_pk WHERE uid='iw05d203';"; $datum_obj=new datum(); if($result = pg_query($conn_fas, $qry)) { @@ -680,7 +680,7 @@ if($result = pg_query($conn_fas, $qry)) { $error_log='Punkte muss eine gueltige Zahl sein. '.$nachname.", ".$vorname."\n"; } -echo nl2br("\nFAS:".$nachname.", ".$vorname.": UID=".$student_uid.", Matrikelnr=".$matrikelnr."\n"); +//echo nl2br("\n\nFAS:".$nachname.", ".$vorname.": UID=".$student_uid.", Matrikelnr=".$matrikelnr."\n"); //Ermittlung der Daten des Reihungstests $qry="SELECT student_fk, reihungstest_fk, anmeldedatum FROM student_reihungstest WHERE student_fk='".$row->student_pk."';"; if($result_rt1 = pg_query($conn_fas, $qry)) @@ -715,15 +715,27 @@ echo nl2br("\nFAS:".$nachname.", ".$vorname.": UID=".$student_uid.", Matrikelnr= } //Student aktiv? - $qry="SELECT * FROM (SELECT status, creationdate FROM student_ausbildungssemester WHERE student_fk= '".$ext_id_student."' AND + $qry="SELECT * FROM (SELECT status, creationdate, ausbildungssemester_fk FROM student_ausbildungssemester WHERE student_fk= '".$ext_id_student."' AND studiensemester_fk=(SELECT studiensemester_pk FROM studiensemester WHERE aktuell='J') ORDER BY creationdate DESC LIMIT 1) AS abc WHERE status IN ('3', '10', '11', '12', '13');"; $aktiv=false; + $semester=' '; if($resultu = pg_query($conn_fas, $qry)) { if(pg_num_rows($resultu)>0) { - $aktiv=true; + if($rowu=pg_fetch_object($resultu)) + { + $aktiv=true; + $qry="SELECT * FROM ausbildungssemester WHERE ausbildungssemester_pk='".$rowu->ausbildungssemester_fk."';"; + if($resultx = pg_query($conn_fas, $qry)) + { + if($rowx=pg_fetch_object($resultx)) + { + $semester=$rowx->semester; + } + } + } } else { @@ -1051,18 +1063,6 @@ echo nl2br("\nFAS:".$nachname.", ".$vorname.": UID=".$student_uid.", Matrikelnr= $ausgabe_person="Staatsbürgerschaft: '".$staatsbuergerschaft."' (statt '".$row1->staatsbuergerschaft."')"; } } - if($row1->ext_id!=$ext_id_person) - { - $updatep=true; - if(strlen(trim($ausgabe_person))>0) - { - $ausgabe_person.=", Ext_ID: '".$ext_id_person."' (statt '".$row1->ext_id."')"; - } - else - { - $ausgabe_person="Ext_ID: '".$ext_id_person."' (statt '".$row1->ext_id."')"; - } - } if($updatep) { $qry = 'UPDATE public.tbl_person SET'. @@ -1490,7 +1490,7 @@ echo nl2br("\nFAS:".$nachname.", ".$vorname.": UID=".$student_uid.", Matrikelnr= if(pg_query($conn,$qry)) { -echo nl2br("Prestudent: ".$qry."\n"); +//echo nl2br("person_id=".$person_id."\nPrestudent: ".$qry."\n"); if($new_prestudent) { $qry = "SELECT currval('public.tbl_prestudent_prestudent_id_seq') AS id;"; @@ -1537,7 +1537,10 @@ echo nl2br("Prestudent: ".$qry."\n"); { if($rowu=pg_fetch_object($resultu)) { - $semester=$rowu->jahrgang; + if($semester==' ') + { + $semester=$rowu->jahrgang; + } if ($rowu->verband==null) { $verband=' '; @@ -1565,12 +1568,12 @@ echo nl2br("Prestudent: ".$qry."\n"); { if(pg_num_rows($resultg)<1) { - $qry='INSERT INTO public.tbl_lehrverband (studiengang_kz, semester, verband, gruppe, aktiv, bezeichnung, ext_id) - VALUES('.myaddslashes($studiengang_kz).', '. - myaddslashes($semester).', '. - myaddslashes($verband).', '. - myaddslashes($gruppe).', '. - 'true, null , null );'; + $qry="INSERT INTO public.tbl_lehrverband (studiengang_kz, semester, verband, gruppe, aktiv, bezeichnung, ext_id) + VALUES(".myaddslashes($studiengang_kz).", ". + myaddslashes($semester).", ". + myaddslashes($verband).", ". + myaddslashes($gruppe).", ". + "true, null , null );"; pg_query($conn, $qry); } @@ -1580,11 +1583,11 @@ echo nl2br("Prestudent: ".$qry."\n"); { if(pg_num_rows($resultg)<1) { - $qry='INSERT INTO public.tbl_lehrverband (studiengang_kz, semester, verband, gruppe, aktiv, bezeichnung, ext_id) - VALUES('.myaddslashes($studiengang_kz).', '. - myaddslashes($semester).', '. - myaddslashes($verband).', '. - "'', true, null, null);"; + $qry="INSERT INTO public.tbl_lehrverband (studiengang_kz, semester, verband, gruppe, aktiv, bezeichnung, ext_id) + VALUES(".myaddslashes($studiengang_kz).", ". + myaddslashes($semester).", ". + myaddslashes($verband).", ". + "' ', true, null, null);"; pg_query($conn, $qry); } } @@ -1593,10 +1596,10 @@ echo nl2br("Prestudent: ".$qry."\n"); { if(pg_num_rows($resultg)<1) { - $qry='INSERT INTO public.tbl_lehrverband (studiengang_kz, semester, verband, gruppe, aktiv, bezeichnung, ext_id) - VALUES('.myaddslashes($studiengang_kz).', '. - myaddslashes($semester).', '. - "'', '', true, null, null);"; + $qry="INSERT INTO public.tbl_lehrverband (studiengang_kz, semester, verband, gruppe, aktiv, bezeichnung, ext_id) + VALUES(".myaddslashes($studiengang_kz).", ". + myaddslashes($semester).", ". + "' ', ' ', true, null, null);"; pg_query($conn, $qry); } } @@ -1605,7 +1608,7 @@ echo nl2br("Prestudent: ".$qry."\n"); } } //prestudentrolle -echo nl2br("Aktiv=".($aktiv?'true':'false').", Semester=".$semester.", Verband=".$verband.", Gruppe=".$gruppe."\n"); +//echo nl2br("Aktiv=".($aktiv?'true':'false').", Semester=".$semester.", Verband=".$verband.", Gruppe=".$gruppe."\n"); $qry="SELECT * FROM student_ausbildungssemester where student_fk='$ext_id_student';"; if($resultru = pg_query($conn_fas, $qry)) { @@ -1652,119 +1655,178 @@ echo nl2br("Aktiv=".($aktiv?'true':'false').", Semester=".$semester.", Verband=" and $verband!=null and $gruppe!=null) { //Benutzer schon vorhanden? - $qry="SELECT uid, person_id, ext_id FROM public.tbl_benutzer WHERE person_id='".$person_id."' AND uid='".$matrikelnr."';"; - if($resultu = pg_query($conn, $qry)) + $qry="SELECT uid,person_id,ext_id FROM public.tbl_benutzer WHERE ext_id=".$ext_id_student.";"; + if($resultx = pg_query($conn, $qry)) { - if(pg_num_rows($resultu)>0) //wenn dieser eintrag schon vorhanden ist - { - $student_uid=$matrikelnr; - } - } - $qry="SELECT uid, person_id, ext_id FROM public.tbl_benutzer WHERE person_id='".$person_id."' AND uid='".$student_uid."';"; - if($resultu = pg_query($conn, $qry)) - { - if(pg_num_rows($resultu)>0) //wenn dieser eintrag schon vorhanden ist + if(pg_num_rows($resultx)>0) { - if($rowu=pg_fetch_object($resultu)) + if($rowx=pg_fetch_object($resultx)) { - $qryfas="SELECT * FROM person, student WHERE person_pk=person_fk AND uid='".$student_uid."' AND perskz<>'';"; - if($resultfas = pg_query($conn_fas, $qryfas)) - { - if(pg_num_rows($resultfas)>1) //person mit mehreren studentendatensätzen? - { - $qry="SELECT * FROM (SELECT status, creationdate FROM student_ausbildungssemester WHERE student_fk= '".$ext_id_student."' AND - studiensemester_fk=(SELECT studiensemester_pk FROM studiensemester WHERE aktuell='J') ORDER BY creationdate DESC LIMIT 1) AS abc - WHERE status='9';"; - $aktiv9=false; - if($resulta = pg_query($conn_fas, $qry)) - { - if(pg_num_rows($resulta)>0) - { - $aktiv9=true; - } - else - { - $aktiv9=false; - } - } - else - { - $error=true; - $error_log.='Fehler beim Abfragen des aktuellen Status auf Unterbrecher bei student_pk: '.$row->student_pk; - echo nl2br('Fehler beim Abfragen des aktuellen Status auf Unterbrecher bei student_pk: '.$row->student_pk); - } - - if(!$aktiv && !$aktiv9) - { - if($rowu->uid==$matrikelnr) - { - $new_benutzer=false; - } - else - { - $qrychk="SELECT * FROM public.tbl_benutzer WHERE person_id=person_id AND uid='".$matrikelnr."';"; - if($resultchk = pg_query($conn, $qrychk)) - { - if(pg_num_rows($resultchk)>0) - { - $new_benutzer=false; - } - else - { - $new_benutzer=true; - $student_uid=$matrikelnr; - } - } - } - } - else - { - $new_benutzer=false; - } - } - else - { - $new_benutzer=false; - } - } - } - else - { - $new_benutzer=true; + $new_benutzer=false; + $student_uid=$rowx->uid; + //echo nl2br("new1\n"); } } else { - $new_benutzer=true; + $qry="SELECT uid, person_id, ext_id FROM public.tbl_benutzer WHERE person_id='".$person_id."' AND uid='".$matrikelnr."';"; + if($resultu = pg_query($conn, $qry)) + { + if(pg_num_rows($resultu)>0) + { + $student_uid=$matrikelnr; + $new_benutzer=false; + //echo nl2br("new2\n"); + } + + else + { + $qry="SELECT uid, person_id, ext_id FROM public.tbl_benutzer WHERE person_id='".$person_id."' AND uid='".$student_uid."';"; + if($resultu = pg_query($conn, $qry)) + { + if(pg_num_rows($resultu)>0) + { + if($rowu=pg_fetch_object($resultu)) + { + $qryfas="SELECT * FROM person, student WHERE person_pk=person_fk AND uid='".$student_uid."' AND perskz<>'';"; + if($resultfas = pg_query($conn_fas, $qryfas)) + { + if(pg_num_rows($resultfas)>1) //person mit mehreren studentendatensätzen? + { + $qry="SELECT * FROM (SELECT status, creationdate FROM student_ausbildungssemester WHERE student_fk= '".$ext_id_student."' AND + studiensemester_fk=(SELECT studiensemester_pk FROM studiensemester WHERE aktuell='J') ORDER BY creationdate DESC LIMIT 1) AS abc + WHERE status='9';"; + $aktiv9=false; + if($resulta = pg_query($conn_fas, $qry)) + { + if(pg_num_rows($resulta)>0) + { + $aktiv9=true; + } + else + { + $aktiv9=false; + } + } + else + { + $error=true; + $error_log.='Fehler beim Abfragen des aktuellen Status auf Unterbrecher bei student_pk: '.$row->student_pk; + echo nl2br('Fehler beim Abfragen des aktuellen Status auf Unterbrecher bei student_pk: '.$row->student_pk); + } + + if(!$aktiv && !$aktiv9) + { + if($rowu->uid==$matrikelnr) + { + $new_benutzer=false; + //echo nl2br("new3\n"); + } + else + { + $qrychk="SELECT * FROM public.tbl_benutzer WHERE person_id=person_id AND uid='".$matrikelnr."';"; + if($resultchk = pg_query($conn, $qrychk)) + { + if(pg_num_rows($resultchk)>0) + { + $new_benutzer=false; + //echo nl2br("new4\n"); + } + else + { + $new_benutzer=true; + $student_uid=$matrikelnr; + //echo nl2br("new5\n"); + } + } + else + { + $error=true; + $error_log.='Fehler beim Zugriff auf Tabelle tbl_benutzer - person_id: '.$person_id."\n".pg_errormessage($conn)."\n"; + } + } + } + else + { + $new_benutzer=false; + //echo nl2br("new6\n"); + } + } + else + { + $new_benutzer=false; + //echo nl2br("new7\n"); + } + } + } + else + { + $new_benutzer=true; + //echo nl2br("new8\n"); + } + } + else + { + $new_benutzer=true; + //echo nl2br("new9\n"); + } + } + else + { + $error=true; + $error_log.='Fehler beim Zugriff auf Tabelle tbl_benutzer bei person_id: '.$person_id."\n".pg_errormessage($conn)."\n"; + } + } + } } } else { $error=true; - $error_log.='Fehler beim Zugriff auf Tabelle tbl_benutzer bei person_id: '.$person_id."\n".pg_errormessage($conn)."\n"; + $error_log.='Fehler beim Zugriff auf Tabelle tbl_benutzer mit person_id: '.$person_id."\n".pg_errormessage($conn)."\n"; } -echo nl2br("Neu=".$new_benutzer.", UID=".$student_uid."\n"); + + + +//echo nl2br("Neu=".$new_benutzer.", UID=".$student_uid."\n"); //Student schon vorhanden? - $qry="SELECT student_uid FROM public.tbl_student WHERE student_uid='".$student_uid."';"; + $qry="SELECT student_uid FROM public.tbl_student WHERE ext_id='".$ext_id_student."';"; if($resultu = pg_query($conn, $qry)) { if(pg_num_rows($resultu)>0) //wenn dieser eintrag schon vorhanden ist { if($rowu=pg_fetch_object($resultu)) { - //$student_uid=$rowu->student_uid; - $new_student=false; + $new_student=false; + $student_where=" WHERE ext_id=".myaddslashes($ext_id_student).";"; + } + } + else + { + $qry="SELECT student_uid FROM public.tbl_student WHERE matrikelnr='".$matrikelnr."';"; + if($resultu = pg_query($conn, $qry)) + { + if(pg_num_rows($resultu)>0) //wenn dieser eintrag schon vorhanden ist + { + if($rowu=pg_fetch_object($resultu)) + { + $new_student=false; + $student_where=" WHERE matrikelnr=".myaddslashes($matrikelnr).";"; + } + } + else + { + $new_student=true; + } } - else $new_student=true; } - else $new_student=true; } else { $error=true; $error_log.='Fehler beim Zugriff auf Tabelle tbl_student bei student_pk: '.$ext_id_student."\n".pg_errormessage($conn)."\n"; } - +//echo nl2br($student_where); if($new_benutzer) { @@ -1912,12 +1974,25 @@ echo nl2br("Neu=".$new_benutzer.", UID=".$student_uid."\n"); //update student //update nur wenn änderungen gemacht - $qry="SELECT * FROM public.tbl_student WHERE student_uid='$student_uid';"; + $qry="SELECT * FROM public.tbl_student ".$student_where; + if($results = pg_query($conn, $qry)) { while($rows = pg_fetch_object($results)) { - $updates=false; + $updates=false; + if(trim($rows->student_uid)!=trim($student_uid)) + { + $updates=true; + if(strlen(trim($ausgabe_student))>0) + { + $ausgabe_student.=", Student_UID: '".$student_uid."' (statt '".trim($rows->student_uid)."')"; + } + else + { + $ausgabe_student="Student_UID: '".$student_uid."' (statt '".trim($rows->student_uid)."')"; + } + } if(trim($rows->matrikelnr)!=trim($matrikelnr)) { $updates=true; @@ -2005,22 +2080,23 @@ echo nl2br("Neu=".$new_benutzer.", UID=".$student_uid."\n"); if($updates) { $qry = 'UPDATE public.tbl_student SET'. + ' student_uid='.myaddslashes($student_uid).','. ' matrikelnr='.myaddslashes($matrikelnr).','. ' prestudent_id='.myaddslashes($prestudent_id).','. ' studiengang_kz='.myaddslashes($studiengang_kz).','. - ' semester='.myaddslashes($semester).','. - ' verband='.myaddslashes($verband).','. - ' gruppe='.myaddslashes($gruppe).','. + //' semester='.myaddslashes($semester).','. + //' verband='.myaddslashes($verband).','. + //' gruppe='.myaddslashes($gruppe).','. " updateamum=now()".','. " updatevon=".myaddslashes($updatevon).','. ' ext_id='.myaddslashes($ext_id_student). - ' WHERE student_uid='.myaddslashes($student_uid).';'; + $student_where; $ausgabe_student="Änderungen bei Student ".$student_uid.", ".$nachname.", (".$matrikelnr."): ".$ausgabe_student.".\n"; } } } } - if(!@pg_query($conn,$qry)) + if(!pg_query($conn,$qry)) { $error=true; $error_log.='Fehler beim Speichern des Student-Datensatzes:'.$nachname.' / '.$qry."\n".pg_errormessage($conn)."\n"; @@ -2123,7 +2199,7 @@ $error_log="Sync Student\n------------\n\n".$text4."\n".$text3."\n".$text5."\n". Echo nl2br($error_log); -//mail($adress, 'SYNC-Fehler Student von '.$_SERVER['HTTP_HOST'], $error_log,"From: vilesci@technikum-wien.at"); +mail($adress, 'SYNC-Fehler Student von '.$_SERVER['HTTP_HOST'], $error_log,"From: vilesci@technikum-wien.at"); /*fwrite($dateiausgabe,"\n\nPersonen ohne Reihungstest: ".$notest." \n\n" ."Personen: Gesamt: ".$anzahl_person_gesamt." / Eingefügt: ".$anzahl_person_insert." / Geändert: ".$anzahl_person_update." / Fehler: ".$anzahl_fehler_person."\n" ."Prestudenten: Gesamt: ".$anzahl_pre_gesamt." / Eingefügt: ".$anzahl_pre_insert." / Geändert: ".$anzahl_pre_update." / Fehler: ".$anzahl_fehler_pre."\n" @@ -2133,14 +2209,14 @@ Echo nl2br($error_log); fwrite($dateiausgabe,"Fertig: ".date("d.m.Y H:i:s")."\n\n"); fclose($dateiausgabe);*/ -/* + mail($adress, 'SYNC Student von '.$_SERVER['HTTP_HOST'], "Sync Student\n------------\n\nPersonen ohne Reihungstest: ".$notest." \n\n" ."Personen: Gesamt: ".$anzahl_person_gesamt." / Eingefügt: ".$anzahl_person_insert." / Geändert: ".$anzahl_person_update." / Fehler: ".$anzahl_fehler_person."\n" ."Prestudenten: Gesamt: ".$anzahl_pre_gesamt." / Eingefügt: ".$anzahl_pre_insert." / Geändert: ".$anzahl_pre_update." / Fehler: ".$anzahl_fehler_pre."\n" ."Benutzer: Gesamt: ".$anzahl_benutzer_gesamt." / Eingefügt: ".$anzahl_benutzer_insert." / Geändert: ".$anzahl_benutzer_update." / Fehler: ".$anzahl_fehler_benutzer."\n" ."Nicht-Studenten: ".$anzahl_nichtstudenten."\n" ."Studenten: Gesamt: ".$anzahl_student_gesamt." / Eingefügt: ".$anzahl_student_insert." / Geändert: ".$anzahl_student_update." / Fehler: ".$anzahl_fehler_student."\n\n".$dateiausgabe."Fertig: ".date("d.m.Y H:i:s")."\n\n".$ausgabe, "From: vilesci@technikum-wien.at"); -*/ + ?> \ No newline at end of file